Serenity bdd что это

Введение в автоматизацию тестирования BDD с помощью Serenity и Cucumber-JVM

В предыдущей статье мы рассмотрели, как можно использовать Serenity BDD с JUnit для написания чистых, читаемых автоматических приемочных тестов, и как Serenity также помогает вам создавать автоматизированные веб-тесты на основе WebDriver, которые легче понять и поддерживать. В этой статье мы будем использовать тот же пример домена, что и в предыдущей, но мы снова пройдемся по основам, поэтому вы можете сразу перейти к этой статье, даже если вы еще не читали предыдущую.

1. Основы BDD

Поведенческая разработка, которая является основной концепцией, лежащей в основе многих функций Serenity. Команда, использующая Behavior Driven Development, использует беседы и совместную работу на конкретных примерах для выработки общего понимания функций, которые они должны создавать. Беседы о конкретных примерах и контрпримеры — отличный способ избавиться от любых скрытых предположений или недопонимания относительно того, что должна делать функция.

Предположим, вы создаете сайт, где художники и ремесленники могут продавать свои товары онлайн. Одной из важных функций для такого сайта будет функция поиска. Вы можете выразить эту функцию, используя формат карты истории, обычно используемый в гибких проектах, таких как:

Чтобы сформировать общее понимание этого требования, вы можете обсудить несколько конкретных примеров. Разговор может идти примерно так:

И так далее. На практике многие из обсуждаемых примеров становятся «критериями приемлемости» для функций. И многие из этих критериев приемки становятся автоматическими приемочными испытаниями. Автоматизация тестов приемлемости обеспечивает ценную обратную связь для всей команды, так как эти тесты, в отличие от тестов модульных и интеграционных тестов, обычно выражаются в бизнес-терминах и могут быть легко понятны не разработчиками. И, как мы увидим далее в этой статье, отчеты, которые создаются при выполнении этих тестов, дают четкое представление о состоянии приложения.

2. Написание критериев приемки с помощью Cucumber-JVM

Cucumber — популярный инструмент автоматизации тестирования BDD. Cucumber-JVM — это Java-реализация Cucumber, на которой мы сосредоточимся в этой статье. В Cucumber вы выражаете критерии принятия в естественной, удобочитаемой форме. Например, мы могли бы написать пример «шерстяной шарф», упомянутый выше:

Иногда таблицы могут использоваться для суммирования нескольких разных примеров одного и того же сценария. В Gherkin вы можете использовать примеры таблиц, чтобы сделать это. Например, следующий сценарий иллюстрирует, как вы можете искать различные типы изделий из разных материалов:

В этой статье мы узнаем, как автоматизировать эти сценарии, используя Cucumber и Serenity BDD. Не беспокойтесь, если вы раньше не использовали Cucumber, поскольку мы рассмотрим достаточно примеров, чтобы вы могли увидеть, как он работает, даже если вы новичок в инструментах автоматизации тестирования BDD.

3. Написание исполняемых спецификаций с Cucumber и Serenity

3.1. Написание сценария

Давайте начнем с первого примера, описанного выше. В Cucumber сценарии хранятся в файлах объектов, которые содержат общее описание функции, а также ряд сценариев. Файл функций для приведенного выше примера вызывается search_by_keyword.feature и выглядит примерно так:

Эти файлы функций могут быть размещены в разных местах, но вы можете уменьшить объем конфигурации, который вам нужно сделать с Serenity, если вы поместите их в src/test/resources/features каталог.

Вы обычно организуете файлы объектов в подкаталогах, которые отражают требования более высокого уровня. Например, в следующей структуре каталогов у нас есть определения функций для нескольких функций более высокого уровня: search и shopping_cart :

3.2. Сценарий Бегун

3.3. Определения шагов

Файлы определений шагов должны находиться внутри или под пакетом, содержащим бегуны сценария:

Пакет бегуна сценария
Сценарист бегун
Определения шагов для участников сценария
Библиотеки Serenity Step находятся в другом подпакете.

3.4. Библиотеки «Шаг безмятежности»

Библиотека шагов Serenity — это обычный Java-класс с методами, помеченными @Step аннотацией, как показано здесь:

Библиотеки шагов часто используют объекты Page Objects, которые автоматически создаются
В @Step аннотации указан метод, который будет отображаться как шаг в отчетах о тестировании.

3.5. Объекты страницы

