Ogórek - raporty

Wykonujemy testy, aby zrozumieć stabilność produktu, więc niezależnie od tego, czy jest to test ręczny, czy test automatyczny, bardzo ważne jest, aby wygenerować zwięzły raport, który może opisać stabilność produktu. Dlatego podczas automatyzacji naszego scenariusza testowego za pomocą Cucumber ważne jest, aby wiedzieć, jak lepiej możemy generować nasze raporty z testów Cucumber. Ponieważ wiemy, że Cucumber jest frameworkiem BDD, nie ma wymyślnego mechanizmu raportowania.

Aby to osiągnąć, musimy zintegrować Cucumber z innym narzędziem open source, takim jak Ant / Junit. W tym miejscu zajmiemy się przykładami JUnit, ponieważ zapewnia obsługę języka Java.

Przyjrzyjmy się szczegółom różnych formatów raportów, które są dostępne i łatwe w użyciu -

Ładny format (raport HTML)

Pretty Format generuje raport z testu ogórka w formacie HTML, czyli plik HTML. Jest to najbardziej czytelny format raportu. Generuje raport w taki sam sposób, jak jest to plik funkcji, więc śledzenie jest również łatwe. Możesz także określić lokalizację, w której chcesz umieścić ten raport po wykonaniu testu. Może to być -

  • Local Directory - Możemy określić katalog docelowy raportu jako dowolny katalog lokalny maszyny, na której zostanie uruchomiony test.

  • Server Directory- Mamy również możliwość określenia katalogu docelowego jako dowolnego katalogu na serwerze, który jest publicznie dostępny. Zazwyczaj pomaga to, gdy chcemy, aby nasi klienci / interesariusze przeglądali wyniki testów w dowolnym momencie.

Przykład

Zautomatyzujmy przykład ładnego formatu.

Step 1 - Utwórz projekt Maven o nazwie cucumberReport w Eclipse.

Step 2 - Utwórz pakiet o nazwie CucumberReport pod src/test/java

Step 3 - Utwórz plik funkcji o nazwie cucumberReport.feature

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

Feature - Raport Ogórek

#To ma na celu sprawdzenie wyniku testu pozytywnego dla przypadku testowego

Scenario: Istnieje funkcja logowania

Biorąc pod uwagę, że otworzyłem przeglądarkę

Kiedy otwieram witrynę Facebooka

Następnie powinien istnieć przycisk logowania

# Ma to na celu sprawdzenie wyniku testu dla przypadku testowego zakończonego niepowodzeniem

Scenario: Zapomniane hasło istnieje

Biorąc pod uwagę, że otworzyłem przeglądarkę

Kiedy otwieram witrynę Facebooka

Następnie powinien istnieć link Zapomniałem hasła

Note- Tutaj pierwszy scenariusz przejdzie, a drugi zakończy się niepowodzeniem. Abyśmy mogli być świadkami, jak wygląda zaliczenie i nieudany raport.

Step 4 - Utwórz plik definicji kroku.

  • Wybierz i kliknij prawym przyciskiem myszy kontur paczki.

  • Kliknij plik „Nowy”.

  • Podaj nazwę pliku jako cucumberReport.java

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

package CucumberReport;
 
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 cucumberReport { 
   WebDriver driver = null; 
	
   @Given("^I have open the browser$") 
   public void openBrowser() { 
      driver = new FirefoxDriver();
   } 
	
   @When("^I open Facebook website$") 
   public void goToFacebook() { 
      driver.navigate().to("https://www.facebook.com/"); 
   } 
	
   @Then("^Login button should exits$") 
   public void loginButton() { 
      if(driver.findElement(By.id("u_0_v")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else { 
         System.out.println("Test 1 Fail");
      }
   } 
	
   @Then("^Forgot password link should exist$") 
   public void forgotPWD() { 
      if(driver.findElement(By.id("")).isEnabled()) { 
         System.out.println("Test 1 Pass"); 
      } else {
         System.out.println("Test 1 Fail");
      } 
   } 
}

Step 5 - Utwórz plik klasy biegacza.

  • Utwórz klasę biegacza o nazwie runTest.java wewnątrz opakowania.

  • Napisz następujący kod. Zapisz plik.

package CucumberReport; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options( 
   format = {"pretty", "html:target/Destination"} ) 
	
//Specifying pretty as a format option ensure that HTML report will be generated. 
//When we specify html:target/Destination - It will generate the HTML report 

inside the Destination folder, in the target folder of the maven project. 

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.

Oba scenariusze zostaną wykonane jeden po drugim.

W katalogu docelowym zostanie utworzony folder o nazwie Destination.

Raport będzie tam nazwany „Index.html”.

Otwórz plik Index.html w przeglądarce internetowej.

Zobaczysz raport wymieniony na poniższym obrazku -

Dokładnie podkreśla kolor nieudanego scenariusza. Ponadto zobaczysz wyróżnienie dla nieudanego kroku w tym scenariuszu. To sprawia, że ​​debugowanie jest bardzo łatwe.

Raport JSON

Do tej pory widzieliśmy, jak łatwy jest raport HTML. Jeśli jednak chcemy przekazać informacje z tego raportu do jakiejkolwiek innej aplikacji, jest to trochę trudne w przypadku raportów HTML. Pojawia się potrzeba innego formatu raportowania. Notacja obiektowa skryptu JSON-Java to kolejny format generowania raportów z testów Cucumber. JSON to obiekt zawierający wiele informacji przechowywanych w formacie tekstowym. Raporty JSON wnoszą do tabeli inną wartość. Raport JSON może również służyć jako ładunek informacji do przesłania między różnymi serwerami. Ponadto może być używany do wyświetlania jako strona internetowa. Krótko mówiąc, raporty JSON mogą być używane przez inne aplikacje.

What is payload information?Gdy dane są przesyłane przez Internet, każda przesyłana jednostka zawiera zarówno informacje nagłówka, jak i faktyczne przesyłane dane. Nagłówek identyfikuje źródło i miejsce docelowe pakietu, podczas gdy rzeczywiste dane są określane jako ładunek. Aby wygenerować raport JSON, wystarczy wprowadzić zmianę w pliku runner.

  • Zmień opcję formatu w pliku runner w następujący sposób.

package CucumberReport; 

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

@RunWith(Cucumber.class) 
@Cucumber.Options( format={"json:target/Destination/cucumber.json"}) 

//When we specify json:target/Destination/cucumber.json - It will generate the JSON  
report inside the Destination folder, in the target folder of the maven project.

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.

    • Oba scenariusze zostaną wykonane jeden po drugim.

  • Raport będzie tam nazwany jako cucumber.json (jak w klasie biegaczy).

  • otwarty cucumber.json plik w edytorze tekstu.

  • Po wstawieniu znaków końca linii zobaczysz raport wymieniony na poniższym zrzucie ekranu -

Note - JSON jest mniej czytelny w porównaniu z formatem raportu HTML.