Организуйте Тестовые Сценарии И Управляйте Ими С Помощью Testng

TestNG — это мощная среда модульного тестирования, предоставляющая расширенные функции для организации тестовых случаев и управления ими.

Будучи похожим на JUnit, TestNG предлагает дополнительные функции, которые обеспечивают эффективное управление тестированием при интеграции с Selenium. С TestNG вы можете использовать широкий спектр аннотаций для группировки, упорядочивания, определения приоритетов и параметризации ваших тестовых случаев.

Кроме того, TestNG поддерживает интерфейсы прослушивателя, позволяющие выполнять различные операции на основе определенных событий.

Кроме того, TestNG облегчает параллельное выполнение тестовых примеров посредством конфигурации XML, что позволяет создавать несколько наборов тестов.

В этой статье мы рассмотрим, как TestNG может улучшить организацию и управление вашими тестовыми примерами.



Написание и выполнение первого теста TestNG

В TestNG методы тестирования или тестовые примеры определяются с помощью
  
  
  
  
  
  
  
  
  

<suite name="Test Suite"> <listeners> <listener class-name="com.example.CustomListener" /> </listeners> <!-- Test configurations --> </suite>

annotation. Any method annotated with

public class CustomListener implements ITestListener { // Listener implementation }

считается методом испытаний.

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

Чтобы выполнить метод тестирования, вам необходимо определить соответствующий класс теста в файле конфигурации testng.xml.

Группировка тестовых случаев

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

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

TestNG предоставляет возможность назначать методы тестирования различным группам с помощью

ISuiteListener

attribute in the

ITestListener

аннотация.

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

Например, давайте рассмотрим тестовый класс под названием

IInvokedMethodListener

containing a test method named

<suite name="Test Suite"> <test name="Parallel Test" parallel="methods"> <!-- Test configurations --> </test> </suite>

.

В приведенном ниже примере

parallel

method belongs to the "smokeTest" group: Java-копия

<suite name="Test Suite" parallel="tests"> <!-- Test configurations --> </suite>

В файл testng.xml вы можете включить нужные группы, используя команду

parallel

tag to execute only the test methods belonging to those groups: xml Копировать

<parameter name="browser" value="chrome" /> <parameter name="environment" value="local" />

При выполнении этой конфигурации testng.xml только методы тестирования из файла

@Test @Parameters({ "browser", "environment" }) public void testWithParameters(String browser, String environment) { // Test logic based on parameters }

class that belong to the "regressionTest" group will be executed while excluding those from the "smokeTest" group.

Методы тестирования секвенирования

TestNG предоставляет

testClick_add_icon()

attribute to define the execution order or sequence of test methods within a test class. By assigning priorities to test methods using this attribute, you can control the order of execution. The method with the highest priority value (e.g., 0) will be executed first, followed by methods with lower priority values. Рассмотрим следующий пример: Java-копия

testSubmit_btn()

В этом случае

@Test(priority = 0) public void testSubmit_btn() { // Test logic goes here } @Test(priority = 1) public void testClick_add_icon() { // Test logic goes here }

method will execute first, as it has the highest priority (0), while the

priority

метод будет выполняться вторым.



Параметризация тестовых случаев

TestNG позволяет выполнять тесты с различными наборами параметров, такими как браузеры, операционные системы, среды (например, тест, контроль качества, UAT), локальное или удаленное выполнение и многое другое.

Вы можете определить метод, который принимает эти параметры, и настроить выполнение теста на основе предоставленных аргументов.

В приведенном ниже примере у нас есть метод, который принимает два параметра: «браузер» и «среда».

На основе этих параметров будут вызываться определенные условия: Java-копия

SubMenuPageTest

Для передачи параметров необходимо настроить файл testng.xml: xml Копировать

<test name="Regression Suite"> <groups> <run> <include name="regressionTest" /> </run> </groups> <classes> <class name="com.example.SubMenuPageTest" /> </classes> </test>

При выполнении файла testng.xml метод теста будет выполнен с указанными значениями параметров, что позволит вам настроить выполнение теста на основе различных сценариев.



Параллельное выполнение тестов

TestNG предоставляет возможность выполнять тесты параллельно, обеспечивая более быстрое выполнение тестов и эффективное использование ресурсов.

Установив

<groups>

attribute in the testng.xml configuration file to "tests", you can instruct TestNG to execute all specified tests simultaneously. xml Копировать

@Test(groups = "smokeTest") public void checkProductClick() { // Test logic goes here }

При такой конфигурации все тесты, определенные в файле testng.xml, начнут выполняться одновременно, при условии, что базовая система имеет достаточные ресурсы для поддержки параллельного выполнения.

TestNG также поддерживает параллельное выполнение на уровне метода.

Установив

checkProductClick()

attribute to "methods", you can execute individual test methods in parallel within a test class. xml Копировать

checkProductClick()

В этом случае TestNG будет одновременно выполнять несколько методов тестирования, что может значительно сократить общее время выполнения теста.



Слушатели TestNG

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

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

Некоторые из часто используемых интерфейсов прослушивателя TestNG включают в себя:



  • SubMenuPageTest

    : Allows you to perform actions before and after a test method is invoked.


  • @Test

    : Provides methods to perform actions before and after a test class is run, and before and after each test method is run.


  • groups

    : Enables you to perform actions before and after a test suite is run.
Чтобы использовать прослушиватель, вам необходимо реализовать соответствующий интерфейс прослушивателя и добавить его в файл конфигурации testng.xml: Java-копия

@Test

xml Копировать

@Test

Добавив прослушиватель в файл testng.xml, TestNG будет вызывать методы прослушивателя в соответствующих тестовых событиях, что позволит вам настроить поведение и действия во время выполнения теста.



Заключение

TestNG предлагает мощные функции для организации и управления тестовыми примерами, позволяющие группировать методы тестирования, определять последовательность их выполнения, параметризовать тесты и выполнять их параллельно.

Кроме того, интерфейсы прослушивателя в TestNG обеспечивают гибкость для выполнения пользовательских действий на основе тестовых событий.

Используя эти функции, вы можете эффективно управлять наборами тестов и выполнять их, улучшая общий процесс автоматизации тестирования.

Вместе с данным постом часто просматривают: