Selenium (并行)使用TextNG.XML套件在TestNG中进行交叉浏览
要通过TestNG@Parameter执行交叉浏览 我们必须通过@Parameter注释并在标记中定义变量值 案例:当我们有多个.XML套件,并且每个.XML套件包含5个或7个或10多个测试脚本时 在这种情况下,我们必须通过类的重复为每个浏览器定义参数值。如果有50个测试类,那么向前一步,那么if将定义总共150次,这一点都没有意义Selenium (并行)使用TextNG.XML套件在TestNG中进行交叉浏览,selenium,selenium-webdriver,testng,Selenium,Selenium Webdriver,Testng,要通过TestNG@Parameter执行交叉浏览 我们必须通过@Parameter注释并在标记中定义变量值 案例:当我们有多个.XML套件,并且每个.XML套件包含5个或7个或10多个测试脚本时 在这种情况下,我们必须通过类的重复为每个浏览器定义参数值。如果有50个测试类,那么向前一步,那么if将定义总共150次,这一点都没有意义 <suite name="Suite"> <test name="ChromeTest"> <paramete
<suite name="Suite">
<test name="ChromeTest">
<parameter name="browser" value="chrome" />
<classes>
<class name="Demos.Demo01" />
<class name="Demos.Demo02" />
<class name="Demos.Demo03" />
<class name="Demos.Demo04" />
</classes>
</test>
<!-- Test -->
<test name="FirefoxTest">
<parameter name="browser" value="Firefox" />
<classes>
<class name="Demos.Demo01" />
<class name="Demos.Demo02" />
<class name="Demos.Demo03" />
<class name="Demos.Demo04" />
</classes>
</test>
<test name="EdgeTest">
<parameter name="browser" value="edge" />
<classes>
<class name="Demos.Demo01" />
<class name="Demos.Demo02" />
<class name="Demos.Demo03" />
<class name="Demos.Demo04" />
</classes>
</test>
<!-- Test -->
</suite>
<!-- Suite -->
请分享有效的管理方法
TestNG或Selenium中是否有其他方法来定义并行浏览范围,以便在本地系统上进行交叉浏览?除了(Selenium Grid)您可以使用包而不是类来执行所有测试,而不是提及每个类:
<test name="ChromeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="chrome" />
<packages>
<package name="Demos" />
</packages>
</test>
<test name="EdgeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="edge" />
<packages>
<package name="Demos" />
</packages>
</test>
您可以使用包而不是类来执行所有测试,而不是提及每个类:
<test name="ChromeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="chrome" />
<packages>
<package name="Demos" />
</packages>
</test>
<test name="EdgeTest" parallel="none" preserve-order="true">
<parameter name="browser" value="edge" />
<packages>
<package name="Demos" />
</packages>
</test>
可以用包执行。它按预期工作。可以使用包执行。它像预期的那样工作。
@DataProvider
public Object[][] getData(ITestContext context) {
String parameter = context.getCurrentXmlTest().getLocalParameters().get("browser");
String[] browsers = parameter.split(",");
Object[][] returnValues = new Object[names.length][1];
int index = 0;
for (Object[] each : returnValues) {
each[0] = browsers[index++].trim();
}
return returnValues;
}