需要一点帮助才能找到并行运行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);
答案 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的一个实例。