Selenium w Cucumber (Samouczek dotyczący struktury BDD)
W tym samouczku dowiesz się, jak integrować Cucumber w Selenium Sterownik internetowy.
Czym jest Cucumber?
Cucumber to podejście testowe wspierające rozwój oparty na zachowaniu (BDD). Wyjaśnia zachowanie aplikacji w prostym tekście angielskim w języku korniszonowym.
Dowiedz się więcej na – https://www.guru99.com/cucumber-tutorials.html
Czym jest Selenium?
Selenium to narzędzie do automatyzacji Testy funkcjonalne aplikacji internetowej. Selenium obsługuje różne języki, takie jak Java, Ruby, Python C# itp.
Dowiedz się więcej na – https://www.guru99.com/selenium-tutorial.html
Dlaczego warto korzystać Cucumber w Selenium?
Cucumber oraz Selenium to dwie popularne technologie.
Większość organizacji korzysta Selenium do testów funkcjonalnych. Te organizacje, które korzystają Selenium, chcą się integrować Selenium w Cucumber as Cucumber sprawia, że jest łatwy do odczytania i zrozumienia przepływu aplikacji.
Cucumber Narzędzie opiera się na platformie rozwoju opartego na zachowaniu, która pełni rolę mostu pomiędzy następującymi osobami:
- Inżynier oprogramowania i analityk biznesowy.
- Tester Manualny i Tester Automatyczny.
- Tester manualny i programiści.
Cucumber Framework BDD również korzyści dla klienta w postaci zrozumienia kodu aplikacji ponieważ używa języka Gherkin, który jest w Zwykłym Tekstem. Każdy w organizacji może zrozumieć zachowanie oprogramowania. Składnia Gherkin jest w prostym tekście, który jest czytelny i zrozumiały.
Warunek korzystania Cucumber w Selenium
Zanim zaczniemy Cucumber Selenium do integracji potrzebujemy następujących elementów:
- Selenium pliki jar:
- Selenium-serwer-samodzielny
Można pobrać pod adresem http://www.seleniumhq.org/download/
Pliki jar dla Cucumber :
- Cucumber-core
- Cucumber-html
- pokrycie kodem Cobertura
- Cucumber-Jawa
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-raportowanie
- Rdzeń Hamcrest
- Korniszon
- Junita
Można pobrać pod adresem https://mvnrepository.com/search?q=Cucumber
Musisz wyszukiwać pliki i pobierać je pojedynczo.
Na przykład pokażemy Ci, jak pobrać jeden z plików jar, tj. „Cucumber-rdzeń."
Kliknij powyższy link do pobrania. Przekierowuje do poniższej witryny. Teraz przeszukaj konkretny słoik, tj. „Cucumber Core”, jak pokazano na zrzucie ekranu poniżej:
Na następnej stronie kliknij wersję 1.2.2,
Na następnym ekranie kliknij przycisk pobierania, aby pobrać „Cucumber Plik jar rdzenia.
Note: Dla Twojej wygody załączyliśmy pliki jar wymagane do pobrania z Maven tutaj. Z czasem te słoiki mogą zostać zaktualizowane i stać się niekompatybilne. Prosimy o ich pobranie przy użyciu metody przedstawionej powyżej.
Testowanie automatyczne za pomocą Cucumber w Selenium.
Przeanalizujmy kroki, których należy użyć Cucumber z selenem krok po kroku. Tutaj omówimy 3 scenariusze:
- Scenariusz 1: Wydrukuj tekst w konsoli.
- Scenariusz 2: Wprowadź dane logowania i zresetuj wartość.
- Scenariusz 3: Wprowadź dane logowania na Guru99 i zresetuj wartość. Zrób to dla 3 zestawów danych.
Scenariusz 1: Wydrukuj tekst w konsoli.
W tym scenariuszu po prostu drukujemy tekst w konsoli, używając Cucumber.
Krok 1) Utwórz projekt w Eclipse.
Stwórz Java projekt pod nazwą „CucumberWraz zSelenium”, jak pokazano na poniższym zrzucie ekranu.
Krok 2) Dodanie plików Jar w projekcie.
Kliknij prawym przyciskiem myszy projekt > Wybierz właściwości > Przejdź do Java Buduj ścieżkę. Dodaj wszystkie pobrane wcześniej biblioteki.
Krok 3) Tworzenie pliku funkcji
Aby utworzyć plik funkcji, najpierw utwórz folder funkcji, jak pokazano na zrzucie ekranu.
Teraz wprowadź nazwę folderu „Funkcje” i kliknij przycisk „Zakończ”.
Teraz utwórz plik funkcji w folderze „Features” o nazwie „MójTest.feature” – proces jest podobny do tworzenia folderu
Uwaga: Może być konieczne zainstalowanie Cucumber Eclipse Wtyczka, aby to działało. Przejdź do — Pomoc->Zainstaluj nowe oprogramowanie->skopiuj i wklej link http://cucumber.github.io/cucumber-eclipse/update-site/ i zainstaluj
Krok 4) Napisz scenariusze.
Poniższe linie są zapisane w pliku „MyTest.feature” przy użyciu języka Gherkin, jak pokazano poniżej:
Feature: Reset functionality on login page of Application Scenario: Verification of Reset button Given Open the Firefox and launch the application When Enter the Username and Password Then Reset the credential
Objaśnienie kodu
Linia 1) W tej linii piszemy funkcjonalność biznesową.
Linia 2) W tej linii piszemy scenariusz do przetestowania.
Linia 3) W tej linii definiujemy warunek wstępny.
Linia 4) W tej linii definiujemy akcję, którą musimy wykonać.
Linia 4) W tej linii definiujemy oczekiwany wynik lub wynik.
Krok 5) Pisanie skryptu testującego selen Selenium Cucumber projekt ramowy
Tutaj tworzymy pakiet „TestRunner”, a następnie pod nim plik klasy „Runner.java”.
package TestRunner; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions(features="Features",glue={"StepDefinition"}) public class Runner { }
W powyższym Cucumber Java przykładowy kod, uruchamiamy próba ogórkowa korzystając z następujących adnotacji:
@Biegnij z() adnotacja mówi o klasie uruchamiającej test, aby rozpocząć wykonywanie naszych testów.
@Opcje Ogórka() adnotacja służy do ustawiania niektórych właściwości naszego testu ogórka, takich jak plik funkcji, definicja kroku itp.
Zrzut ekranu pliku TestRunner.
Krok 6) Tworzenie skryptu definicji kroku.
Teraz tworzymy pakiet „StepDefinition”, a następnie plik skryptu „Steps.java” pod nim. Tutaj faktycznie piszemy skrypt selenu, aby przeprowadzić test pod Cucumber Metody.
package StepDefinition; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.out.println("This Step open the Firefox and launch the application."); } @When("^Enter the Username and Password$") public void enter_the_Username_and_Password() throws Throwable { System.out.println("This step enter the Username and Password on the login page."); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { System.out.println("This step click on the Reset button."); } }
W powyższym kodzie utworzono klasę o nazwie „Steps”. Cucumber adnotacja jest używana do mapowania za pomocą pliku funkcji. Każda metoda adnotacji jest zdefiniowana:
@Dany adnotacja zdefiniuj metodę otwierania przeglądarki Firefox i uruchamiania aplikacji
@Gdy adnotacja definiuje metodę wprowadzania nazwy użytkownika i hasła
@Następnie adnotacja definiuje metodę resetowania poświadczeń
W ramach każdej metody drukujemy jedynie wiadomość.
Poniżej zrzut ekranu skryptu 'Steps.java' i drzewa projektu, jak to wygląda.
Uwaga: Definicja kroku to nic innego jak kroki, które chcesz wykonać w ramach tej metody ogórka.
Krok 7) Wykonywanie skryptu.
Użytkownik może wykonać ten skrypt ze skryptu uruchamiającego test, tj. „Runner.java”, jak pokazano na poniższym zrzucie ekranu.
Krok 8) Przeanalizuj dane wyjściowe.
Po wykonaniu skryptu „Runner.java” wyświetla tekst na konsoli. Jest to ten sam tekst, który jest zdefiniowany w skrypcie „Steps.java”.
Scenariusz 2: Wprowadź dane logowania i zresetuj wartość.
Tutaj po prostu wprowadzimy dane uwierzytelniające na stronie logowania do wersji demonstracyjnej Guru99 i zresetujemy wartość
W przypadku Scenariusza 2 musimy zaktualizować tylko skrypt 'Steps.java'. Tutaj faktycznie piszemy skrypt selenu, jak pokazano poniżej. Najpierw musimy dodać Selenium jar do tego projektu.
Krok 1) Tutaj aktualizujemy skrypt „Steps.java”, jak pokazano w poniższym kodzie i zrzucie ekranu.
package StepDefinition; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { WebDriver driver; @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe"); driver= new FirefoxDriver(); driver.manage().window().maximize(); driver.get("http://demo.guru99.com/v4"); } @When("^Enter the Username and Password$") public void enter_the_Username_and_Password() throws Throwable { driver.findElement(By.name("uid")).sendKeys("username12"); driver.findElement(By.name("password")).sendKeys("password12"); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { driver.findElement(By.name("btnReset")).click(); } }
Zrzut ekranu powyższego skryptu selenu.
Krok 2) Wykonaj skrypt.
Po aktualizacji uruchamiamy plik Runner.java.
Krok 3) Przeanalizuj dane wyjściowe.
Na wyjściu można zobaczyć następujące informacje:
- Przeglądarka uruchomiona.
- Zostanie otwarta strona demonstracyjna banku Guru99.
- Nazwa użytkownika i hasło umieszczone są na stronie logowania.
- Zresetuj wartości.
Scenariusz 3: Wprowadź dane logowania na Guru99 i zresetuj wartość. Zrób to dla 3 zestawów danych.
W tym miejscu musimy zaktualizować zarówno plik „Step.java”, jak i plik funkcji.
Krok 1) Zaktualizuj plik funkcji, jak pokazano poniżej:
Here we update the feature file with 'Scenario Outline' and 'examples' syntax. Feature: Reset functionality on login page of Application Scenario Outline: Verification of reset button with numbers of credential Given Open the Firefox and launch the application When Enter the Username <username>and Password <password> Then Reset the credential Examples: |username |password | |User1 |password1 | |User2 |password2 | |User3 |password3 | // In this line we define the set of data.
Krok 2) Teraz zaktualizuj skrypt Step.java.
Tutaj aktualizujemy metody przekazywania parametrów, zaktualizowany skrypt pokazany poniżej:
package StepDefinition; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import cucumber.api.java.en.Given; import cucumber.api.java.en.Then; import cucumber.api.java.en.When; public class Steps { WebDriver driver; @Given("^Open the Firefox and launch the application$") public void open_the_Firefox_and_launch_the_application() throws Throwable { System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe"); driver= new FirefoxDriver(); driver.manage().window().maximize(); driver.get("www.demo.guru99.com/v4"); } @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$") public void enter_the_Username_and_Password(String username,String password) throws Throwable { driver.findElement(By.name("uid")).sendKeys(username); driver.findElement(By.name("password")).sendKeys(password); } @Then("^Reset the credential$") public void Reset_the_credential() throws Throwable { driver.findElement(By.name("btnReset")).click(); } }
Krok 3) Teraz wykonaj zaktualizowany skrypt.
Poniższy ekran pokazuje pomyślne wykonanie skryptu i czas potrzebny na wykonanie każdego zestawu danych.
Krok 4) Przeanalizuj dane wyjściowe.
Na wyjściu można zobaczyć następujące informacje:
Poniższe dane wyjściowe są powtarzane dla liczby zestawów danych, tj. 3 zestawów.
- Przeglądarka uruchomiona.
- Zostanie otwarta strona demonstracyjna banku Guru99.
- Nazwa użytkownika i hasło umieszczone są na stronie logowania.
- Zresetuj wartości.
Podsumowanie
Cucumber jest bardzo popularnym narzędziem BDD. Jest łatwy do odczytania i zrozumiały dla wszystkich zainteresowanych stron, w tym osób technicznych i nietechnicznych.
Cucumber można zintegrować z Selenium korzystając z następujących 3 kroków
- Utwórz plik funkcji, w którym krok po kroku zdefiniujesz funkcję i scenariusze, używając języka Gherkin.
- Utwórz plik Testrunnera. W tym pliku zintegrowaliśmy Cucumber z frameworkiem BDD w Selenium. Wykonujemy ten skrypt.
- Definicja kroku Create, rzeczywisty skrypt selenu zdefiniowany w tym pakiecie.