Selenium / testNG:如何根据类优先级而不是先从XML文件中的方法运行测试

时间:2017-12-04 14:27:16

标签: selenium selenium-webdriver testng

如果有以下内容:

Class A
{ 
  Method M(priority = 2)
}

Class B
{ 
  Method M(priority = 1)
}

然后Class B将在Class A之前执行。如何首先执行Class A

我使用的XML文件是:

<classes>
  <class name="com.Users.Admin_ManageUsers_AR"/>
  <class name="com.Users.Admin_ManageUsers_AR"/>
</classes>

4 个答案:

答案 0 :(得分:0)

在testng.xml的测试标签内使用group-by-instances="true"

像下面一样定义你的xml:

<test name="ManageUsersTest" group-by-instances="true">
    <classes>
        <class name="com.Users.Admin_ManageUsers_AR.ClassA" />
        <class name="com.Users.Admin_ManageUsers_AR.ClassB" />
    </classes>
</test>

答案 1 :(得分:0)

我会选择group-by-instances以及其他人回答。

或者,您可以在文档

中使用组example之类的组和依赖项
<test name="ManageUsersTest">
  <groups>
    <dependencies>
      <group name="c" depends-on="a  b" />
      <group name="z" depends-on="c" />
    </dependencies>
  </groups>
</test>

depends-on属性包含以空格分隔的组列表。

如果跨类具有依赖关系,这将为您提供更多控制。

答案 2 :(得分:0)

确定测试类执行优先级的隐式方法是在类名中添加按字母顺序排列的前缀。比如,你有一个名为的登录测试类:login,checkout,logout。 然后将它们重命名为TC01_login,TC02_checkout,TC03_logout。这将根据TC_ {serial_number}

自动确定测试执行的优先级

答案 3 :(得分:0)

在testng.xml文件中使用preserver-order,然后按照testng.xml中提供的顺序执行所有类

<test name="Regression" preserve-order="true">
<classes>