Ogórek - Adnotacje

Annotationto predefiniowany tekst, który ma określone znaczenie. Pozwala kompilatorowi / interpreterowi wiedzieć, co należy zrobić po wykonaniu. Ogórek ma kilka następujących adnotacji -

  • Given -

    • Opisuje warunki wstępne wykonania testu.

    • Przykład - PODANE Jestem użytkownikiem Facebooka

  • When -

    • Definiuje punkt wyzwalający dla wykonania dowolnego scenariusza testowego.

    • Przykład - GDY wpisuję „<nazwa użytkownika>”

  • Then -

    • Następnie zatrzymuje oczekiwany wynik testu do wykonania.

    • Przykład - TO logowanie powinno przebiegać pomyślnie.

  • And -

    • Zapewnia warunek logiczny AND między dowolnymi dwoma instrukcjami. AND może być używany w połączeniu z instrukcjami GIVEN, WHEN i THEN.

    • Przykład - KIEDY wprowadzam „<nazwa użytkownika>” ORAZ „<hasło>”

  • But -

    • Oznacza logiczny warunek LUB między dowolnymi dwoma instrukcjami. LUB może być używane w połączeniu z instrukcjami GIVEN, WHEN i THEN.

    • Przykład - TO logowanie powinno przebiegać pomyślnie. ALE nie powinno zabraknąć strony głównej.

  • Scenario -

    • Szczegóły dotyczące testowanego scenariusza należy przechwycić po słowie kluczowym „Scenariusz:”

    • Przykład -

      Scenariusz:

      DANE Jestem użytkownikiem Facebooka

      KIEDY wejdę do mojego

      I wchodzę do mojego

      NASTĘPNIE logowanie powinno przebiegać pomyślnie.

      ALE nie powinno zabraknąć strony głównej.

  • Scenario Outline - (do omówienia później)

  • Examples - (do omówienia później)

  • Background -

    • Tło generalnie zawiera instrukcje dotyczące konfiguracji przed uruchomieniem każdego scenariusza. Jednak jest wykonywany po zaczepie „Przed” (do omówienia później). Jest to więc idealne rozwiązanie do użycia w kodzie, gdy chcemy skonfigurować przeglądarkę internetową lub chcemy nawiązać połączenie z bazą danych.

      • Przykład -

        Tło:

        Przejdź do strony głównej Facebooka.

Przykładowy scenariusz

Zautomatyzujmy scenariusz, aby lepiej zrozumieć adnotacje.

Step 1

Utwórz projekt testowy Maven o nazwie jako AnnotationTest.

  • Idź do Plik → Nowy → Inne → Maven → Projekt Maven → Dalej.

  • Podaj identyfikator grupy (identyfikator grupy będzie jednoznacznie identyfikował Twój projekt we wszystkich projektach).

  • Podaj identyfikator artefaktu (identyfikator artefaktu to nazwa słoika bez wersji. Możesz wybrać dowolną nazwę zapisaną małymi literami).

  • Kliknij Zakończ.

  • otwarty pom.xml −

    • Przejdź do eksploratora pakietów po lewej stronie Eclipse.

    • Rozwiń projekt AnnotationTest.

    • Zlokalizuj plik pom.xml.

    • Kliknij prawym przyciskiem myszy i wybierz opcję Otwórz za pomocą „Edytora tekstu”.

  • Dodaj zależność dla Selenium - to wskaże Maven, które pliki jar Selenium mają zostać pobrane z centralnego repozytorium do lokalnego repozytorium.

    • Otwórz pom.xml jest w trybie edycji, utwórz tag zależności (<dependencies> </dependencies>) wewnątrz tagu projektu.

    • Wewnątrz tagu zależności utwórz tag zależności (<dependency> </dependency>).

    • Podaj następujące informacje w tagu zależności.

<dependency> 
   <groupId>org.seleniumhq.selenium</groupId> 
   <artifactId>selenium-java</artifactId> 
   <version>2.47.1</version> 
</dependency>
  • Dodaj zależność dla Cucumber-Java - To wskaże Maven, które pliki Cucumber mają zostać pobrane z centralnego repozytorium do lokalnego repozytorium.

    • Utwórz jeszcze jeden tag zależności.

    • Podaj następujące informacje w tagu zależności.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-java</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Dodaj zależność dla Cucumber-JUnit - to wskaże Maven, które pliki Cucumber JUnit mają zostać pobrane z centralnego repozytorium do lokalnego repozytorium.

    • Utwórz jeszcze jeden tag zależności.

    • Podaj następujące informacje w tagu zależności.

