Огурец - Отчеты

Мы выполняем тестирование, чтобы понять стабильность продукта, поэтому, будь то ручное или автоматическое тестирование, очень важно создать краткий отчет, который может отражать стабильность продукта. Следовательно, пока мы автоматизируем наш тестовый сценарий с помощью Cucumber, важно знать, как лучше мы можем создавать наши отчеты о тестировании Cucumber. Поскольку мы знаем, что Cucumber - это структура BDD, у нее нет необычного механизма отчетности.

Для этого нам нужно интегрировать Cucumber с другим инструментом с открытым исходным кодом, таким как Ant / Junit. Здесь мы рассмотрим примеры JUnit, потому что он обеспечивает поддержку языка Java.

Давайте подробно рассмотрим различные форматы отчетов, которые доступны и просты в использовании -

Красивый формат (HTML-отчет)

Pretty Format генерирует отчет о тестировании Cucumber в формате HTML, то есть в файле HTML. Это наиболее читаемый формат отчета. Он создает отчет так же, как и файл функций, поэтому трассировка также упрощается. Также вы можете указать место, куда вы хотите поместить этот отчет после выполнения теста. Это может быть -

  • Local Directory - Мы можем указать целевой каталог для отчета как любой локальный каталог машины, на которой будет выполняться тест.

  • Server Directory- Также у нас есть возможность указать целевой каталог как любой каталог на сервере, который является общедоступным. Как правило, это помогает, когда мы хотим, чтобы наши клиенты / заинтересованные стороны видели результаты тестирования в любой момент времени.

пример

Давайте автоматизируем пример красивого формата.

Step 1 - Создайте проект Maven с именем cucumberReport в Eclipse.

Step 2 - Создайте пакет с именем CucumberReport под src/test/java

Step 3 - Создайте файл функций с именем cucumberReport.feature

Напишите в файле следующий текст и сохраните его.

Feature - Отчет по огурцу

# Это для проверки результатов теста для тестового примера Pass

Scenario: Функциональность входа существует

Учитывая, что я открыл браузер

Когда я открываю сайт Facebook

Тогда должна существовать кнопка входа в систему

# Это необходимо для проверки результата теста для неудачного тестового примера

Scenario: Забыли пароль существует

Учитывая, что я открыл браузер

Когда я открываю сайт Facebook

Тогда должна существовать ссылка "Забыли пароль"

Note- Здесь сценарий сначала пройдет, а второй сценарий не удастся. Так что мы можем увидеть, как выглядит отчет о прохождении и неудаче.

Step 4 - Создайте файл определения шага.

  • Выберите и щелкните правой кнопкой мыши контур пакета.

  • Щелкните "Новый" файл.

  • Дайте имя файла как cucumberReport.java

  • Напишите в файле следующий текст и сохраните его.

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 - Создайте файл класса бегуна.

  • Создайте класс бегуна с именем runTest.java внутри упаковки.

  • Напишите следующий код. Сохраните файл.

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 { }
  • Запустите тест, используя опцию

    • Выбрать runTest.java файл из проводника пакетов.

    • Щелкните правой кнопкой мыши и выберите параметр, Run as.

    • Выберите тест JUnit.

При запуске этого файла класса вы заметите следующее.

Оба сценария будут выполняться один за другим.

Внутри целевого каталога будет создана папка с именем «Назначение».

Отчет будет назван «Index.html».

Откройте Index.html в веб-браузере.

Вы увидите отчет, упомянутый на следующем изображении -

Это точно подчеркивает цвет неудачного сценария. Более того, в этом сценарии вы увидите выделение неудачного шага. Это делает отладку очень простой.

Отчет JSON

К настоящему моменту мы убедились, насколько просто HTML-отчет. Однако, если мы хотим передать информацию об этом отчете в любое другое приложение, это может быть сложно в случае отчетов HTML. Здесь возникает необходимость в другом формате отчетности. Нотация объекта сценария JSON-Java - еще один формат для создания отчетов об испытаниях Cucumber. JSON - это объект, содержащий много информации, хранящейся в текстовом формате. Отчеты JSON привносят в таблицу другую ценность. Отчет JSON также можно использовать в качестве полезной информации для передачи между разными серверами. Кроме того, его можно использовать для отображения в виде веб-страницы. Вкратце, отчеты JSON могут использоваться другим приложением.

What is payload information?Когда данные отправляются через Интернет, каждая передаваемая единица включает в себя как информацию заголовка, так и фактические отправляемые данные. Заголовок определяет источник и место назначения пакета, а фактические данные называются полезной нагрузкой. Чтобы сгенерировать отчет JSON, нам просто нужно внести изменения в файл runner.

  • Измените параметр формата в файле runner следующим образом.

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 {}
  • Запустите тест, используя опцию -

    • Выбрать runTest.java файл из проводника пакетов.

    • Щелкните правой кнопкой мыши и выберите вариант Run as.

    • Выберите тест JUnit.

  • При запуске этого файла класса вы заметите следующее.

    • Оба сценария будут выполняться один за другим.

  • Отчет будет там назван cucumber.json (как предусмотрено в классе бегуна).

  • открыто cucumber.json файл в текстовом редакторе.

  • Вы увидите отчет, упомянутый на следующем снимке экрана, после размещения разрывов строк -

Note - JSON менее читабелен по сравнению с форматом отчета HTML.