Тестирование – это платформа автоматизации тестирования с открытым исходным кодом, вдохновленная JUnit и NUnit. Платформа поддерживает тестирование на основе данных, параллельное выполнение тестов, тестирование интегрированных классов, предоставляет доступ к отчетам HTML, среди прочего. Тестирование может быть легко интегрировано с Jenkins, Eclipse, IntelliJ IDEA, Maven и т.д.
Аннотации в тестировании полезны для управления потоком выполнения методов тестирования и параллельного выполнения нескольких тестов. Параметризованные тесты TestNG с Selenium WebDriver удобны для запуска тестов(тестов) в различных комбинациях браузеров и платформ. В рамках нашей серии Учебник по тестированию мы рассмотрим, как группировать тестовые случаи в тестировании. Использование групп в тестировании демонстрируется на соответствующих примерах групп тестирования.
Что Такое Группы Тестирования?
Как следует из названия, группировка в тестировании позволяет группировать несколько методов тестирования в именованные группы. С помощью групп в тестировании у вас есть возможность выполнить определенный набор тестов, принадлежащих группе или нескольким группам.
Рассмотрим сценарий, в котором набор тестов включает различные типы тестов, например, модульный тест, интеграционный тест, тест на курение и т.д. Вместо добавления всех тестовых сценариев в один набор тестов (или несколько наборов тестов), вы можете выполнить “группировку” методов тестирования. Это помогает разделить тестовые сценарии на различные категории тестов – тип теста (например, дымовой, функциональный и т. Д.), Тестируемая функциональность (вход, проверка и т. Д.) И комбинации тестов (например, браузер, установленный в Chrome, Firefox в Windows 10 и т. Д.).
Сложные группировки методов тестирования с помощью групп тестирования используются для:
- Объявление методов, принадлежащих группам.
- Указание групп, содержащих другие группы.
- Выполнение тестов в одной или нескольких группах.
- Включая (или исключая) тесты в группе.
- Включая определенный набор групп (или регулярных выражений) исключая при этом другую группу
- Выполнение тестов, зависящих от других тестов, и предотвращение ненужного выполнения тестов в случае сбоя зависимого теста.
Преимущества групп тестирования
Вот некоторые из основных преимуществ групп при тестировании:
- Гибкость в разделении тестов, тем самым сокращая усилия, связанные с обслуживанием тестов.
- Позволяет избежать необходимости перекомпиляции кода, если два разных набора тестов выполняются один за другим.
Группы тестирования также могут использоваться для параллельного выполнения тестов на уровне “Тест” или “Метод”. В дальнейших разделах этого руководства “Как группировать тестовые случаи в тестировании” мы продемонстрируем параллельное тестирование в TestNG и Selenium с использованием тестовых групп.
Как группировать тестовые случаи в тестировании?
Группы в тестировании указаны в testng.xml под тегом или . Группы под тегом <набор> применяются ко всем тестам, включенным под тегом <тест> в этом конкретном <наборе>.
Чтобы сгруппировать тесты в исходном коде, необходимо использовать атрибут @groups аннотации @test. Тестирование предоставляет возможность структурировать тест таким образом, чтобы весь тестовый класс принадлежал определенной группе тестирования или несколько методов принадлежали группе TestNG. Кроме того, методы тестирования могут принадлежать к одной или нескольким группам тестирования.
Давайте рассмотрим простой пример, в котором тестовый код содержит три метода тестирования (test_method 1, test_method 2 и test_method 3). Мы создаем две тестовые группы – group1 и group2.
Вот как группировать тестовые случаи в тестировании. Как показано ниже, test_method 1() является частью обеих групп, а test_method 2() и test_method 3() являются частью группы 2 и группы 1 соответственно.
public class Test1 { @Test(groups = { "group1", "group2" }) public void test_method1() { //Test implementation } @Test(groups = {"group2"} ) public void test_method2() { //Test implementation } @Test(groups = {"group1"}) public void test_method3() { //Test implementation } }
Группы тестирования вызываются в testng.xml:
Как видно из testng.xml, группы включены в тег . Поскольку мы хотим выполнить тесты, включенные в обе группы (группа 1 и группа 2), мы включаем необходимые имена групп в тег .
Демонстрация: Как использовать группы тестирования
Для демонстрации выполнения тестов в одних и тех же группах, в нескольких группах, включая (и исключая) методы тестирования и т.д., Мы используем сценарии кроссбраузерного тестирования, которые будут выполняться в облачной сетке Selenium/| с помощью LambdaTest.
- Тестовая группа – 1 (Имя группы – Поиск)
Сценарий тестирования – 1 [ОС – Windows 10, Браузер – Chrome, Последняя версия]
- Зайдите в Google.
- Введите строку поиска как “Лямбда-тест”.
- Подтвердите, если заголовок страницы не соответствует ожидаемому заголовку.
Сценарий тестирования – 2 [ОС – macOS Catalina, Браузер – Safari, Версия – 13.0]
- Иди в Бинг.
- Введите строку поиска как “Блог лямбда-теста”.
- Подтвердите, если заголовок страницы не соответствует ожидаемому заголовку.
- Тестовая группа – 2 (имя группы – Задача)
Сценарий тестирования – 1 [ОС – Windows 10, Браузер – Firefox, Версия – 68.0]
- Перейдите в Приложение для задач лямбда-теста .
- Отметьте Первый пункт (li 1) как Выполненный.
- Отметьте Второй пункт (li 2) как Выполненный.
Сценарий тестирования – 2 [ОС – macOS Catalina, Браузер – Safari, Версия – 13.0]
- Перейдите в Приложение для задач лямбда-теста .
- Отметьте Первый пункт (li 1) как Выполненный.
- Отметьте Второй пункт (li 2) как Выполненный.
- Отметьте Третий пункт (li 3) как Выполненный.
Вот общая структура проекта, которую мы создали в IDE IntelliJ IDEA:
В проекте TestNG Groups мы создаем пакет с именем org.testng group, в котором мы создаем следующие файлы классов (которые содержат реализацию соответствующих сценариев тестирования):
(Реализация тестовых сценариев в “Тестовой группе 1”)
package org.testnggroup; import org.openqa.selenium.*; import org.testng.Assert; import org.testng.IExecutionListener; import org.testng.annotations.Test; import java.net.MalformedURLException; public class TestNG_SearchGroup extends Helper implements IExecutionListener { public static String status = "passed"; @Override public void onExecutionStart() { System.out.println("onExecutionStart"); } @Test (priority = 1, groups = { "Search" }) public void test_GoogleSearch() throws InterruptedException, MalformedURLException { String search_string =" LambdaTest"; String exp_title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest"; setupThread("test_GoogleSearch", "test_GoogleSearch", "Windows 10", "Chrome", "latest"); WebDriver webdriver = getDriver(); webdriver.navigate().to("https://www.google.com"); webdriver.manage().window().maximize(); System.out.println("Started session"); try { /* Enter the search term in the Google Search Box */ WebElement search_box = webdriver.findElement(By.xpath("//input[@name='q']")); search_box.sendKeys(search_string); search_box.submit(); Thread.sleep(3000); /* Click on the first result which will open up the LambdaTest homepage */ WebElement lt_link = webdriver.findElement(By.xpath("//span[.='LambdaTest: Most Powerful Cross Browser Testing Tool Online']")); lt_link.click(); Thread.sleep(5000); String curr_window_title = webdriver.getTitle(); Assert.assertEquals(curr_window_title, exp_title); status = "passed"; } catch (Exception e) { System.out.println(e.getMessage()); } if (webdriver != null) { ((JavascriptExecutor) webdriver).executeScript(+status+""); webdriver.quit(); } } @Test (priority = 2, groups = { "Search" }) public void test_BingSearch() throws InterruptedException, MalformedURLException { String search_string ="LambdaTest Blog"; String exp_title = "LambdaTest | A Cross Browser Testing Blog"; setupThread("test_BingSearch", "test_BingSearch", "MacOS Catalina", "Safari", "13.0"); WebDriver webdriver = getDriver(); webdriver.navigate().to("https://www.bing.com"); webdriver.manage().window().maximize(); System.out.println("Started session"); try { /* Enter the search term in the Google Search Box */ WebElement search_box = webdriver.findElement(By.xpath("//input[@id='sb_form_q']")); search_box.sendKeys(search_string + Keys.ENTER); Thread.sleep(3000); /* Click on the first result which will open up the LambdaTest homepage */ WebElement lt_link = webdriver.findElement(By.xpath("//a[.='LambdaTest | A Cross Browser Testing Blog']")); lt_link.click(); Thread.sleep(5000); String curr_window_title = webdriver.getTitle(); Assert.assertEquals(curr_window_title, exp_title); status = "passed"; } catch (Exception e) { System.out.println(e.getMessage()); } if (webdriver != null) { ((JavascriptExecutor) webdriver).executeScript(+status+""); webdriver.quit(); } } @Override public void onExecutionFinish() { System.out.println("onExecutionFinish"); } }
(Реализация тестовых сценариев в “Тестовой группе 2”)
package org.testnggroup; import org.openqa.selenium.*; import org.testng.IExecutionListener; import org.testng.annotations.Test; import java.net.MalformedURLException; public class TestNG_ToDoGroup extends Helper implements IExecutionListener { /* WebDriver driver; */ /* private ThreadLocaldriver = new ThreadLocal<>(); */ public static String status = "passed"; @Override public void onExecutionStart() { System.out.println("onExecutionStart"); } @Test (priority = 1, groups = { "ToDo" }) public void test_Selenium4_ToDoApp_Test1() throws InterruptedException, MalformedURLException { setupThread("test_Selenium4_ToDoApp_Test1", "test_Selenium4_ToDoApp_Test1", "Windows 10", "Firefox", "68.0"); WebDriver webdriver = getDriver(); webdriver.navigate().to("https://lambdatest.github.io/sample-todo-app/"); webdriver.manage().window().maximize(); System.out.println("Started session"); Thread.sleep(5000); try { /* Let's mark done first two items in the list. */ webdriver.findElement(By.name("li1")).click(); webdriver.findElement(By.name("li2")).click(); /* Let's add an item in the list. */ webdriver.findElement(By.id("sampletodotext")).sendKeys("Happy Testing at LambdaTest"); webdriver.findElement(By.id("addbutton")).click(); /* Let's check that the item we added is added in the list. */ String enteredText = webdriver.findElement(By.xpath("/html/body/div/div/div/ul/li[6]/span")).getText(); if (enteredText.equals("Happy Testing at LambdaTest")) { System.out.println("Demonstration is complete"); status = "passed"; } } catch (Exception e) { System.out.println(e.getMessage()); } if (webdriver != null) { ((JavascriptExecutor) webdriver).executeScript(+status+""); webdriver.quit(); } } @Test (priority = 2, groups = { "ToDo" }) public void test_Selenium4_ToDoApp_Test2() throws InterruptedException, MalformedURLException { setupThread("test_Selenium4_ToDoApp_Test2", "test_Selenium4_ToDoApp_Test2", "MacOS Catalina", "MicrosoftEdge", "87.0"); WebDriver webdriver = getDriver(); webdriver.navigate().to("https://lambdatest.github.io/sample-todo-app/"); webdriver.manage().window().maximize(); System.out.println("Started session"); Thread.sleep(5000); try { /* Let's mark done first three items in the list. */ webdriver.findElement(By.name("li1")).click(); webdriver.findElement(By.name("li2")).click(); webdriver.findElement(By.name("li3")).click(); } catch (Exception e) { System.out.println(e.getMessage()); } status = "passed"; if (webdriver != null) { ((JavascriptExecutor) webdriver).executeScript(+status+""); webdriver.quit(); } } @Override public void onExecutionFinish() { System.out.println("onExecutionFinish"); } }
( Реализация вспомогательных функций для создания экземпляра RemoteWebDriver)
package org.testnggroup; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; public class Helper { protected static ThreadLocaldriver = new ThreadLocal<>(); public static String username = "user-name"; public static String access_key = "access-key"; public void setupThread (String build, String name, String platformName, String browserName, String browserVersion) throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("build", build); capabilities.setCapability("name", name); capabilities.setCapability("platformName", platformName); capabilities.setCapability("browserName", browserName); capabilities.setCapability("browserVersion",browserVersion); capabilities.setCapability("tunnel",false); capabilities.setCapability("network",true); capabilities.setCapability("console",true); capabilities.setCapability("visual",true); driver.set(new RemoteWebDriver(new URL("http://" + username + ":" + access_key + "@hub.lambdatest.com/wd/hub"), capabilities)); } public WebDriver getDriver() { return driver.get(); } public void tearDownThread() { getDriver().quit(); } }
Вот три метода, реализованные в Helper.java:
- поток настройки: Этот метод принимает пять аргументов (Сборка, Имя, название платформы, имя браузера и версия браузера), которые соответствуют требованиям Генератора возможностей LambdaTest . Кроссбраузерные тесты будут выполняться в сетке Selenium 4.
Он создает экземпляр нового ThreadLocal для каждого тестового класса, поскольку тесты (в файлах двух классов) выполняются параллельно на уровне “Метода”.
- getDriver: Этот метод возвращает объект WebDriver в качестве локального потока для параллельных тестов.
- Разрывная нить: Этот метод освобождает ресурсы, удерживаемые текущим объектом WebDriver.
4.0.0 org.testnggroup TestNGGroups 1.0-SNAPSHOT UTF-8 org.testng testng 6.9.10 test org.seleniumhq.selenium selenium-java 4.0.0-alpha-7 org.seleniumhq.selenium selenium-chrome-driver 4.0.0-alpha-7 org.seleniumhq.selenium selenium-remote-driver 4.0.0-alpha-7 io.github.bonigarcia webdrivermanager 4.1.0 org.slf4j slf4j-nop 1.7.28 test junit junit 4.13 test com.github.lambdatest lambdatest-tunnel-binary 1.0.4 com.typesafe.play play-mailer_2.13 8.0.1 jakarta.mail jakarta.mail-api 2.0.0 com.sun.activation javax.activation 1.2.0 test install maven-compiler-plugin 3.0 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.12.4 testng.xml org.apache.maven.plugins maven-surefire-report-plugin 3.0.0-M5
Как Запускать Тестовые Случаи В Одной Группе?
В рамках примеров групп тестирования мы рассмотрим наиболее простое использование групп в тестировании. В проекте у вас может быть несколько групп, но вам может быть интересно запускать тесты, принадлежащие определенной группе TestNG. В таких случаях вы можете сгруппировать тесты, чтобы выборочно запускать “все тесты” в определенной группе.
В нашем примере у нас есть две группы тестирования – Поиск и Задание. Давайте рассмотрим, как параллельно запускать тестовые случаи в одной и той же группе (например, Поиск). Параллельное тестирование в Selenium предпочтительнее, чтобы тесты выполнялись быстрее, а также вы могли максимально использовать возможности, предлагаемые облачной сеткой Selenium.
В testng.xml, мы устанавливаем атрибут количества потоков равным 2, а атрибут parallel – “методы”. Поскольку мы хотим запустить тестовые случаи, реализованные в группе “Поиск”, группа включена в тег <выполнить> в разделе <группы>.
В группе тестирования “Поиск” есть два метода тестирования:
- test_GoogleSearch – Приоритет установлен на “1”.
- test_BingSearch – Приоритет установлен на “2”.
Указанные групповые тесты будут выполняться параллельно в соответствии с приоритетом, указанным в аннотации @test.
[..] @Test (priority = 1, groups = { "Search" }) public void test_GoogleSearch() throws InterruptedException, MalformedURLException { String search_string =" LambdaTest"; String exp_title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest"; setupThread("test_GoogleSearch", "test_GoogleSearch", "Windows 10", "Chrome", "latest"); .............................. .............................. .............................. } @Test (priority = 2, groups = { "Search" }) public void test_BingSearch() throws InterruptedException, MalformedURLException { String search_string ="LambdaTest Blog"; String exp_title = "LambdaTest | A Cross Browser Testing Blog"; setupThread("test_BingSearch", "test_BingSearch", "MacOS Catalina", "Safari", "13.0"); .............................. .............................. .............................. } [..]
Как видно на снимке выполнения, два метода тестирования под тегом тестирования – “Поиск” выполняются параллельно:
Ниже показаны снимки выполнения из ИДЕИ и панели мониторинга автоматизации из Лямбда-теста. Это указывает на то, что их тесты были успешно выполнены:
Как Запускать Тестовые Случаи В Нескольких Группах?
Тестирование позволяет запускать методы тестирования, принадлежащие нескольким группам. Имена групп представлены в виде массива в атрибуте groups аннотации @test . В нашем случае у нас есть четыре метода тестирования, которые сгруппированы в две группы тестирования. Поскольку методы тестирования являются частью двух разных классов, эти две группы включены в два отдельных тега
Методы тестирования двух разных классов выполняются в разных потоках. Поскольку мы установили для атрибута parallel значение “методы”, методы (в соответствии с установленным приоритетом) в соответствующих классах выполняются параллельно.
Сначала методы тестирования в группе “Поиск” выполняются параллельно. После успешного выполнения этих методов методы тестирования в группе тестирования “Что делать” выполняются параллельно.
Вот скриншоты выполнения, которые показывают, что все четыре метода тестирования в группах “Поиск” и “Задача” были выполнены успешно:
Группы Внутри Групп В Тестировании
В этом разделе руководства по тестированию мы рассмотрим, как использовать “Мета-группы” в тестировании. Группы могут включать в себя другие группы. Объединенная группа называется “Мета-группой”. Группы внутри групп при тестировании могут быть полезны в тех случаях, когда “коллекция” тестовых сценариев из разных групп должна выполняться как часть тестового случая.
Для демонстрации того, как группировать тестовые случаи в TestNG, когда группы находятся внутри групп, мы создаем четыре группы тестов – Search1 и Search2 (для включения методов тестирования, демонстрирующих функциональность поиска) и ToDo1 и ToDo2 (для включения методов тестирования, демонстрирующих функциональность приложения Todo).
Ниже показаны модификации кода для создания четырех групп тестирования:
public class TestNG_SearchGroup extends Helper implements IExecutionListener { [..] @Test (priority = 1, groups = {"Search1"}) public void test_GoogleSearch() throws InterruptedException, MalformedURLException { String search_string =" LambdaTest"; String exp_title = "Most Powerful Cross Browser Testing Tool Online | LambdaTest"; setupThread("test_GoogleSearch", "test_GoogleSearch", "Windows 10", "Chrome", "latest"); ................................................... ................................................... ................................................... } @Test (priority = 2, groups = {"Search2"}) public void test_BingSearch() throws InterruptedException, MalformedURLException { String search_string ="LambdaTest Blog"; String exp_title = "LambdaTest | A Cross Browser Testing Blog"; setupThread("test_BingSearch", "test_BingSearch", "MacOS Catalina", "Safari", "13.0"); ................................................... ................................................... ................................................... } [..] }
public class TestNG_ToDoGroup extends Helper implements IExecutionListener { [..] @Test (priority = 1, groups = {"ToDo1"}) public void test_Selenium4_ToDoApp_Test1() throws InterruptedException, MalformedURLException { setupThread("test_Selenium4_ToDoApp_Test1", "test_Selenium4_ToDoApp_Test1", "Windows 10", "Firefox", "68.0"); ................................... ................................... ................................... } @Test (priority = 2, groups = {"ToDo2"}) public void test_Selenium4_ToDoApp_Test2() throws InterruptedException, MalformedURLException { setupThread("test_Selenium4_ToDoApp_Test2", "test_Selenium4_ToDoApp_Test2", "MacOS Catalina", "MicrosoftEdge", "87.0"); ................................... ................................... ................................... } [..] }
Новая группа под названием “Группа1” включает методы тестирования, реализованные в группах “Поиск 1” и “Поиск2”. Другая группа, “Группа 2”, включает методы тестирования, реализованные в группах “Dota1” и “Dota2”. Группы Group1 и Group2 включены в состав новой группы под названием “сУпергРуппа”.
Четыре теста, которые являются частью “сУпергРуппы”, выполняются путем включения супергруппы под тегом .
Четыре метода тестирования, входящие в состав вложенной группы с именем Супергруппа, выполняются параллельно:
Все четыре тестовых сценария в разделе “сУпергРуппа” успешно выполнены:
Как Исключить/Включить Тестовые Случаи С Группами?
Группы тестирования также предоставляют возможность игнорировать сценарии тестирования/методы тестирования с помощью тега <исключить> в разделе <методы>. В аналогичных строках тег в разделе <методы> testng.xml используется для включения методов тестирования в процесс выполнения теста.
- Класс группы Testing_Search: Для запуска методов тестирования, имя которых включает “.*Бытие. * “и исключить метод(ы) тестирования, название которого содержит”.*Google. *”, мы используем группы методов следующим образом:
Методом сопоставления в классе является test_Bing Поиск() .
- Тестирование для группового занятия: Для запуска методов тестирования, имя которых включает “.*TodoApp. * “и исключить метод(ы) тестирования, название которого содержит”.*Тест1. *”, мы используем группы методов следующим образом:
Метод сопоставления в классе – test_selenium 4_ToDoApp_Test2() .
Вот снимок выполнения, который указывает, что два соответствующих метода тестирования успешно запущены в облачной сетке Selenium:
Как исключить Группу тестирования?
Платформа тестирования также позволяет как включать, так и исключать их. Исключение групп в тестировании полезно в тех случаях, когда в тестах происходит временная поломка (из-за некоторых недавних изменений), и у вас нет времени их исправить.
Тесты в этих группах могут быть временно деактивированы для последующей повторной активации после устранения неполадок. Группы также могут быть исключены с помощью регулярных выражений.
Для демонстрации исключения групп тестирования мы используем тег в , чтобы включить группы тестирования, соответствующие регулярному выражению “.*Задача. *”. Тег <исключить> в <группах> используется для исключения группы тестирования с именем “Поиск”.
Группа тестирования с именем “Todo” соответствует набору критериев (т. е. “.*Сделать. *”) в теге <включить>. С другой стороны, методы тестирования, реализованные в группе Testing_Search, исключаются, поскольку они соответствуют требованиям тега .
Как показано ниже, методы тестирования из соответствующих групп тестирования были успешно выполнены на сетке селена лямбда-теста:
Регулярные выражения и группы тестирования
Тестирование использует регулярные выражения (т. Е. Все, что соответствует”. *” – Точечная звезда), а не подстановочные знаки (т. е. “*”) для выполнения методов тестирования, соответствующих указанному шаблону. Для демонстрации использования регулярных выражений с группами тестирования мы запускаем методы тестирования, которые включают термин “Поиск”.
testng.xml для выполнения тестовых случаев путем сопоставления имен групп с помощью регулярных выражений
Как видно из testng.xml, будут выполнены тесты по группам – “Поиск”. Следовательно, методы тестирования test_Google Search() и Поиск test_Bing() выполняются в соответствии с назначенным приоритетом.
Как показано ниже, методы тестирования, соответствующие имени соответствующей группы тестирования, успешно выполняются:
Как Сгруппировать Ваши Тесты По Лямбда-Тесту?
Лямбда-тест позволяет группировать тесты автоматизации с помощью пользовательских тегов. Преимущество использования пользовательских тегов заключается в том, что это облегчает поиск ваших тестовых случаев на панели автоматизации лямбда-тестирования.
Чтобы сгруппировать тесты по лямбда-тесту с использованием пользовательских тегов, создайте массив строк, содержащий имена пользовательских тегов, разделенных запятой.
/* In case of just 1 tag, add 1 element in the array */ String[] customTags = {"Custom Tag"}; /* In case of multiple tags, add them in the array separated by comma */ String[] customTags = {"Tag 1", "Tag 2", "Tag 3", ...};
Теперь добавьте этот пользовательский тег в нужный экземпляр возможностей, как показано ниже:
DesiredCapabilities capabilities = new DesiredCapabilities(); [..] // To create custom tags capabilities.setCapability("tags", customTags);
В нашем случае мы устанавливаем возможности в методе setup Thread() , определенном в вспомогательном классе. Мы создаем Пользовательский тег, состоящий из комбинации Названия платформы и Имени браузера и версии браузера, используемой при кроссбраузерном тестировании.
public void setupThread (String build, String name, String platformName, String browserName, String browserVersion) throws MalformedURLException { [..] DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("build", build); capabilities.setCapability("name", name); capabilities.setCapability("platformName", platformName); capabilities.setCapability("browserName", browserName); capabilities.setCapability("browserVersion",browserVersion); capabilities.setCapability("tunnel",false); capabilities.setCapability("network",true); capabilities.setCapability("console",true); capabilities.setCapability("visual",true); String[] customTags = {""}; customTags[0] = platformName + " " + browserName + " " + browserVersion; /* Setting Custom Tags */ capabilities.setCapability("tags", customTags); /* End - Setting Custom Tags */ [..] }
Для просмотра пользовательских тегов в журналах автоматизации перейдите к Журналы автоматизации на панели мониторинга автоматизации и проверьте примененные пользовательские теги под именами тестов на левой панели.
У вас также есть возможность фильтровать тесты, выбирая несколько тегов одновременно на панели инструментов фильтра.
Здесь мы фильтруем теги, соответствующие “Mac OS”, чтобы найти тесты, выполняемые на платформе macOS:
Пользовательские теги следует эффективно использовать для группировки тестовых случаев в лямбда-тесте, чтобы было легко фильтровать “необходимые” тесты из многочисленных тестов, выполняемых в сетке.
Завершение
В этом руководстве по тестированию мы подробно рассмотрели, как группировать тестовые случаи в тестировании. Группы в тестировании полезны в проектах, где требуется выполнить тестовые сценарии, соответствующие определенным критериям. Например, все кроссбраузерные тесты можно поместить в группу под названием “кроссбраузерные”, чтобы тесты можно было легко идентифицировать. Группировка тестов также помогает временно отключить тесты, которые могут вызывать сбои в других тестах.
Как видно из примеров групп тестирования, вы можете запускать тесты в одной группе, в нескольких группах, во вложенных группах и т. Д. Регулярные выражения с группами и методами тестирования удобны, когда вы хотите включить/исключить тестовые случаи (или группы), соответствующие определенному условию.
Оригинал: “https://dev.to/himanshusheth004/how-to-group-test-cases-in-testng-with-examples-p4b”