Автор оригинала: Pankaj Kumar.
XML-файл TestNG позволяет нам настроить набор тестов и выполнить его из командной строки или сценария ant.
Когда мы выполняем тестовый тест через Eclipse или через сборку maven, генерируются отчеты в формате HTML. Эти HTML-отчеты также создают XML-файл набора тестов, который мы можем использовать для выполнения того же теста через командную строку. Если вы новичок в тестировании, пожалуйста, ознакомьтесь с руководством по тестированию .
Тестовый XML
Набор XML-тестов TestNG основан на следующем DTD: https://testng.org/testng-1.0.dtd
Прежде чем мы рассмотрим некоторые примеры XML-кода TestNG, давайте создадим простой класс и соответствующий тестовый класс TestNG.
package com.journaldev.xml; public class Utils { public static String NAME = ""; public int add(int x, int y) { return x + y; } public static void setName(String s) { System.out.println("Setting NAME to " + s); NAME = s; } }
package com.journaldev.xml; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Optional; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class TestNGXMLTest { @Test(dataProvider = "dp", priority=1) public void test_add(Integer x, Integer y) { Utils u = new Utils(); Assert.assertEquals(u.add(x, y), x + y); } @Test(dataProvider = "dpName", priority=3, groups="setName") public void test_setName(String s) { Utils.setName(s); Assert.assertEquals(Utils.NAME, s); } @Test @Parameters("name") public void test_name(@Optional("NA") String s) { System.out.println("Input parameter = "+s); } @DataProvider public Object[][] dp() { return new Object[][] { new Object[] { 1, 1 }, new Object[] { 2, 2 }, }; } @DataProvider public Object[][] dpName() { return new Object[][] { new Object[] { "Utils" }, new Object[] { "MyUtils" }, }; } }
Пример XML TestNG
Давайте создадим очень простой файл набора тестов TestNG XML.
Приведенный выше XML-файл TestNG очень прост для понимания. Мы создали набор тестов и определили класс для выполнения.
атрибут parallel
указывает TestNG на параллельный запуск классов набора тестов, количество потоков
используется для определения максимального количества потоков, используемых при параллельном выполнении тестов.
подробный
используется для определения объема ведения журнала, который будет выполняться на консоли.
Когда мы выполняем приведенный выше XML-файл набора тестов, мы получаем следующий вывод.
[RemoteTestNG] detected TestNG version 6.14.3 Input parameter = NA Setting NAME to Utils Setting NAME to MyUtils PASSED: test_name("NA") PASSED: test_add(1, 1) PASSED: test_add(2, 2) PASSED: test_setName("Utils") PASSED: test_setName("MyUtils") =============================================== TestNGXMLTest Test Tests run: 5, Failures: 0, Skips: 0 =============================================== =============================================== TestNGXMLTest Test Suite Total tests run: 5, Failures: 0, Skips: 0 ===============================================
На рисунке ниже показано, как запустить файл TestNG XML suite через командную строку.
Мы также можем запустить его напрямую с помощью плагина Eclipse TestNG.
Пакеты пакета XML TestNG
Мы также можем определить пакеты для поиска тестовых классов TestNG. Это удобно, когда нам нужно выполнить много тестовых классов.
Поскольку в пакете у меня есть только один тестовый класс TestNG, результат будет таким же, как и в предыдущем тесте.
Тестовые XML-группы
Мы можем указать, какие группы включать в тест, а какие исключать в файле XML-набора тестов.
Приведенный выше набор тестов будет выполнять методы только в setName
group, поэтому будет выполняться только test_setName
метод.
TestNG XML Включает методы исключения
По умолчанию все методы тестирования включены из класса тестирования. Мы можем исключить некоторые методы из набора тестов, используя элемент exclude
.
Параметры XML TestNG
Мы можем передавать параметры в методы тестовых классов, используя параметр
элемент.
Когда мы запустим вышеописанный тест, параметр “имя” будет сопоставлен аргументу test_name
метода. Вы заметите следующие инструкции в журналах консоли вывода.
Input parameter = JournalDev PASSED: test_name("JournalDev")
Подробнее читайте в разделе Параметры тестирования .
Прослушиватели XML TestNG
Мы также можем указать слушателей для вашего набора тестов TestNG XML.
Прослушиватели TestNG – отличная функция для мониторинга и изменения поведения тестовых случаев. Подробнее читайте в разделе Прослушиватели TestNG .