在TestNG中对测试进行分组的正确方法

时间:2015-03-12 16:24:41

标签: java selenium selenium-webdriver testng

我是TestNG的新手。我们正在尝试为自动化测试实现POM框架。我们正在使用WebDriver,Java,TestNG和TestLink。执行测试用例后,我将结果发送到TestLink。

我创建了一堆测试脚本。 我的每个测试脚本都有很多测试用例。 有时我们可能希望针对特定版本运行特定测试。管理这个的最简单方法是什么?我知道我们可以在TestNG中禁用测试,但我可能需要手动去更新我的许多测试脚本。我觉得TestNg中的群组功能并不是那么好。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

我的团队使用类似“标签”的群组,因为每次测试可以添加多个群组。这允许您在测试中放置不同的支点。

例如,给定一个简单的登录测试可以有类似的东西:

@Test(groups = {"login", "basic", "acceptance"}

通过这种方式,您可以将此测试与任何人更改登录代码以及每次执行基本测试套件时相关联,但也可以将其包含在更大的“接受”套件中。

答案 1 :(得分:1)

您可以在测试用例中使用注释:

 @Test(groups = { "FUNCTIONAL_TEST_GROUP" })

或者

   @Test(groups = { "REGRESSION_TEST_GROUP" })

<强>更新

如果您使用Maven运行测试,您可以指定从命令行运行哪些测试:

mvn test -Dgroups=FUNCTIONAL_TEST_GROUP,REGRESSION_TEST_GROUP

如果您使用Maven,您可以指定在suite.xml文件中运行哪些测试;像这样:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="TestAll">

  <test name="RegressionTest">
    <groups>
        <run>
            <exclude name="FUNCTIONAL_TEST_GROUP" />
            <include name="REGRESSION_TEST_GROUP" />
        </run>
    </groups>

    <!-- List all tests to include in this suite -->     
    <classes>
        <class name="com.path.to.your.tests" />
    </classes>

    <!-- OR include all packages -->
    <packages>
        <package name=".*" ></package>   
    </packages>

  </test>

</suite>