参考链接
如何使用testng顺序运行多个类?_如何在TestNG.xml中顺序运行多个类?_如何让testNG按测试顺序逐类运行 - 腾讯云开发者社区 - 腾讯云
1、如图所示,有两个方法类,我这边需要在类Boyue运行完成后,在运行JiaoXuan,或者当Boyue中某个方法运行完成后再运行JiaoXuan中的方法。
2、目前Boyue类和方法排序规则如下
public class BoYue {
WebDriver driver;
Actions action;
String editTitleName;
@BeforeTest
public void OpenChrom() {
//所有方法之前运行
}
@Test(priority = 1)
public void Login() throws InterruptedException, IOException {
//方法1
}
@Test(priority = 2)
public void addData() throws InterruptedException {
//方法2
}
@Test(priority = 3)
public void editData() throws InterruptedException {
//方法3
}
@Test(priority = 4)
public void issueData() throws InterruptedException {
//方法4
}
@AfterTest
public void closeChrome() {
//所有方法之后运行
}
3、JiaoXuan类中的方法如下,当我这边需要Boyue类中方法1到方法4运行完成之后再运行JiaoXuan类中的方法2,就需要在方法2中的Test标签中加上如下代码,issueData就是Boyue类中的方法4。
com.xmt.entity.BoYue.issueData是指在Boyue类中的issueData方法完成之后运行。@Test中有多个参数时用逗号隔开。
dependsOnMethods = "com.xmt.entity.BoYue.issueData"
public class JiaoXuan {
WebDriver driver;
Actions action;
@BeforeTest
public void OpenChrom() throws InterruptedException, IOException {
//所有方法之前运行
}
@Test(priority = 1)
public void Login() throws InterruptedException, IOException {
//方法1
}
@Test(priority = 2,dependsOnMethods = "com.xmt.entity.BoYue.issueData")
public void issueData() throws InterruptedException, IOException {
//方法2
}
@AfterTest
public void closeChrome() {
//所有方法之后运行
}
}
4、当在JiaoXuan类中的方法添加@Test(dependsOnMethods="com.xmt.entity.BoYue.issueData")属性后,还需要在配置运行.xml文件。在该文件中输入如下代码,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Default Suite">
<test name="NewMedia">
<classes>
<!-- BoYue类-->
<class name="com.xmt.entity.BoYue" />
<!-- JiaoXuan类-->
<class name="com.xmt.entity.JiaoXuan" />
</classes>
</test> <!-- NewMedia -->
</suite> <!-- Default Suite -->
5、xml文件配置完成后,右击运行
6、运行顺序如下,按照设置的规则,在Boyue类中issueData方法运行完成后才运行JiaoXuan类中的issueData方法。