Мы выполняем тестирование, чтобы понять стабильность продукта, будь то ручное тестирование или автоматический тест, очень важно создать краткий отчет, который может отображать стабильность продукта. Следовательно, пока мы автоматизируем наш тестовый сценарий с помощью Cucumber, важно знать, как лучше мы можем генерировать наши отчеты о тестировании Cucumber. Поскольку мы знаем, что Cucumber является структурой BDD, у него нет причудливого механизма отчетности.
Для этого нам нужно интегрировать Cucumber с другим инструментом с открытым исходным кодом, таким как Ant / Junit. Здесь мы рассмотрим примеры JUnit, поскольку он обеспечивает поддержку языка Java.
Давайте посмотрим на детали другого формата отчета, который доступен и прост в использовании —
Довольно Формат (HTML Отчет)
Pretty Format генерирует отчет теста Cucumber в формате HTML, то есть в формате HTML. Это наиболее читаемый формат отчета. Он генерирует отчет точно так же, как и файл объектов, поэтому отслеживание также упрощается. Также вы можете указать место, куда вы хотите поместить этот отчет после выполнения теста. Это может быть —
-
Локальный каталог. Мы можем указать целевой каталог для отчета как любой локальный каталог компьютера, на котором будет выполняться тест.
-
Каталог сервера — у нас также есть возможность указать целевой каталог как любой каталог на сервере, который является общедоступным. Это обычно помогает, когда мы хотим, чтобы наши клиенты / заинтересованные стороны просматривали результаты теста в любой момент времени.
Локальный каталог. Мы можем указать целевой каталог для отчета как любой локальный каталог компьютера, на котором будет выполняться тест.
Каталог сервера — у нас также есть возможность указать целевой каталог как любой каталог на сервере, который является общедоступным. Это обычно помогает, когда мы хотим, чтобы наши клиенты / заинтересованные стороны просматривали результаты теста в любой момент времени.
пример
Давайте автоматизируем пример красивого формата.
Шаг 1 — Создайте проект Maven с именем cucumberReport в Eclipse.
Шаг 2 — Создайте пакет с именем CucumberReport в src / test / java
Шаг 3 — Создайте файл объектов с именем cucumberReport.feature
Запишите следующий текст в файл и сохраните его.
Особенность — огуречный отчет
# Это проверка результата теста для теста Pass
Сценарий: функция входа в систему существует
Учитывая, что я открыл браузер
Когда я открываю сайт Facebook
Тогда кнопка логина должна существовать
# Это проверка результата теста для теста Failed
Сценарий: забытый пароль существует
Учитывая, что я открыл браузер
Когда я открываю сайт Facebook
Тогда ссылка на забытый пароль должна существовать
Примечание. Здесь первый сценарий будет пройден, а второй сценарий потерпит неудачу. Так что мы можем убедиться в том, как выглядит отчет о сбое и неудаче.
Шаг 4 — Создайте файл определения шага.
-
Выберите и щелкните правой кнопкой мыши на схеме пакета.
-
Нажмите на «Новый» файл.
-
Дайте имя файла как cucumberReport.java
-
Запишите следующий текст в файл и сохраните его.
Выберите и щелкните правой кнопкой мыши на схеме пакета.
Нажмите на «Новый» файл.
Дайте имя файла как 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"); } } }
Шаг 5 — Создайте файл класса бегуна.
-
Создайте класс бегуна с именем runTest.java внутри пакета.
-
Напишите следующий код. Сохраните файл.
Создайте класс бегуна с именем 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 из проводника пакетов.
-
Щелкните правой кнопкой мыши и выберите параметр « Запуск от имени» .
-
Выберите JUnit test.
-
Запустите тест, используя опцию
Выберите файл runTest.java из проводника пакетов.
Щелкните правой кнопкой мыши и выберите параметр « Запуск от имени» .
Выберите JUnit test.
При запуске этого файла класса вы увидите следующие вещи.
Оба сценария будут выполнены один за другим.
В целевом каталоге будет создана папка с именем Destination.
Отчет будет называться «Index.html».
Откройте Index.html с помощью веб-браузера.
Вы увидите отчет, упомянутый на следующем рисунке —
Это точно выделяет цвет неудачного сценария. Более того, в этом сценарии вы увидите подсветку для неудачного шага. Это делает отладку очень простой.
JSON Report
К настоящему времени мы увидели, насколько прост HTML-отчет. Однако, если мы хотим передать информацию об этом отчете в любое другое приложение, в случае HTML-отчетов это довольно сложно. Здесь возникает необходимость в другом формате отчетности. Нотация объекта сценария JSON-Java является еще одним форматом для создания отчетов об испытаниях Cucumber. JSON — это объект, содержащий много информации, хранящейся в текстовом формате. Отчеты JSON приносят в таблицу другое значение. Отчет JSON также может использоваться в качестве полезной информации, передаваемой между различными серверами. Кроме того, его можно использовать для отображения в виде веб-страницы. В двух словах, отчеты JSON могут использоваться другим приложением.
Что такое информация о полезной нагрузке? Когда данные отправляются через Интернет, каждая передаваемая единица включает в себя как информацию заголовка, так и фактические отправляемые данные. Заголовок идентифицирует источник и назначение пакета, в то время как фактические данные упоминаются как полезная нагрузка. Чтобы сгенерировать отчет JSON, нам просто нужно внести изменения в файл бегуна.
-
Измените параметр формата в файле бегуна следующим образом.
Измените параметр формата в файле бегуна следующим образом.
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 test.
-
Запустите тест, используя опцию —
Выберите файл runTest.java из проводника пакетов.
Щелкните правой кнопкой мыши и выберите опцию Run as .
Выберите JUnit test.
-
При запуске этого файла класса вы увидите следующие вещи.
-
Оба сценария будут выполнены один за другим.
-
При запуске этого файла класса вы увидите следующие вещи.
Оба сценария будут выполнены один за другим.
-
Отчет будет называться cucumber.json (как указано в классе бегуна).
-
Откройте файл cucumber.json в текстовом редакторе.
-
Вы увидите отчет, упомянутый на следующем скриншоте после размещения разрывов строк —
Отчет будет называться cucumber.json (как указано в классе бегуна).
Откройте файл cucumber.json в текстовом редакторе.
Вы увидите отчет, упомянутый на следующем скриншоте после размещения разрывов строк —
Примечание. JSON менее читаем по сравнению с форматом отчета HTML.