Объекты страницы содержат информацию о том, как тест взаимодействует с определенной веб-страницей. Они скрывают детали реализации WebDriver о том, как элементы на странице доступны и управляются с помощью более удобных для бизнеса методов. Подобно шагам, объекты Page являются повторно используемыми компонентами, которые облегчают понимание и обслуживание тестов.

Serenity автоматически создает экземпляры Page Objects для вас и внедряет текущий экземпляр WebDriver. Все, что вам нужно беспокоиться, это код WebDriver, который взаимодействует со страницей. И Serenity предлагает несколько быстрых клавиш, чтобы сделать это проще. Например, вот объект страницы для домашней страницы:

И вот второй объект страницы, который мы используем:

В обоих случаях мы скрываем реализацию WebDriver от способа доступа к элементам страницы внутри методов объекта страницы. Это делает код более легким для чтения и уменьшает количество мест, которые необходимо изменить, если страница изменена.

4. Отчетная и живая документация

Отчетность — одна из сильных сторон Серенити. Serenity не только сообщает о том, прошел ли тест или нет, но и документирует, что он сделал, в пошаговом описательном формате, который включает в себя данные теста и снимки экрана для веб-тестов. Например, следующая страница иллюстрирует результаты теста для наших первых критериев приемлемости:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Обратите внимание, как этот отчет точно воспроизводит пример из беседы с бизнесом, а также дает возможность перейти к «что», чтобы увидеть, как был выполнен определенный шаг, и (в данном случае), как выглядят соответствующие снимки экрана. как.

Ранее мы видели, как примеры таблиц могут быть отличным способом обобщить бизнес-логику; важно, чтобы эти таблицы были отражены в результатах испытаний, как показано здесь:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Но результаты тестов являются лишь частью картины. Также важно знать, какая работа была проделана и какая работа в процессе. При использовании Cucumber любой сценарий, содержащий шаги без соответствующих методов определения шагов, будет отображаться в отчетах как Ожидание (синий на графиках):

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

В предыдущем разделе мы увидели, как файлы объектов были организованы в каталоги, которые представляют функции или возможности более высокого уровня. Serenity будет использовать эту структуру пакета для группировки и агрегирования результатов тестирования для каждой функции. Таким образом, Serenity может сообщить о том, насколько хорошо было протестировано каждое требование, а также рассказать о требованиях, которые не были протестированы:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

5. Вывод

Надеюсь, этого будет достаточно, чтобы вы почувствовали вкус Serenity и Cucumber-JVM.

Источник

Working with Serenity BDD Framework – An Overview

Build better apps with a low-code development approach

Learn how enterprises use low-code development to build new apps, extend legacy ones, and test them in order to achieve their digital transformation goals.

Serenity BDD Framework Overview

Serenity is an open-source reporting library that enables developers to write easily-understandable and better-structured acceptance criteria for test automation projects. In addition to generating meaningful reports for each test, the tool also shows the list of features tested in each test case. With the details of the executed tests and the requirements that were tested, Serenity BDD Framework allows you to better understand how an application works and what it does.

The good thing about Serenity BDD Framework is that it supports multiple automated acceptance testing solutions. You can use the tool along with JUnit to quickly write clean and maintainable acceptable criteria or integrate it with WebDriver to test web applications in Selenium. It also supports RestAssured to test REST API. Serenity allows you to use any Behaviour-driven Development (BDD) tool such as Cucumber. You can also use any test case management tool such as JIRA or choose a directory-based approach.

What is BDD?

BDD stands for Behavior-driven Development. It has actually evolved from Test-driven Development (TDD) that talks about writing the test cases before writing the code. BDD also takes the same approach but focuses on system behavior and user behavior. In a BDD environment, tests are written in shared language so that all stakeholders (technical and non-technical) will be able to understand how an application works. It also facilitates nice collaboration between different teams. The ability to write test cases in a common language such as English gives a big advantage for developers while preparing acceptance testing criteria. You can write test cases depicting real-time scenarios.

History and Main Concepts of BDD

It was Daniel Terhorst-North who pioneered the development of BDD methodology in 2003. Liz Keogh contributed to the concept in 2004 along with Chris Matts and developed the template ‘Given / When / Then’ for capturing user stories and converting them into an executable form. This concept was inspired by the ‘Domain Driven Design’ written by Eric Evans. Another inspiration was taken from the user story template ‘As a / I / So that’ created by Rachel Davies. In 2005, Dave Astels, David Chelimsky, Steven Baker and Aslak Hellesoy founded RSpec Project that supported BDD in Ruby. While improving this project, Aslak came up with a better version of RSpec Story Runner and he named it Cucumber.

