我尝试在单个测试场景中使用testNG中的几个类。它必须从第一类,然后从第二类执行几个方法,然后再次返回到第一个类。但是执行后的第一类预览方法测试完成为成功,而另一个方法没有执行(最后一个方法--logonSuccess)
<test name="WithdrawCCC">
<parameter name="param_one" value="value"/>
<parameter name="param_two" value="value"/>
<classes>
<class name="Class_one">
<methods>
<include name="openURL"/>
<include name="vaidateElementsOnPage"/>
<include name="authTry"/>
<include name="logonSuccess"/>
</methods>
</class>
<class name="Class_two">
<methods>
<include name="vaidateElementsOnPage"/>
<include name="checkForTransaction"/>
</methods>
</class>
<class name="Class_one">
<methods>
<include name="refreshCurrentPage"/>
<include name="checkTransactionStatus"/>
</methods>
</class>
</classes>
我如何解决这个问题?
答案 0 :(得分:0)
TestNg按照在xml文件中定义它们的顺序运行测试类方法,除非您使用线程优先级或“dependson”属性进行配置。除非你看到测试类代码,否则你无法确定错误 这是一种方法 创建组并使用dependsOnGroup。
如果您希望在每个方法之后运行logonSuccess,请在同一组中添加所有其他方法,并在logonSuccess上使用dependsOngroup。
让我举一个例子。我希望在两个类的所有方法之后执行保镖测试。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="IPL" verbose="0" >
<test name="cricketTest">
<classes>
<class name="com.basic.thread.BallTest"></class>
<class name="com.basic.thread.BatTest"></class>
</classes>
</test>
</suite>
第一个测试类
public class BallTest {
@Test(groups="first")
public void yorker() {
System.out.println("yorker");
}
@Test(dependsOnGroups={"first"})
public void bouncer() {
System.out.println("bouncer ");
}
}
第二个测试类
public class BatTest {
@Test(groups="first")
public void Pull() {
System.out.println("Pull ");
}
@Test(groups="first")
public void StraightDrive() {
System.out.println("Straight ");
}
}
输出: 纽约客 拉 直行 保镖