testNG 多线程测试(xml文件实现)

Posted linxinmeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了testNG 多线程测试(xml文件实现)相关的知识,希望对你有一定的参考价值。

测试用例一般是单线程模式,为了提高测试效率。testNG的多线程可以分为test,class,method级别的并发,可以通过在testng.xml中的suite tag下设置。

methods级别:所有用例都可以在不同的线程去执行。
classs级别:不同class tag下的用例可以在不同的线程执行,相同class tag下的用例只能在同一个线程中执行。
tests级别:不同test tag下的用例可以在不同的线程执行,相同test tag下的用例只能在同一个线程中执行。

如:

<suite name="Testng Parallel Test" parallel="tests" thread-count="3">

<suite name="Testng Parallel Test" parallel="classes" thread-count="3">

<suite name="Testng Parallel Test" parallel="methods" thread-count="3">

 

java代码如下

 1 package com.course.testng.multiThread;
 2 
 3 import org.testng.annotations.Test;
 4 
 5 public class MultiThreadOnXml {
 6 
 7     @Test
 8     public void test1(){
 9         System.out.printf("线程ID"+Thread.currentThread().getId());
10     }
11     @Test
12     public void test2(){
13         System.out.printf("线程ID"+Thread.currentThread().getId());
14     }
15     @Test
16     public void test3(){
17         System.out.printf("线程ID"+Thread.currentThread().getId());
18     }
19 }

xml配置如下

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <suite name="thread" parallel="methods" thread-count="2">
 3     <!--    线程的级别是方法级别的
 4     parallel属性
 5     tests级别:是指xml 文件中的test标签,一般通过name区分,不同的test tag下的用例可以在不同的线程下执行,相同的test tag下的用例只能在用一个线程中去执行
 6     methods级别:所有用例都可以在不同的线程下去执行
 7     classs级别:相同的class tar下的用例在同一个线程中执行,不同的class tar下的用例在不同的线程中执行
 8     thread-coun属性:代表最大的并发线程数
 9     xml文件配置这种方式不能指定线程池,只有方法上才可以指定线程池
10     -->
11     <test name="demo1">
12         <classes>
13             <class name="com.course.testng.multiThread.MultiThreadOnXml"/>
14         </classes>
15     </test>
16 
17 </suite>

 

 

以上是关于testNG 多线程测试(xml文件实现)的主要内容,如果未能解决你的问题,请参考以下文章

TestNG多线程测试-用xml文件实现

testng教程之testng.xml的配置和使用,以及参数传递(多线程执行)

并行运行测试时,testng-results.xml 文件被覆盖

testNG之并发执行用例

TestNG 批量执行脚本Runner.xml - 并可以设置多线程并发跑脚本,提高跑脚本效率

TestNG系列教程:并行执行测试