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