Selenium webdriver 如何计划testng.xml文件中类的执行?
在一个包中,我有多个类。但是如何在testng中一个接一个地调度类的执行。 我的testng.xml文件Selenium webdriver 如何计划testng.xml文件中类的执行?,selenium-webdriver,testng,Selenium Webdriver,Testng,在一个包中,我有多个类。但是如何在testng中一个接一个地调度类的执行。 我的testng.xml文件 <?xml version="1.0" encoding="UTF-8"?> <suite name="AutomationTestWrangler"> <test name="Smoke Testcases"> <classes> <class name="DataWrangler.LoginResigterC
<?xml version="1.0" encoding="UTF-8"?>
<suite name="AutomationTestWrangler">
<test name="Smoke Testcases">
<classes>
<class name="DataWrangler.LoginResigterComponents"/>
<class name="DataWrangler.Register"/>
<class name="DataWrangler.Login"/>
<class name="DataWrangler.Dashboard"/>
</classes>
</test>
</suite>
如何制定执行时间表
DataWrangler.LoginResigterComponents
DataWrangler.Register
DataWrangler.Login
在testng.xml中,您必须定义:
<groups>
<dependencies>
<group name="a" />
<group name="b" depends-on="a" />
<group name="c" depends-on="a b" />
</dependencies>
</groups>
或者,您可以仅使用注释设置依赖项:
@Test(groups = {"a"})
public class LoginResigterComponents
@Test(groups = {"b"}, dependsOnGroups = {"a"})
public class Register
@Test(groups = {"c"}, dependsOnGroups = {"a b"})
public class Login
更新
或者尝试添加preserve order
属性:
<test name="Smoke Testcases" preserve-order="true">
前几天我也遇到过同样的问题。我发现有问题的代码是,我会在不同的类中优先考虑一些测试方法。当我从
testing.xml
执行我的所有类时,它首先执行的是优先方法类。所以这可能是你的问题所在
我这里没有什么指导方针-
xml
执行一组类,那么您的类中测试方法的依赖性就更好了优先级
。如果您为不同类的两个不同测试方法分配了相同的优先级,并使用xml
文件执行代码,那么无论您在xml
文件中维护的顺序如何,第一优先级测试方法都将首先执行xml
文件的
标记中添加groupbyinstances=“true”
e、 g.-
<test name="parallel-running-test" group-by-instances="true">
第2类
public class MySecondClassTest {
@Test(priority=1)
public void mySecondClassTestTwo(){
System.out.println("mySecondClassTestTwo");
}
}
Testing.xml
<suite name="Suite1" verbose="1" thread-count="2" >
<test name="parallel-running-test" >
<classes>
<class name="test.abc.MyFirstClassTest"/>
<class name="test.abc.MySecondClassTest"/>
</classes>
</test>
</suite>
结果
通过使用“@Test(groups={“a”})公共类LoginResigterComponents@Test(groups={“b”},dependsOnGroups={“a”})公共类Register@Test(groups={“c”},dependsOnGroups={“ab”})公共类Login”这种技术,如果任何测试用例在前一个类中失败,下一个类将不会执行。和“”不起作用。请将此@Test(groups={“c”},alwaysRun=“true”)添加到您的注释中。我不会得到此100%@Maciej-alwaysRun=true是否违背了组的用途?@xris Stoixeia,感谢您的回复。你确定priority不能做这种事吗。我正在更新我的问题,看看Hi Sidhartha,你的xml没有问题!你确定执行是按照你提议的顺序进行的吗?
public class MyFirstClassTest {
@Test(priority = 2)
public void myFirstClassTestOne(){
System.out.println("myFirstClassTestOne");
}
@Test (priority = 2)
public void myFirstClassTestTwo(){
System.out.println("myFirstClassTestTwo");
}
}
public class MySecondClassTest {
@Test(priority=1)
public void mySecondClassTestTwo(){
System.out.println("mySecondClassTestTwo");
}
}
<suite name="Suite1" verbose="1" thread-count="2" >
<test name="parallel-running-test" >
<classes>
<class name="test.abc.MyFirstClassTest"/>
<class name="test.abc.MySecondClassTest"/>
</classes>
</test>
</suite>