In a BDD approach, requirements are converted into user stories and valid user scenarios.

An example of a BDD template is

Another example is

BDD comes with a minimal learning curve owing to the usage of a shared language. It provides seamless collaboration between different teams. Here, you are defining the behavior and not the test. So, the acceptance criteria is defined before developing the code which is beneficial for business owners as they get a clear understanding of how the application behaves instead of thinking about the features.

Cucumber and Serenity are a couple of popular BDD frameworks.

Getting Started with Serenity BDD Framework

These components run Serenity BDD Framework. They are all required.

Step 1: Install Java

To download Java, visit the following link:

Download the Java Development Kit (JDK)

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Java SE 14.0.2 is the latest release for the Java Standard Edition Platform. Accept the license agreement and proceed with the download.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

After the software downloads, double-click the application and install Java.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Choose the destination folder and click next.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

The setup package installs Java on your machine. Click close to finish the installation.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

To check if you successfully installed Java, open the command prompt, and type the version command.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Step 2: Configure Environment Variables

To use Java, you should configure environment variables. Add Java path under system variables and user variable settings. To do so,

Check if Java path is added under system variables and user variables path.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Now Java is ready for use.

Step 3: Install IDE

To write and execute tests using Serenity BDD Framework, you need a modern IDE. You can either choose IntelliJ or Eclipse. To install IntelliJ, visit the following website.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Click on the Download button to download the tool. IntelliJ is offered in two versions; Ultimate with a 30-day trial and Community version that is free and open-source. Choose the community version for the test purpose.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Now, double-click the IntelliJ software to being the installation procedure.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Click next and choose the installation location.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

The next screen prompts you to customize installation options.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

You can create a desktop shortcut or update the context menu. The important feature to note is the ‘Update PATH variable’ option. When you select it, it will automatically configure the environment variables. It means you don’t have to manually add the IntelliJ path to the system variables and user variables.

On the next screen, choose the start menu option and click next to proceed with the installation.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

After the installation is completed, it will prompt for a restart. You can choose to manually restart it later.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

After the system gets restarted, open the IntelliJ IDE. When you open it for the first time, it will prompt you to accept the privacy policy.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

In the next screen, choose your preference for data sharing.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Now, the IDE opens up.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

So, it is ready for use. You can choose the UI version Dracula (in dark mode) or Light (light mode)

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Now, the tool is ready. You can choose a new project or open an existing one.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Step 4: Install Gradle

In order to execute tests and generate reports, you should add a built tool such as Maven or Gradle. You can download Maven here:

For Gradle, visit this link:

Create a folder called Gradle in C drive and unzip the Gradle package into that folder.

Step 5: Configure Environment Variable

To use Gradle, you should configure environment variables. Follow the steps mentioned in Step 2 to open the Environment Variables setting. Add the following path under system variables.

To check if Gradle is successfully configured, open a command prompt window and type the version command.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

So, Gradle is working fine.

Step 6: Add Serenity BDD Plugin

To run your tests using Serenity BDD Framework, you should add the Serenity plugin. To do so, open the IntelliJ IDE.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Click on New Project. On the left side menu, choose Gradle.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Choose a name and the location of the build folder and click finish.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

The tool will download the necessary files and create a new Gradle project.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

After the build is completed, it will display a message that the build is successful.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Adding Serenity BDD Plugin

To apply the Serenity BDD Framework plugin to the project, open the build.gradle file and edit it with the following code.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Notice that the code mentions serenityVersion. The latest version is 2.2.12. When you run the code, it will install the Serenity plugin 2.2.12.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Along with the Serenity Gradle plugin, it will install all the dependencies. In this example, the Junit testing library is added. You can choose any other test library as well and add it under dependencies.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Now, open the command prompt window and type the following command.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

The build is successful. The test reports are stored in the root folder – C:\ExperitestSerenity\target\site\serenity. When you open the index HTML file, you can check the test reports generated by Serenity BDD Framework. As we have added the continueOnFailure, the tests will continue even though some tests fail.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Running Your First Test

