Автор оригинала: Pankaj Kumar.
Методы тестирования также могут иметь аргументы. Существует два способа введения аргументов метода:
- Использование
@dataProviderаннотации – я объяснил об этом в TestNG dataProvider учебнике. - Использование
@Параметрованнотации – эта аннотация позволяет нам вводить параметры из файла TestNG XML suite. Мы сосредоточимся на этой аннотации в этом уроке и узнаем, как ее использовать.
Аннотация Параметров тестирования
Некоторые важные моменты, касающиеся аннотации @Parameters, заключаются в следующем:
- Аннотация @Параметров тестирования может быть применена к
@До,@Послеи@Методам тестирования. - Если мы хотим продолжать изменять входные данные нашего метода тестирования, это предпочтительный способ, потому что нам не нужно снова компилировать наши тестовые классы.
- Аннотация @Parameters требует, чтобы мы предоставили строковый массив имен параметров, которые будут отображаться в xml-файле набора тестов. Количество параметров должно соответствовать количеству аргументов в методе.
- Мы можем использовать
@Необязательнос аргументом метода для предоставления значения по умолчанию, если параметр отсутствует в xml-файле набора тестов.
Параметры в XML-файле TestNG suite могут быть определены на уровне пакета или на уровне теста. Если существуют параметры с одинаковым именем, то параметры теста имеют приоритет и переопределяют значение.
Пример Параметров Тестирования
Теперь, когда мы прошли теоретическую часть, давайте рассмотрим полный пример тестового класса TestNG, где мы будем использовать аннотацию @Parameters.
package com.journaldev.parameters;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class TestParameters {
@Test
@Parameters("arguments")
public void singleParameterTest(String s) {
System.out.println("Testing for input parameter = " + s);
}
@Test
@Parameters({ "id", "name" })
public void multipleParameterTest(int id, String s) {
System.out.println("Testing for multiple input parameter = " + id + " and " + s);
}
@BeforeSuite
@Parameters("before_suite")
public void beforeSuite(String s) {
System.out.println("Before Suite Parameter = " + s);
}
@AfterSuite
@Parameters("after_suite")
public void afterSuite(@Optional("Default Parameter") String s) {
System.out.println("After Suite Parameter = " + s);
}
}
Вот XML-файл набора тестов:
Параметры тестирования Тест XML Suite
Если вы используете плагин Eclipse TestNG, вы можете запустить XML-файл набора тестов напрямую, как показано на рисунке ниже.
Мы получим следующий вывод в консоли eclipse.
[RemoteTestNG] detected TestNG version 6.14.3
Before Suite Parameter = My Before Suite Parameter
Testing for multiple input parameter = 100 and JournalDev
Testing for input parameter = Pankaj
PASSED: multipleParameterTest(100, "JournalDev")
PASSED: singleParameterTest("Pankaj")
===============================================
Default test
Tests run: 2, Failures: 0, Skips: 0
===============================================
After Suite Parameter = Default Parameter
===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================
Мы также можем запустить XML-файл набора тестов из командной строки через org.testng.TestNG Класс. Все ваши тестовые классы и тестовые банки должны находиться в пути к классам.
$java -cp .:../../lib/testng-6.14.3.jar:../../lib/jcommander-1.72.jar:../../lib/bsh-2.0b6.jar org.testng.TestNG test_parameters.xml
Это все для примера параметров тестирования.