如何使用testng.xml运行软件包中100个类中的Method1?

时间:2019-02-25 03:20:21

标签: automated-tests testng integration-testing

我必须在Package中运行Method1,其结构类似于

Package - Regression
     |--class1
         |-method1
         |-method2
     |--class2
         |-method1
         |-method2
     |--class3 
     .
     .
     and so on goes to classN where N can be from 100 to 2000.

现在我需要编写testNG.xml,这样所有类中的method1都将在包级别执行

或者将来是否需要在程序包级别执行method1和method2?

提前感谢解决方案

1 个答案:

答案 0 :(得分:1)

您可以使用beanshell方法选择器轻松完成此操作。

这是一个样本

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="54859054_suite" verbose="2">
  <method-selectors>
    <method-selector>
      <script language="beanshell">
        <![CDATA[
        whatMethod = System.getProperty("methodToExecute", "testMethod1");
        method.getName().equals(whatMethod);
        ]]>
      </script>
    </method-selector>
  </method-selectors>
  <test name="54859054_test">
    <packages>
      <package name="com.rationaleemotions.stackoverflow.qn54859054"/>
    </packages>
  </test>
</suite>

默认情况下,上述beanshell将执行名称为“ testMethod1”的方法(因为它是我们为JVM参数methodToExecute提供的默认值。

如果您想在运行时更改其值,只需通过JVM扩展传递一个新值。例如-DmethodToExecute=testMethod2