Selenium

JarosawSkaruz 1,173 views 32 slides Jun 01, 2015
Slide 1
Slide 1 of 32
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32

About This Presentation

Testy za pomocą Selenium.


Slide Content

www.proskar.pl
Selenium – automatyzacja testów
Warsztaty PROSKAR

Plan
1.Wprowadzenie
2.Selenium RC
3.Selenium WebDriver
4.Selenium IDE
5.Selenium Grid
6.Selenium Builder
www.proskar.pl 2/32

Wprowadzenie
•Definicja
–Zestaw narzędzi automatyzujących przeprowadzanie testów
funkcjonalnych

•Narzędzia
–Selenium RC
•Serwer odpowiada za komunikację pomiędzy użytkownikiem a
przeglądarką
–Selenium WebDriver
•Brak pośrednika pomiędzy testem a przeglądarką.
–Selenium IDE
•Symulowanie działania przeglądarki
–Selenium Grid
•Zrównoleglenie testów


www.proskar.pl 3/32

Selenium RC
Selenium Remote Control – czyli tzw. Selenium 1
•Komponenty
–Selenium Serwer
–Interfejs pomiędzy usługami Serwera a językiem
programowania
•Wady
–Czas wykonywania testów

Rozwiązanie wyparte przez Selenium WebDriver
www.proskar.pl 4/32

Selenium WebDriver
Selenium + WebDriver = Selenium 2
•Bezpośrednie łączenie się z przeglądarką
–Interfejsy
•WebDriver - sterownik dla konkretnej przeglądarki
(obsługa zdarzeń,pobieranie danych z ciasteczek,
odświeżanie stron…)
•WebElement – interakcja z elementami na stronie
(klikanie w elementy, pobieranie i wprowadzanie
wartości do pól…)
www.proskar.pl 5/32

Selenium WebDriver
•Jak wydawać polecenia przeglądarce?

WebElement element = driver.findElement(By.name(„TestInput”));
element.sendKeys(„To jest moje polecenie!”);

Driver – instancja sterownika danej przeglądarki
By – instancja lokalizatora elementów
www.proskar.pl 6/32

Selenium WebDriver
•Wyszukiwanie elementów na stronie
–na podstawie unikalnego identyfikatora (id),
–określonej klasy CSS,
–selektorów CSS3,
–nazwy elementu HTML,
–nazwy atrybutu name,
–tekstu lub jego fragmentu występującego w
danym elemencie

www.proskar.pl 7/32

Selenium WebDriver
•Obsługiwane przeglądarki
–Firefox
–Chrome
–Internet Explorer
–Opera
–Safari
–HtmlUnit (bez GUI)

www.proskar.pl 8/32

Selenium WebDriver
•Utworzenie instancji sterownika przeglądarki

–Wskazanie importu wybranego sterownika
org.openqa.selenium.htmlunit.HtmlUnitDriver;
–Utworzenie obiektu sterownika
HtmlUnitDriver driver = new HtmlUnitDriver();
–Włączenie obsługi Javascript
driver.setJavascriptEnabled(true);

www.proskar.pl 9/32

Selenium IDE
•Wtyczka do przeglądarki Mozilla Firefox
•Mozliwości:
–Nagrywanie i odtwarzanie interakcji użytkownika z
przeglądarką
–Generowanie plików kodów nagranych testów
•Java, Ruby, Phyton, C#
www.proskar.pl 10/32

Selenium IDE
•Instalacja
–W celu dodania wtyczki do Mozilla Firefox należy
wybrać kolejno:
•Ustawienia -> dodatki -> wtyczki
–Następnie wyszukać wtyczkę „Selenium IDE” i ją
zainstalować

www.proskar.pl 11/32

Selenium IDE
www.proskar.pl 12/32
Selenium IDE
Rysunek przedstawiający narzędzie Selenium IDE
•Command – rodzaj komendy dla
przeglądarki

•Target – cel na którym wykonywana
jest komenda(element)

•Value – wartość dla danego
celu(elementu)

Selenium IDE - przykład
•Test kalkulatora wskaźnika BMI
–Otworzyć stronę http://bmi-online.pl/
–Wybrać w Selenium IDE czerwony przycisk
rejestrowania
–Wpisać dane do wskaźnika BMI : 70 kg oraz 180
cm wzrostu
–Wybrać przycisk Oblicz BMI
–Zakończyć rejestrowanie

www.proskar.pl 13/32

Selenium IDE - przykład
www.proskar.pl 14/32
Kalkulator BMI Test w Selenium IDE
Rysunek przedstawiający
testowany kalkulator BMI
Rysunek przedstawiający zapis
zarejestrowanych czynności w przeglądarce

Selenium IDE - przykład
•Dodanie polecenia sprawdzającego
poprawność testu
–Command – komenda sprawdzająca
•assertText
–Target – adres sprawdzanego elementu (jeden z
wielu wygenerowanych automatycznie)
•//div[2]/div/div[2]/div/p
–Value – szukana wartość
•Wyliczone BMI: 21.60 - oznacza wagę prawidłową.
Gratulacje!

