Ogórek - zarys scenariusza

Scenario outlinew zasadzie zastępuje zmienne / słowa kluczowe wartością z tabeli. Każdy wiersz w tabeli jest uważany za scenariusz.

Kontynuujmy ten sam przykład funkcji logowania na Facebooku. Do tej pory realizowaliśmy jeden scenariusz: Po podaniu poprawnej nazwy użytkownika logowanie przebiega pomyślnie. Teraz załóżmy, że chcemy sprawdzić, czy logowanie powiodło się dla wszystkich trzech możliwych typów danych wejściowych, którymi są nazwa użytkownika, adres e-mail lub numer telefonu. Aby to osiągnąć, będziemy musieli napisać trzy różne scenariusze, w których każdy scenariusz będzie się różnić w zależności od rodzaju danych wejściowych, logowanie się powiedzie. W takim przypadku scenariusze będą wyglądać następująco.

Scenario:

Podany użytkownik przechodzi do Facebooka

Kiedy wprowadzam poprawną nazwę użytkownika i hasło

Następnie logowanie powinno przebiegać pomyślnie

Scenario:

Podany użytkownik przechodzi do Facebooka

Kiedy podaję poprawny adres e-mail i hasło

Następnie logowanie powinno przebiegać pomyślnie

Scenario:

Podany użytkownik przechodzi do Facebooka

Kiedy podam poprawny numer telefonu i hasło

Następnie logowanie powinno przebiegać pomyślnie

Tutaj, jeśli przyjrzymy się uważnie, dla powyższych trzech scenariuszy: instrukcje są takie same, zmienia się tylko parametr wejściowy (nazwa użytkownika / adres e-mail / numer telefonu). W tym miejscu pojawia się znaczenie zarysów scenariusza.

Kiedy definiujemy dowolny scenariusz z zarysem scenariusza, możemy określić jeden scenariusz testowy, a na dole możemy podać kilka danych wejściowych. Scenariusz zostanie wykonany tyle razy, ile podanych danych wejściowych.

Przykład

Stwórzmy przykładowy zarys scenariusza -

Step 1 - Utwórz projekt testowy Maven o nazwie jako ScenarioOutlineTest

  • 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 CucumberTest.

    • 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: 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>
  • 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 „zarys” pod src/test/java

Step 3 - Utwórz plik funkcji o nazwie “outline.feature”

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Podaj nazwę pliku, taką jak “outline.feature”

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

      Feature - Zarys scenariusza

      Scenario Outline - Funkcja logowania do serwisu społecznościowego.

      Podany użytkownik przechodzi do Facebooka

      Kiedy wpiszę nazwę użytkownika jako „<nazwa użytkownika>” i hasło jako „<hasło>”

      Wtedy logowanie powinno zakończyć się niepowodzeniem

Example -

| username  | password  | 
| username1 | password1 | 
| username2 | password2 |

Note- Tutaj przykładowa adnotacja opisuje zakres danych wejściowych, które mają być dostarczone podczas wykonywania scenariusza. Scenariusz testowy zostanie wykonany dla każdego z podanych danych wejściowych. Tak więc w podanym przykładzie scenariusz testowy zostanie wykonany trzykrotnie.

Step 4 - Utwórz plik definicji kroku.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Podaj nazwę pliku jako stepdefinition.java

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

package Outline;
 
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 stepdefinition { 
   WebDriver driver = null; 
	
   @Given("^user navigates to facebook$") 
   public void goToFacebook() { 
      driver = new FirefoxDriver(); 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @When("^I enter Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$") 
   public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
      driver.findElement(By.id("email")).sendKeys(arg1);
      driver.findElement(By.id("pass")).sendKeys(arg2);
      driver.findElement(By.id("u_0_v")).click(); 
   } 
	
   @Then("^login should be unsuccessful$") 
   public void validateRelogin() { 
      if(driver.getCurrentUrl().equalsIgnoreCase(
      "https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
         System.out.println("Test Pass"); 
      } else { 
         System.out.println("Test Failed"); 
      } 
      driver.close(); 
   }    
}

Note- W powyższym kodzie musimy zdefiniować funkcję mającą dwa argumenty wejściowe: jedna nazwa użytkownika, a druga będzie dla hasła. Tak więc dla każdego zestawu danych wejściowych podanych w przykładowym znaczniku, zostanie wykonany zestaw GIVEN, WHEN i THEN.

Step 5 - Utwórz plik klasy biegacza.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Podaj nazwę pliku, taką jak runTest.java

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

package Outline; 

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

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

public class runTest { }
  • Uruchom test za pomocą opcji -

    • Wybierz runTest.java plik 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.

  • Nazwa użytkownika1 i hasło1 zostaną przekazane jako dane wejściowe w polu nazwy użytkownika i hasła.

  • Login zostanie kliknięty.

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

  • W konsoli zostanie wydrukowany napis „Test Pass”.

  • Wyniki kroków od 1 do 5 zostaną ponownie wykonane dla nazwy użytkownika2 i hasła2.

W skrócie, gdy scenariusz się nie zmienia, ale zmienia się tylko wartość danych, zaleca się użycie tabel danych zarysu scenariusza.