В настоящее время я автоматизирую веб-приложение, используя структуру Selenium WebDriver вместе с TestNG. Я хочу предоставить параметры для каждого тестового класса в файле testing.xml, но на веб-ресурсах я видел только подход, в котором определенные параметры предопределены для использования для отдельных классов, например:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name = "Parameterization Test Suite">
<test name = "Testing Parameterization">
<parameter name = "browser" value = "Firefox"/>
<parameter name = "username" value = "testuser"/>
<parameter name = "password" value = "testpassword"/>
<classes>
<class name = "com.parameterization.TestParameters" />
</classes>
</test>
</suite>
где в названии класса явно указан только один класс TestParameters.
Есть ли способ задать здесь какие-то параметры как глобальные? Значит, мы можем использовать их в любом тестовом классе в рамках проекта?
Я не совсем уверен, понимаю ли я ваш вопрос, но вы можете определить параметры на уровне набора (для каждого теста, в примере suite-param
) или на уровне теста:
<suite name = "Parameter test Suite" verbose = "1">
<!-- This parameter will be passed to every test in this suite -->
<parameter name = "suite-param" value = "suite level parameter" />
<test name = "Parameter Test one">
<classes>
<class name = "com.howtodoinjava.test.ParameterTest">
<methods>
<include name = "prameterTestOne" />
</methods>
</class>
</classes>
</test>
<test name = "Parameter Test two">
<!-- This parameter will be passed this test only -->
<parameter name = "test-two-param" value = "Test two parameter" />
<classes>
<class name = "com.howtodoinjava.test.ParameterTest">
<methods>
<include name = "prameterTestTwo" />
</methods>
</class>
</classes>
</test>
<test name = "Parameter Test three">
<!-- Overriding suite level parameter -->
<parameter name = "suite-param" value = "overiding suite parameter" />
<!-- Test specific parameter -->
<parameter name = "test-three-param" value = "test three parameter" />
<classes>
<class name = "com.howtodoinjava.test.ParameterTest">
<methods>
<include name = "prameterTestThree" />
</methods>
</class>
</classes>
</test>
</suite>
Вы меня правильно поняли, и это похоже на решение, спасибо!