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:

  1. Inżynier oprogramowania i analityk biznesowy.
  2. Tester Manualny i Tester Automatyczny.
  3. 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.

Cucumber w Selenium

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/

Warunek wstępny użycia Cucumber w Selenium

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:

Warunek wstępny użycia Cucumber w Selenium

Na następnej stronie kliknij wersję 1.2.2,

Warunek wstępny użycia Cucumber w Selenium

Na następnym ekranie kliknij przycisk pobierania, aby pobrać „Cucumber Plik jar rdzenia.

Warunek wstępny użycia Cucumber w Selenium

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.

Testowanie automatyczne za pomocą Cucumber w Selenium

Testowanie automatyczne za pomocą Cucumber w Selenium

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.

Testowanie automatyczne za pomocą Cucumber w Selenium

Krok 3) Tworzenie pliku funkcji

Aby utworzyć plik funkcji, najpierw utwórz folder funkcji, jak pokazano na zrzucie ekranu.

Testowanie automatyczne za pomocą Cucumber w Selenium

Teraz wprowadź nazwę folderu „Funkcje” i kliknij przycisk „Zakończ”.

Testowanie automatyczne za pomocą Cucumber w Selenium

Testowanie automatyczne za pomocą Cucumber w Selenium

Teraz utwórz plik funkcji w folderze „Features” o nazwie „MójTest.feature” – proces jest podobny do tworzenia folderu

Testowanie automatyczne za pomocą Cucumber w Selenium

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.

Testowanie automatyczne za pomocą Cucumber w Selenium

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.

Testowanie automatyczne za pomocą Cucumber w Selenium

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.

Testowanie automatyczne za pomocą Cucumber w Selenium

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”.

Testowanie automatyczne za pomocą Cucumber w Selenium

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.

Wprowadź dane logowania i zresetuj wartość

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.

Wprowadź dane logowania i zresetuj wartość

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.

Wprowadź dane logowania i zresetuj wartość

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.

Wprowadź dane logowania

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();					
    }		
}		

Wprowadź dane logowania

Krok 3) Teraz wykonaj zaktualizowany skrypt.

Poniższy ekran pokazuje pomyślne wykonanie skryptu i czas potrzebny na wykonanie każdego zestawu danych.

Wprowadź dane logowania

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.

Wprowadź dane logowania

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

  1. Utwórz plik funkcji, w którym krok po kroku zdefiniujesz funkcję i scenariusze, używając języka Gherkin.
  2. Utwórz plik Testrunnera. W tym pliku zintegrowaliśmy Cucumber z frameworkiem BDD w Selenium. Wykonujemy ten skrypt.
  3. Definicja kroku Create, rzeczywisty skrypt selenu zdefiniowany w tym pakiecie.