使用testng |并行运行selenium测试用例行家

时间:2017-10-12 15:09:55

标签: java maven selenium selenium-webdriver testng

需要一点帮助才能找到并行运行testng测试用例的正确方法。

当前设置。 在本地计算机上使用单个驱动程序实例运行所有测试用例。 Selenium WebDriver TestNG的 行家

必需。 想要在本地运行具有多个驱动程序实例的测试用例。

 <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

的testng.xml

<suite name="testSuite" verbose="10" preserve-order="true" configfailurepolicy="continue">

<test name="SanityTest" parallel="none">
    <classes>
        <class name="test.java.HeaderTests"/>
    </classes>
</test>
</suite>

驱动程序

driver = new InternetExplorerDriver(capabilities);
driver.manage().window().maximize();
driver.get(url);

3 个答案:

答案 0 :(得分:0)

您必须修改testng.xml文件并告诉它在

中运行
<test name="SanityTest" parallel="none">
并行:类 并行:方法

请访问:https://howtodoinjava.com/testng/testng-executing-parallel-tests/

答案 1 :(得分:0)

似乎在你的testng.xml中你的并行值设置为&#34; none&#34;。要并行运行,您必须将其设置为 &#34; class&#34;:将并行运行类或 &#34;方法&#34;:无论类或包是否并行运行方法。

然而,只是一个注释,很难说你如何处理你的驱动程序,但你需要使它特定于线程,否则你的命令可能被发送到错误的驱动程序。

希望这有帮助。

答案 2 :(得分:0)

根据您的问题和说明,您似乎希望并行运行测试。对于例如 - 并行运行多个测试类,以便减少测试执行时间。在这种情况下,更可取的是设置测试运行器的多个线程,例如TestNG,而不是webdriver的多个线程/实例。像这样:

    <suite name="Parallel test runs" parallel="tests" thread-count="2"> 
        <test name="test1">
            <classes>
                <class name="com.company.test1" ></class>
            </classes>
        </test>

        <test name="test2">
            <classes>
                <class name="com.company.test2" ></class>
            </classes>
        </test>
    </suite>

这将并行运行test1和test2。使用TestNG,您可以并行运行方法,类或组。用于为WebDriver设置多个线程的一个可能用例是,您希望在测试运行时继续检查是否存在警报。 (我个人并不认可这种风格,但我见过团队这样做)。 对于这种工作方法,测试类不应该是相互依赖的。此外,每个测试都应该设置(在开始时)并拆除(在测试结束时)Webdriver的一个实例。