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教程之testng.xml的配置和使用,以及参数传递(多线程执行)
并行运行测试时,testng-results.xml 文件被覆盖