Рубрики
Без рубрики

Тестовый XML

XML-файл TestNG позволяет нам настроить набор тестов и выполнить его из командной строки или сценария ant. Когда мы выполняем тестовый тест через Eclipse или

Автор оригинала: 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 .