www.proskar.pl 15/32

Selenium IDE - przykład
•Uruchomienie testu
•Wykonanie bieżącego testu
•Wykonanie wszystkich istniejących testów
•Regulacja tempa wykonywania testów w oknie
przeglądarki

Wyniki z wykonania testu raportowane są w konsoli
Selenium IDE (zakładka Log)
www.proskar.pl 16/32

Selenium IDE - przykład
•Generowanie kodu testu
–Aby wygenerować kod nagranego testu należy
wybrać:
•Plik -> Export Test Case As – w przypadku generowania
pojedynczego tesu
•Plik -> Export Test Suit As – w przypadku generowania
wielu nagranych tesów

www.proskar.pl 17/32

Selenium IDE - przykład
www.proskar.pl 18/32
Wygenerowany kod testu cz.1
Rysunek przedstawiający gotowy do uruchomienia w aplikacji
wygenerowany kod testu kalkulatora BMI,

Selenium IDE - przykład
www.proskar.pl 19/32
Wygenerowany kod testu cz.2
Rysunek przedstawiający gotowy do uruchomienia w aplikacji
wygenerowany kod testu kalkulatora BMI,

Selenium Grid
Wchodzi w skład Selenium 2
•Rozwiązanie typu „hub-node”
–Zarządzanie wieloma środowiskami przy pomocy
jednego punktu centralnego
•Zalety
–Przyspieszenie wykonywania testów


Bibliotekę można pobrać stąd:
http://docs.seleniumhq.org/download/

www.proskar.pl 20/32

Selenium Grid - przykład
•Utworzenie punktu centralnego – huba
–Aby utworzyć punkt centralny należy
•W konsoli poleceń przejść do katalogu z pobraną biblioteką
•Wpisać polecenie:
–java -jar selenium-server-standalone-2.41.0.jar -role hub -port 4444
•Pod adresem http://localhost:4444/grid/console będą
widoczne wszystkie serwery podłączone do huba
www.proskar.pl 21/32

Selenium Grid - przykład
www.proskar.pl 22/32
•Utworzenie węzła – node`a
–Aby utworzyć węzeł należy
•W konsoli poleceń przejść do katalogu z pobraną
biblioteką
•Wpisać polecenie:
–java -jar selenium-server-standalone-2.41.0.jar -role node -
hub http://localhost:4444/grid/register -port 5555

Selenium Grid - przykład
•Aby uruchomić nasz test na utworzonym
hubie należy:
–Zamienić dotychczasowe tworzenie obiektu:
•driver = new FirefoxDriver();
Na
•driver = new RemoteWebDriver(new
URL(„http://localhost:4444/wd/hub”),DesiredCapabiliti
es.firefox());
www.proskar.pl 23/32

Selenium Builder
•Alternatywa dla Selenium IDE
•Obsługa eksportu testu do formatu Java
testNG dla WebDriver
www.proskar.pl 24/32

Selenium Builder - instalacja
•Aby zainstalować wtyczkę należy:
–Przejść na stronę http://sebuilder.github.io/se-
builder/
– Wybrać opcję Install

www.proskar.pl 25/32
Przycisk instalacji wtyczki
Rysunek przedstawiający przycisk instalacji wtyczki Selenium
Builder, ze strony projektu

Selenium Builder - uruchomienie
•W celu uruchomienia wtyczki Selenium
Builder należy w przeglądarce wybrac kolejno
–Menu -> narzędzia -> Launch Selenium Builder


www.proskar.pl 26/32
Strona startowa narzędzia Selenium Builder

Selenium Builder - przykład
•Test kalkulatora wskaźnika BMI
–Przejść na stronę bmi-online.pl
–Uruchomic Selenium Builder
–Wybrać opcję Selenium 2
–Wpisać dane do wskaźnika BMI : 79kg oraz 166 cm
wzrostu
–Wybrać przycisk Oblicz BMI
–W narzędziu Selenium Builder wybrać opcję „Record
verification” a następnie kliknąć w pole z wynikiem BMI
–Zakończyć nagrywanie testu przyciskiem „Stop
recording”



www.proskar.pl 27/32

Selenium Builder - przykład
www.proskar.pl 28/32
Kalkulator BMI
Rysunek przedstawiający testowany kalkulator BMI

Selenium Builder - przykład
www.proskar.pl 29/32
Treść nagranego testu
Rysunek przedstawiający nagrany test dla kalkulator BMI

Selenium Builder - przykład
•Możliwość
edycji
nagranego
testu
www.proskar.pl 30/32
Opcje edycji kroków testu

Selenium Builder - przykład
www.proskar.pl 31/32
Edycja kroku testu
Rysunek przedstawiający edycję rodzaju akcji dla kroku
testowego nr. 2

Selenium Builder - przykład
www.proskar.pl 32/32
Edycja kroku testu
Rysunek przedstawiający edycję lokalizacji elementu oraz
jego wartości dla kroku testowego nr. 2