1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę



Podobne dokumenty
Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Programowanie obiektowe

Automaty do zadań specjalnych. Olga Maciaszek-Sharma, Artur Kotow Wersja 1,

Michał Sierzputowski. Zautomatyzuj swoje testy automatyczne oparte o Selenium

Zaawansowane aplikacje WWW - laboratorium

Programowanie warstwy klienta w aplikacji JavaEE

Bezpieczne uruchamianie apletów wg

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Tworzenie i wykorzystanie usług

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Programowanie obiektowe

Android pierwsza aplikacja

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Aplikacje WWW - lab 11

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Laboratorium 10 Testy jednostkowe z użyciem narzędzia JUnit

Java: interfejsy i klasy wewnętrzne

Programowanie poprzez testy z wykorzystaniem JUnit

Algorytmy z powrotami. Algorytm minimax

Testowanie jednostkowe. Jacek Starzyński, ZETiIS PW

Multimedia JAVA. Historia

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Programowanie obiektowe

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Programowanie telefonów z Windows Phone 7, cz. 4

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Programowanie obiektowe

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Programowanie obiektowe

Laboratorium 8 Diagramy aktywności

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

Klasy i obiekty cz II

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

4. Certyfikaty dla pracy w systemie WOW w miejscu z siecią Internet UWAGA

Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Języki i metody programowania Java INF302W Wykład 3 (część 1)

Zaawansowane aplikacje internetowe laboratorium

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Systemy Rozproszone - Ćwiczenie 6

Mazowiecki Elektroniczny Wniosek Aplikacyjny

Bezpieczeństwo frameworków WEBowych Java na przykładzie ataku CSRF