<dependency> 
   <groupId>info.cukes</groupId> 
   <artifactId>cucumber-junit</artifactId> 
   <version>1.0.2</version> 
   <scope>test</scope> 
</dependency>
  • Dodaj zależność dla JUnit - wskaże Maven, które pliki JUnit mają zostać pobrane z repozytorium centralnego do repozytorium lokalnego.

    • Utwórz jeszcze jeden tag zależności.

    • Podaj następujące informacje w tagu zależności.

<dependency> 
   <groupId>junit</groupId> 
   <artifactId>junit</artifactId> 
   <version>4.10</version> 
   <scope>test</scope> 
</dependency>
  • Sprawdź pliki binarne.

    • Po pomyślnej edycji pom.xml zapisz go.

    • Idź do Project → Clean - zajmie to kilka minut.

Step 2

Utwórz pakiet o nazwie Annotation under src/test/java

  • Wybierz nowo utworzony projekt.

  • Kliknij prawym przyciskiem myszy i wybierz „Nowy”.

  • Wybierz opcję „Pakiet”.

  • Nazwij go „Adnotacją”.

  • Zapisz to.

Step 3

Utwórz plik elementu o nazwie annotation.feature.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Nadaj plikowi nazwę, taką jak outline.feature.

  • Wpisz następujący tekst w pliku i zapisz go.

Feature: annotation 
#This is how background can be used to eliminate duplicate steps 

Background: 
   User navigates to Facebook Given 
   I am on Facebook login page 

#Scenario with AND 
Scenario: 
   When I enter username as "TOM"
   And I enter password as "JERRY" 
   Then Login should fail 

#Scenario with BUT 
Scenario: 
   When I enter username as "TOM" 
   And I enter password as "JERRY" 
   Then Login should fail 
   But Relogin option should be available

Step 4

Utwórz plik definicji kroku.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Podaj nazwę pliku jako annotation.java

  • Wpisz następujący tekst w pliku i zapisz go.

package Annotation; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.annotation.en.Given; 
import cucumber.annotation.en.Then; 
import cucumber.annotation.en.When; 

public class annotation { 
   WebDriver driver = null; 
   @Given("^I am on Facebook login page$") 
	
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   }
	
   @When("^I enter username as \"(.*)\"$") 
   public void enterUsername(String arg1) {   
      driver.findElement(By.id("email")).sendKeys(arg1); 
   }
	
   @When ("^I enter password as \"(.*)\"$") 
   public void enterPassword(String arg1) {
      driver.findElement(By.id("pass")).sendKeys(arg1);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^Login should fail$") 
   public void checkFail() {  
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test1 Pass"); 
      } else { 
         System.out.println("Test1 Failed"); 
      } 
      driver.close(); 
   }
	
   @Then("^Relogin option should be available$") 
   public void checkRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
         "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){ 
            System.out.println("Test2 Pass"); 
      } else { 
         System.out.println("Test2 Failed"); 
      } 
      driver.close(); 
   }
}

Step 5

Utwórz plik klasy biegacza.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Nadaj plikowi nazwę, na przykład runTest.java

  • Wpisz następujący tekst w pliku i zapisz go.

package Annotation; 

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber"}) 

public class runTest { }

Step 6

Uruchom test za pomocą opcji -

  • Wybierz plik runTest.java z eksploratora pakietów.

  • Kliknij prawym przyciskiem myszy i wybierz opcję ‘Run as’

  • Wybierz test JUnit.

Po uruchomieniu tego pliku klasy zaobserwujesz następujące rzeczy -

  • Facebook otwiera się w nowej instancji przeglądarki internetowej Firefox.

  • TOM zostanie przekazany jako dane wejściowe w polu nazwy użytkownika.

  • JERRY zostanie przekazane jako dane wejściowe w polu hasła.

  • Login zostanie kliknięty.

  • W przeglądarce wyświetli się komunikat o nieudanym logowaniu.

  • W konsoli zostanie wydrukowany napis „Test Pass”

  • Wynik kroku od 1. do 5. Zostanie ponownie wykonany dla nazwy użytkownika jako „” i hasła jako „”.