3--TestNG多线程

第一: 注解方式

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>

原文地址:https://www.cnblogs.com/lizhiyan/p/10558713.html