Автор оригинала: 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
Это все для примера параметров тестирования.