【问题标题】:Correct way of grouping tests in TestNG在 TestNG 中对测试进行分组的正确方法
【发布时间】:2015-03-12 16:24:41
【问题描述】:

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

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

【问题讨论】:

  • 如果答案解决了您的问题/疑问,请不要忘记将答案标记为已接受......

标签: java selenium selenium-webdriver testng


【解决方案1】:

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

例如,给定一个简单的登录测试可以有如下内容:

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

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

【讨论】:

  • 谢谢。你们可以使用它运行大量测试吗?尝试此操作时出现错误 - 找不到节点。我试图从一个包中执行一组。就像在 testing.xml 中一样,我给出了执行包 XYZ 中属于这个特定组 ABC 的所有测试的指令。
  • 你是如何执行测试的?你用的是maven吗?命令行是什么样的?
  • 是的,我们将在我们的项目中使用 Maven。我不知道使用 Maven 会很容易。我将创建一个示例 maven 项目并尝试一下。在这一点上,我对 Maven 的了解很少,所以我不确定你在问什么。我写了 testng.xml 并且正在运行它。
  • 是的,您可以使用 testng.xml 方式进行操作,也可以通过命令行进行操作(请参阅maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html)。在上面的示例中,如果您想运行所有登录组测试,您可以执行mvn test -Dgroups=login 之类的操作,或者执行“mvn test -Dgroups=login,basic”在两个组上运行测试。它将自动选择组中唯一的测试,因此您在组合组时不必担心重复测试用例
【解决方案2】:

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

 @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>

【讨论】:

  • 谢谢ochi。你们能用这个来运行大量的测试吗?尝试此操作时出现错误-找不到节点。我试图从一个包中执行一组。就像在 testing.xml 中一样,我给出了执行包 XYZ 中属于这个特定组 ABC 的所有测试的指令。
  • 你在用maven吗?如果是这样,你可以试试mvn test -Dgroups=FUNCTIONAL_TEST_GROUP, REGRESSION_TEST_GROUP
  • 是的,我们将在我们的项目中使用 Maven。我不知道使用 Maven 会很容易。我将创建一个示例 Maven 项目并尝试一下。还有一个问题。在上面的 testng.xml 中,我可以添加包而不是类吗?
  • 当然可以,只需添加此&lt;packages&gt; &lt;package name=".*" &gt;&lt;/package&gt; &lt;/packages&gt;(也更新了我的答案)
  • 谢谢。奥智。我收到这个 TestNG 错误 - 找不到节点。您知道我该如何解决吗?
猜你喜欢
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
相关资源
最近更新 更多