xml - 按特定顺序在 testng 套件中运行测试

标签 xml selenium-webdriver testng

我想按特定顺序在 testng 内运行测试。可能吗?

例如,这是我的 testng.xml 文件。我想先运行 Chrome 测试,然后运行 ​​Firefox。我不希望它们并行运行。如何做到这一点?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="mycompany.myapp.local" parallel="none">
<test name="Test Module in Chrome">
    <parameter name="selenium.browser" value="chrome" />
    <parameter name="wheretorun" value="local" />
    <parameter name="chrome.driver.path"
        value="/path/to/chromedriver" />
    <classes>
        <class name="com.mycompany.TestClass">
            <methods>
                <include name="navigateToUserPage" />
                <include name="createUser" />
                <include name="verifySomething1" />
                <include name="verifySomething2" />
                <include name="logout" />
            </methods>
        </class>
    </classes>
</test>
<test name="Test Module in Firefox">
    <parameter name="selenium.browser" value="firefox" />
    <parameter name="wheretorun" value="local" />
    <classes>
        <class name="com.mycompany.TestClass">
            <methods>
                <include name="loginWithCreatedUser" />
                <include name="verifySomething1" />
                <include name="verifySomething2" />
                <include name="logout" />
            </methods>
        </class>
    </classes>
</test>
</suite>

我正在尝试实现这一目标: - 在 1 个测试中创建用户并在另一个测试中使用相同的用户。所以我想运行第一个测试,并仅在第一个测试完成后运行第二个测试。

否则,是否可以选择在套件级别运行某些内容..例如创建用户并设置一些数据,然后运行这两个测试?

非常感谢您抽出时间来帮助我。

最佳答案

在给你答案之前,我想说你应该始终努力并行运行事情。从长远来看,这会对您有所帮助。即使这意味着多次登录和退出或创建一个测试用户池以供反复使用。测试应该简短,应该测试一件事而不是依赖于其他测试。

但由于理想并不总是可行。

“preserve-order 如果为 true,则此标记中的类将以 XML 文件中的顺序运行。”

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="mycompany.myapp.local" parallel="tests" thread-count="1" preserve-order="true">
<test name="Setup User" preserve-order="true">
    <parameter name="selenium.browser" value="chrome" />
    <parameter name="wheretorun" value="local" />
    <parameter name="chrome.driver.path"
        value="/path/to/chromedriver" />
    <classes>
        <class name="com.mycompany.TestClass">
            <methods>
                <include name="createUser" />
            </methods>
        </class>
    </classes>
</test>
<test name="Test Module in Chrome" preserve-order="true">
    <parameter name="selenium.browser" value="chrome" />
    <parameter name="wheretorun" value="local" />
    <parameter name="chrome.driver.path"
        value="/path/to/chromedriver" />
    <classes>
        <class name="com.mycompany.TestClass">
            <methods>
                <include name="loginWithCreatedUser" />
                <include name="verifySomething1" />
                <include name="verifySomething2" />
                <include name="logout" />
            </methods>
        </class>
    </classes>
</test>
<test name="Test Module in Firefox" preserve-order="true">
    <parameter name="selenium.browser" value="firefox" />
    <parameter name="wheretorun" value="local" />
    <classes>
        <class name="com.mycompany.TestClass">
            <methods>
                <include name="loginWithCreatedUser" />
                <include name="verifySomething1" />
                <include name="verifySomething2" />
                <include name="logout" />
            </methods>
        </class>
    </classes>
</test>
</suite>

您还可以为每个测试设置“优先级”,以确保它按正确的顺序运行。

同样,最好只设置 4 个静态用户,并行运行 4 个 verifySomething 测试和创建用户测试。

关于xml - 按特定顺序在 testng 套件中运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36729079/

相关文章:

c# - XmlNode.SelectSingleNode 返回当前元素之外的元素?

c# - 找不到默认的 Chrome 二进制文件

c# - Chrome 驱动程序 : How to disable PDF plugin

java - 在 pom.xml 文件并行测试中需要帮助

python - 是否有解析器/方式可用于使用 Python 解析维基百科转储文件?

python - 使用 xml.dom.minidom 或 elementtree 读取 XML 文件 - Python

C# OpenQA 和 OperaDriver() 问题。 selenium OpenQA v2.5 没有 Opera

java - 需要使用 TestNG 在 java 类中循环

java - 在并行测试中运行类

c# - 使用linq读取xml文件