Here is a sample test using a demo site http://decohere.herokuapp.com. This project authenticates a user login task and checks if the user is able to log in and navigate to the welcome page.

Open your project ExperitestSerenity in the IntelliJ IDE.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Here is a list of packages and classes created for the project.

WhenAuthenticating.java

This is the main class that checks if the user is on the Home Page, logins to the account as an admin and successfully navigates to the welcome page.

[javascript] package ExperitestTC1.features.authentication; import ExperitestTC1.steps.DecohereUser; import net.serenitybdd.junit.runners.SerenityRunner; import net.thucydides.core.annotations.Managed; import net.thucydides.core.annotations.Steps; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.WebDriver; @RunWith(SerenityRunner.class) public class WhenAuthenticating < @Steps private DecohereUser user; @Managed(driver = "chrome") WebDriver browser; @Test public void shouldBeAbleToLoginAsAdmin() < user.isOnTheHomePage(); user.logsInAsAdmin(); user.shouldBeOnLandingPage(); >> [/javascript]

DecohereUser.java

This class provides the Home page details for the main class.

[javascript] package ExperitestTC1.steps; import ExperitestTC1.ui.DecohereHomePage; import ExperitestTC1.ui.LandingPage; import net.thucydides.core.annotations.Step; import static org.assertj.core.api.Assertions.assertThat; public class DecohereUser < private DecohereHomePage decohereHomePage; private LandingPage landingPage; @Step public void isOnTheHomePage() < decohereHomePage.open(); >@Step public void logsInAsAdmin() < decohereHomePage.loginAsAdmin(); >@Step public void shouldBeOnLandingPage() < assertThat(landingPage.noticeMessage()).isEqualTo("You are now logged in as admin@decohere.com."); >> [/javascript]

DecohereHomePage.java

This class provides the username and password to login to the site.

LandingPage.java

This class shows the welcome page message.

When you run the test in IntelliJ IDE, it will open the Decohere home page and signs-in to the account. The Serenity BDD will generate a report with the test details.

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Summary

Serenity BDD Framework’s handy reporting library lets you run better structured and easier to understand acceptance tests. With reports getting generated for each action at every step, developers can understand how each feature is working and quickly identify errors. Serenity Step Libraries enable you to annotate methods with @Step annotation so that you can orchestrate calls to different layers such as databases, web services, and page objects. Overall, Serenity BDD Framework is a good choice when it comes to acceptance testing.

Continuous Testing is about breaking down barriers. See how important continuous testing in the cloud remains in 2021 with this webinar video.

Источник

Тестирование RESTful API при помощи Serenity и REST Assured на Kotlin

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

В этой заметке попробуем разобраться с тем, как на языке Kotlin написать тесты для проверки RESTful API приложения. В интернете полно статей про то, как писать подобные тесты на Java и Serenity, мы же воспользуемся Kotlin.

Какие технологии и библиотеки будем использовать:

Что такое Serenity BDD?

Краткий список возможностей:

Что такое Rest Assured?

Rest Assured — это Java-библиотека для тестирования RESTful API. Код, написанный с помощью этой библиотеки, имеет простой и понятный синтаксис. В тесте можно выполнить запрос к API буквально в одну строчку кода и при помощи DSL синтаксиса проверять полученный результат.

Подготовка

