Java testng是否正在运行多线程?
我有一个java maven项目,我希望使用多线程进行测试。我在src/test中有testng.xml,maven surefire插件配置为使用它。就像这一页: 编辑:添加surefire pom条目 每次运行pool-1-thread-1时总是有相同的输出。如果testng是并行运行的,那么将有不同的线程在运行 我的问题是:为什么testng没有运行多线程?有没有更好的方法来检查testng是否运行多线程 编辑:类或方法Java testng是否正在运行多线程?,java,multithreading,maven-3,testng,Java,Multithreading,Maven 3,Testng,我有一个java maven项目,我希望使用多线程进行测试。我在src/test中有testng.xml,maven surefire插件配置为使用它。就像这一页: 编辑:添加surefire pom条目 每次运行pool-1-thread-1时总是有相同的输出。如果testng是并行运行的,那么将有不同的线程在运行 我的问题是:为什么testng没有运行多线程?有没有更好的方法来检查testng是否运行多线程 编辑:类或方法 当我使用线程运行时,每个测试类似乎都在它自己的线程中运行,但不是每
当我使用线程运行时,每个测试类似乎都在它自己的线程中运行,但不是每个方法。在testng.xml中,我设置了parallel=methods,因此它应该按照每个方法执行。每种方法都不行吗 我找到了答案,我没有给它足够的线索。由于我的项目有很多测试,testng不会为每个方法生成新线程。我将它改为10个线程,并修复了它。在这种情况下,TestNG将不会并行运行。您需要定义ThreadLocal以在线程中定义不同的浏览器。
使用:ThreadLocal,并在不同实例中定义浏览器。在本例中,您将获得不同的浏览器ID。它适用于我的testng 6.8和maven surefire插件2.12.4以及2.13,测试在不同线程中并行运行。你能详细说明你的pom的surefire部分吗?我正在使用testng6.8,但我仍然看到相同的行为。您确定正在调用您的xml吗?正在运行的测试是您在ur xml中指定的测试吗?是的,它们正在运行。我甚至使用了eclipse的testng插件来直接运行该套件。仍然没有不同的线程。@niharika_neo您如何证明testng实际上产生了更多线程?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>src/test/testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Testng" parallel="methods" thread-count="3">
<test name="all" annotations="JDK5">
<packages>
<package name="my.package.*"/>
</packages>
</test>
</suite>
System.out.println(Thread.currentThread().getName());