public enum Environment { Development("Deweloperskie"), Test("Testowe"), Production("Produkcyjne"); private String name;

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Podstawy i języki programowania

JUNIT. Terminologia. Organizacja testów

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Aplikacje internetowe i rozproszone - laboratorium

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

1. Co można powiedzieć o poniższym kodzie?

Git, Bitbucket, IntelliJ IDEA

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Automatyczne testowanie aplikacji Android

Adobe Connect Instalacja Adobe Flash Player

Aplikacje w środowisku Java

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Aplikacje RMI Lab4

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Throwable. Wyjatek_1(int x_) { x = x_; } int podaj_x()

Diagram stanów Laboratorium 9

Testowanie II. Celem zajęć jest zapoznanie studentów z oceną jakości testów przy wykorzystaniu metryk pokrycia kodu testami (ang. code coverage).

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Programowanie w języku Java. Bazy danych SQLite w Javie

Testowanie II. Cel zajęć. Pokrycie kodu

Przegląd narzędzi do automatycznego testowania aplikacji internetowych. Jan Płoszczyca SKISR 2006

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

INSTRUKCJA AKTUALIZACJI PRZEGLĄDARKI. Wersja dokumentu 1.0

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

METODY PROGRAMOWANIA

Remote Method Invocation 17 listopada 2010

WYJĄTKI. Jest ona jednak czasochłonna i prowadzi do duŝego zapotrzebowania na zasoby systemu.

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Wywoływanie metod zdalnych

METODY PROGRAMOWANIA

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Kurs programowania. Wykład 9. Wojciech Macyna

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

[Android] Podstawy programowania

Podejście obiektowe do budowy systemów rozproszonych

JAX-RS czyli REST w Javie. Adam Kędziora

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Programowanie rozproszone w języku Java

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Politechnika Wrocławska

Podstawy Programowania

Laboratorium - Użycie narzędzia Przywracanie systemu w Windows Vista

Aplikacja wielowątkowa prosty komunikator

Wykład 7: Pakiety i Interfejsy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Transkrypt:

1. Po uruchomieniu przeglądarki Mozilla FireFox, należy uruchomić stronę http://docs.seleniumhq.org 2. Po wybraniu zakładki Download w celu zainstalowania oprogramowania Selenium IDE należy kliknąć na link 2.0.0

3. Po ukazaniu się formularza Instalacja oprogramowania należy kliknąć na przycisk Zainstaluj 4. Po zainstalowaniu należy wybrać Uruchom ponownie teraz

5. Po ponownym uruchomieniu pojawia się pozycja Selenium IDE w liście zakładki arzędzia. W celu uruchomienia Selenium należy na kliknąć na pozycję Selenium IDE 6. Teraz można kliknąć na pozycję Action okna Selenium IDE 2.0.0

7. Następnie należy kliknąć na pozycję Record w celu nagrania testu 8. Po uruchomieniu testowanej aplikacji zostaną nagrane wszystkie czynności wykonywane przez aplikację

9. Po zakończeniu działania aplikacji należy wyłączyć Nagrywanie (Record) po wybraniu zakładki Action

10. Teraz można zapisać test przez wybór Plik(F)\Save Test Case As \

11. Teraz można odtworzyć test (Action\Play current test case) aplikacja ponownie jest uruchamiana i działa automatycznie

Można spowolnić działanie aplikacji (pozycja Slower lub za pomocą suwaka Fase-Slow na belce narzędziowej)

Poniżej pokazano jedną z faz odtwarzanego testu 12. Nagrany test można wyeksportować do środowiska JU IT4 lub Test G w postaci pliku zawierającego definicję klasy testowej (podane dalej przykłady wygenerowano na podstawie nagranego przykładu testu)

12.1. Wygenerowana klasa realizująca test typu TestNG package com.example.tests; import com.thoughtworks.selenium.*; import org.testng.annotations.*; import static org.testng.assert.*; import java.util.regex.pattern; public class Sklep_5_TestNG_Remote extends SeleneseTestNgHelper { @Test public void testsklep_5_testng_remote() throws Exception { selenium.open("/sklep_5/"); selenium.click("link=dodaj produkt"); selenium.click("link=dodaj produkt"); selenium.click("link=utrwalanie danych"); selenium.click("link=pobierz z bazy danych"); selenium.click("link=rezultat"); selenium.click("id=j_idt20:powrot2");

12.2. Wygenerowana klasa realizująca test typu JUnit4/Remote Control package com.example.tests; import com.thoughtworks.selenium.*; import org.junit.after; import org.junit.before; import org.junit.test; import static org.junit.assert.*; import java.util.regex.pattern; public class Sklep_5_Remote { private Selenium selenium; @Before public void setup() throws Exception { selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost:26537/"); selenium.start(); @Test public void testsklep_5_remote() throws Exception { selenium.open("/sklep_5/"); selenium.click("link=dodaj produkt"); selenium.click("link=dodaj produkt"); selenium.click("link=utrwalanie danych"); selenium.click("link=pobierz z bazy danych"); selenium.click("link=rezultat"); selenium.click("id=j_idt20:powrot2"); @After public void teardown() throws Exception { selenium.stop();

12.3. Wygenerowana klasa realizująca test typu JUnit4/WebDriver Backed package com.example.tests; import com.thoughtworks.selenium.selenium; import org.openqa.selenium.firefox.firefoxdriver; import org.openqa.selenium.webdriver; import org.openqa.selenium.webdriverbackedselenium; import org.junit.after; import org.junit.before; import org.junit.test; import static org.junit.assert.*; import java.util.regex.pattern; import static org.apache.commons.lang3.stringutils.join; public class Sklep_5_WebDriverBack { private Selenium selenium; @Before public void setup() throws Exception { WebDriver driver = new FirefoxDriver(); String baseurl = "http://localhost:26537/"; selenium = new WebDriverBackedSelenium(driver, baseurl); @Test public void testsklep_5_webdriverback() throws Exception { selenium.open("/sklep_5/"); selenium.click("link=dodaj produkt"); selenium.click("link=dodaj produkt"); selenium.click("link=utrwalanie danych"); selenium.click("link=pobierz z bazy danych"); selenium.click("link=rezultat"); selenium.click("id=j_idt20:powrot2"); @After public void teardown() throws Exception { selenium.stop();

12.4. Wygenerowana klasa realizująca test typu JUnit4/WebDriver package com.example.tests; import java.util.regex.pattern; import java.util.concurrent.timeunit; import org.junit.*; import static org.junit.assert.*; import static org.hamcrest.corematchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.firefoxdriver; import org.openqa.selenium.support.ui.select; public class Sklep5WebDriver { private WebDriver driver; private String baseurl; private boolean acceptnextalert = true; private StringBuffer verificationerrors = new StringBuffer(); @Before public void setup() throws Exception { driver = new FirefoxDriver(); baseurl = "http://localhost:26537/"; driver.manage().timeouts().implicitlywait(30, TimeUnit.SECONDS); @Test public void testsklep5webdriver() throws Exception { driver.get(baseurl + "/Sklep_5/"); driver.findelement(by.linktext("dodaj produkt")).click(); driver.findelement(by.linktext("dodaj produkt")).click(); driver.findelement(by.linktext("lista produktow")).click(); driver.findelement(by.linktext("utrwalanie danych")).click(); driver.findelement(by.linktext("pobierz z bazy danych")).click(); driver.findelement(by.linktext("lista produktow")).click(); driver.findelement(by.linktext("lista produktow")).click(); driver.findelement(by.linktext("rezultat")).click(); driver.findelement(by.id("j_idt20:powrot2")).click(); @After public void teardown() throws Exception { driver.quit(); String verificationerrorstring = verificationerrors.tostring(); if (!"".equals(verificationerrorstring)) { fail(verificationerrorstring); private boolean iselementpresent(by by) { try { driver.findelement(by); return true; catch (NoSuchElementException e) { return false; private boolean isalertpresent() { try { driver.switchto().alert(); return true; catch (NoAlertPresentException e) { return false;

private String closealertandgetitstext() { try { Alert alert = driver.switchto().alert(); String alerttext = alert.gettext(); if (acceptnextalert) { alert.accept(); else { alert.dismiss(); return alerttext; finally { acceptnextalert = true;