Testng 并发测试(thread-count + parallel)

背景

最近在接口用例写完后,在运行所有接口时遇到接口用例跑完花费时间较长的问题。最长会超过5分钟时间,为了解决时间过长问题。故此使用了Testng的并发执行的功能。

直接开始

Test测试用例代码
public class Test1 {
    @Test
    public void testName() {
        System.out.println("test1 testname begin...");
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("test1 testname over...");
    }
}

public class Test2 {
    @Test
    public void testName() {
        System.out.println("test2 testname begin...");
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("test2 testname over...");
    }
}

public class Test3 {
    @Test
    public void testName() {
        System.out.println("test3 testname begin...");
        try {
            Thread.sleep(15000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("test3 testname over...");
    }
}

Test1,Test2,Test3 代码相同,只是Thread.sleep的时间不同,分别是5s,10s,15s.

xml配置集合



    
    
    
        
            
        
    
    
        
            
        
    
    
        
            
        
    
    
        
    

上面的配置并没有开启并发测试,这三个测试用例执行时间为 5+10+15 = 30s。
所以测试总时间为30s+。
查看报告执行时间:


未开启并发执行时间
开启并发执行

直接上xml配置


    
    
    
        
            
        
    
    
        
            
        
    
    
        
            
        
    
    
        
    

开启了线程数量=3,并发模式为模式。
查看报告执行时间:

开启3个并发线程

可以看到执行测试总时间为15s+115ms。可以知悉在并发模式下,根据最长的Test3测试时间 (sleep 15s)。

详解

thread-count 线程池数量

必须与parallel配套使用,线程池的大小,决定并行线程数量。

parallel
  • 该参数的值有:false,methods,tests,classes,instances。默认false
  • parallel必须和thread-count配套使用,否则相当于无效参数,thread-count决定了并行测试时开启的线程数量。
  • parallel="mehods" TestNG将并行执行所有的测试方法在不同的线程里
  • parallel="tests" TestNG将并行执行在同一个下的所有方法在不同线程里
  • parallel="classes" TestNG将并行执行在相同下的方法在不同线程里
  • parallel="instances" TestNG将并行执行相同实例下的所有方法在不同的线程里

你可能感兴趣的:(Testng 并发测试(thread-count + parallel))