Selenium

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

Transcript of Selenium

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”),DesiredCapabilities.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