В оригинальной статье в качестве сборщика проекта используется maven, мы же воспользуемся Gradle. (https://gradle.org/maven-vs-gradle/)

Перед тем как приступить к написанию тестов, необходимо:

Настройка проекта в IDE

Создаем новый проект (Create new project), выбираем Gradle — Kotlin (Java):

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Заполняем необходимые поля:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Указываем путь к gradle. У меня в MacOS он установлен через homebrew и Idea не находит его автоматически, поэтому я указываю путь руками: /usr/local/Cellar/gradle/4.2.1/libexec:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

В итоге получаем пустой проект, с настроенным файлом конфигурации build.gradle, в котором все, что необходимо для написания кода на Kotlin, уже подключено.

Настройка зависимостей

Нам необходимо подключить следующие библиотеки:

Вносим изменения в build.gradle. Жирным шрифтом отмечены сделанные изменения относительно той версии, которая получилась после создания проекта.

Вот и вся настройка. Перейдем к написанию тестов.

Первый тест

Для написания тестов нам необходим какой-либо веб-сайт, работающий по RESTful API. Воспользуемся http://www.groupkt.com/, который предоставляет сервисы, с помощью которых, например, можно выполнить поиск страны по коду ISO при помощи метода API /country/get/iso2code/

Ниже приведён ответ сервера в формате JSON:

В папке serenity-rest-assured-automation/src/test/kotlin/tests/ создаем файл GroupktAPITest.kt и добавляем в него следующий текст:

Тест делает запрос на адрес http://services.groupkt.com/country/get/iso2code/RU и проверяет, что в ответе в поле RestResponse.result.name содержится значение “ Russian Federation”

Кстати, код взят из оригинальной статьи и автоматически конвертирован из Java в Kotlin при его вставке в Idea. При этом некоторые инструкции (when, is) были экранированы при помощи символа «, так как они являются ключевыми словами в Kotlin.

Попробуем запустить тест.

Запуск тестов

Тесты можно запускать двумя способами: через JUnit и через Gradle.

Чтобы запустить тесты через JUnit, в Idea надо навести мышь на значок запуска слева от строки, в которой объявлен класс и выбрать Run Test:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

После прогона тестов (в нашем случае одного теста), внизу окна Idea отобразится результат тестирования:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Теперь настроим запуск тестов через Gradle и в дальнейшем будем пользоваться этим способом запуска.

3. Выбираем Gradle project из выпадающего списка

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Сохраняем изменения и запускаем тест при помощи Gradle. После прогона увидим результат:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

Посмотрим, как выглядит упавший тест. Для этого поменяем в тесте код страны и запустим тест заново:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

В логе можно увидеть причину падения:

Возвращаем код страны обратно на RU.

Теперь добавим несколько тестов, чтобы проверить поиск других стран.

Добавляем еще тесты

Добавим поиск США и Индии по их ISO-кодам:

Полную версию можно посмотреть тут.

Если посмотреть на код, то можно увидеть, что в нём повторяются одни и те же инструкции для каждого теста:

Чтобы избавиться от повторяющихся фрагментов кода, в нашем случае можно:

Первый вариант хотя и является самым очевидным, но он не такой гибкий, как остальные. Что если нам понадобится добавить еще пару проверок для других тестов?

Рассмотрим второй вариант.

В Serenity тесты принято разбивать на небольшие блоки кода, которые затем можно использовать повторно при необходимости. Эти блоки называются “шагами”. Применяя подобный принцип на практике, можно перейти от использования технических формулировок (“код http-ответа = 200” или “выполни http запрос”) к выражениям, понятным обычному человеку: “действие было успешным” или “выполни поиск”. Поэтому всегда лучше начинать с реализации маленьких шагов, описывающих какие-либо действия, а затем использовать их для создания более сложных шагов и сценариев. В общем, чтобы сделать тесты легко поддерживаемыми необходимо использовать принцип DRY (Don’t Repeat Yourself)

Выносим шаги в отдельный пакет

Создаем новый файл src/test/kotlin/steps/CountriesSearchSteps.kt :

Обратите внимание, все шаги, которые мы создали, ничего не возвращают, а для передачи параметров между ними используется приватная переменная.

Класс и его методы объявлены как open. Это необходимо, чтобы Serenity мог корректно сформировать отчёт, детализируя его пошагово.

Запускаем прогон тестов. Он должен завершиться успешно.

Теперь мы можем спокойно добавить дополнительный шаг и применить его в одном тесте.

Параметризованные тесты

Библиотека Serenity имеет встроенные механизмы для создания параметризованных тестов. Тестовые данные можно подгружать из csv-файла или задать в коде. Рассмотрим второй вариант.

Что необходимо сделать:

В итоге Serenity при инициализации тестового класса будет передавать в него очередную порцию тестовых данных и запускать все тесты внутри класса. К тестовым данным можно получить доступ через атрибуты класса.

Отчёты

Чтобы формировался отчет, необходимо использовать команду aggregate, которую мы добавили ранее при настройке запуска тестов через Gradle.

Сформированный отчет можно найти в каталоге target/site/serenity/. Переходим в этот каталог и открываем файл index.html:

Serenity bdd что это. Смотреть фото Serenity bdd что это. Смотреть картинку Serenity bdd что это. Картинка про Serenity bdd что это. Фото Serenity bdd что это

В отчете можно увидеть шаги, которые выполнялись в каждом тесте и даже результаты http- запросов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *