【问题标题】:Runing test classes one by one using testng for webdriver使用 testng for webdriver 一个一个地运行测试类
【发布时间】:2012-11-20 04:48:57
【问题描述】:

我已经编写了几个测试类来使用 testng 测试 Web 应用程序。每个测试类都是独立的。(我使用Java,maven和selenium webdriver)

我在 testng.xml 中定义了我的测试类和测试组,如下所示。

<test name="generalTest">
        <groups>
            <run>
                <include name="login"  />
                <include name="signUp"  />
                <include name="profileCreation"  />

            </run>
        </groups>

        <classes>
            <class name="my.test.Test_1_LoginTestCases"/>
            <class name="my.test.Test_2_SignUpTestCases"/>
            <class name="my.test.Test_3_CreatePeopleProfileTestCases"/>

        </classes>
    </test>

我在命令行中运行这个命令来运行测试类。

mvn test -DsuiteXmlFile=/src/testng.xml -Dgroups=login,signUp,profileCreation

我已经使用 testng “优先级”标签来定义在测试类中运行测试用例的顺序。

但问题是当我使用上述命令运行 testng.xml 时,它会同时(并行)运行所有测试类。如果有 10 个测试类,那么它会同时打开 10 个 Web 浏览器实例并尝试运行每个测试类同一时间。

我需要运行第一个测试类,完成后使用上面的 maven 命令开始运行第二个测试类。

谁能帮我做这件事?非常感谢您的帮助。

【问题讨论】:

    标签: java maven selenium webdriver testng


    【解决方案1】:

    只需像这样在您的 xml 中添加一个属性 parallel="false" :

    <test name="generalTest" parallel="false">
    

    【讨论】:

    • 我发现了问题。我在所有测试类上都设置了相同的优先级范围。例如:在每个测试类中,我都设置了优先级 1。然后它尝试同时运行优先级 1 的测试用例。修复:根据我们需要作为一个整体运行测试套件的顺序,在每个测试类中使用不同的优先级范围。例如:由于我需要运行第一个测试类并在完成后运行第二个测试类,我将第一个测试类的优先级范围设置为 1 到 50,将第二个测试类设置为 51 到 100。
    【解决方案2】:

    我解决了这个问题! :) 我在所有测试类上都设置了相同的优先级范围。 例如:在每个测试课程中,我都设置了优先级 1。 然后它会尝试同时运行优先级为 1 的测试用例。

    修复:

    根据我们需要作为一个整体运行测试套件的顺序,在每个测试类中使用不同的优先级范围。 例如:因为我需要运行第一个测试类并在完成后运行第二个测试类, 我将第一个测试类的优先级范围设置为 1 到 50,并且

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多