如何在testNG xml场景中的另一个类之后返回第一个测试类

时间:2015-11-04 15:43:27

标签: java selenium-webdriver testng

我尝试在单个测试场景中使用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>

我如何解决这个问题?

1 个答案:

答案 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 ");
  }
}

输出: 纽约客 拉 直行 保镖