TestNg多线程—— 并行执行测试

来源:互联网 发布:淘宝网商城女装斗篷 编辑:程序博客网 时间:2024/05/16 01:03
多线程并行执行测试,可以通过参数设置来实现不同级别的多线程配置测试

1、test级别的多线程测试,每个<test>标签下的所有方法将在同一个线程中执行,不同的<test>是在不同的线程来运行的。修改配置如下:
其中thread-count 表示启动的线程数  , parallel 参数用例定义平行化的级别:


备注: 当前测试规划的执行过程中,为每个测试用例的执行使用单独的线程,最多并发2个线程

2、method 级别的多线程测试,每个方法都将采用独立的线程进行测试,

 


3、@DataProvider 的并发
在定义数据源的时候,可以通过设置parallel 属性来进行控制器是否并发执行测试,
parallel 参数值默认为false,表示使用该数据源的测试方法不能并发执行,将其设置为true,表示使用该数据源的测试方法可以并发执行。

@DataProvider(name = "test1", parallel = true)
public Object[][] data(){
    String[] paramValue = new String[]{"4723""192.168.56.101:5555"};
    String[] paramValue1 = new String[]{"4725""7a737d2"};
    return new Object[][]{paramValue1,paramValue };

}


4、在测试方法中,指定其可用的线程池
还可以单独为一个测试方法指定可使用的线程池,如下图所示

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000) 
public void test() {...}

备注: 该测试方法可在3个线程中并发执行,共被调用10次,执行超过10秒

5、注意:在定义测试类的时候,如果@Test使用了singleThreaded=true属性,则该测试类的所有测试方法都只能在单线程中执行,无论其他设置如何。示例如下:

@Test(singleThreaded=true) 
public class Test1 { 
  public void test1() { 
  } 

  public void test2() { 
  } 
}
0 0