第一: 注解方式
public class MultiThreadOnAnnotation{
@test(invocationCount=10,threadPoolSize=10)
public void test(){
system.out.println("test1");
system.out.printf("Thread Id:%s%n",Thread.curretThread().getid());//不加线程池得时候,线程id都是1
}
}
结果:
test1
test1
test1
test1
test1
test1
test1
test1
test1
test1
第二:XML方式
public class MultiThreadOnXml{
@test
public void test1(){
system.out.printf("Thread Id:%s%n",Thread.curretThread().getid());//不加线程池得时候,线程id都是1
}
@test
public void test2(){
system.out.printf("Thread Id:%s%n",Thread.curretThread().getid());//不加线程池得时候,线程id都是1
}
@test
public void test3(){
system.out.printf("Thread Id:%s%n",Thread.curretThread().getid());//不加线程池得时候,线程id都是1
}
}
multiThread.xml
<?xml versin="1.0" encoding ="UTF-8"?>
<!--
parallel=classs级别:相同的class tag下的用例再同一个线程中去执行,不同的class tag下的用例可以再不同的线程下执行--classes
parallel=tests级别:不同的test tag下的用例可以再不同的线程下执行,相同的test tag下的用例只能再同一个线程中去执行-----<test name=“”></test>
parallel=methods级别:所有用例都可以再不同的线程下去执行
thread-count:代表了最大并发线程数
xml文件配置这种方式不能指定线程池,只要再方法上才可以指定线程池
-->
<suite name ="Thread" parallel="methods" thread-count="2">
<test name ="demo1">
<classes>
<class name="com.course.testng.multiThread.MultiThreadOnXml"/>
</classes>
</test>
</suite>