运行结果:
[TestNG] Running: C:\Users\Administrator\.IntelliJIdea2019.2\system\temp-testng-customsuite.xml 1 1 1 Thread Id : 12 Thread Id : 11 1 Thread Id : 11 Thread Id : 13 1 Thread Id : 12 1 Thread Id : 12 1 Thread Id : 11 1 Thread Id : 12 1 Thread Id : 12 1 Thread Id : 13 =============================================== Default Suite Total tests run: 10, Failures: 0, Skips: 0 ===============================================从输出结果可以看出,一共有三条线程在执行,一共执行了10次(输出了10个1)
2、使用 xml 配置文件实现多线程测试(1)创建测试类:MultiThreadOnXml.java
package com.ggf.testng.multithread; import org.testng.annotations.Test; /** * @Description: 使用配置文件来实现testng的多线程 * @Author: ggf * @Date: 2020/02/01 */ public class MultiThreadOnXml { @Test public void test1() { System.out.printf("Thread id: %s%n", Thread.currentThread().getId()); } @Test public void test2() { System.out.printf("Thread id: %s%n", Thread.currentThread().getId()); } @Test public void test3() { System.out.printf("Thread id: %s%n", Thread.currentThread().getId()); } }(2)配置文件编写
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite parallel="methods" thread-count="3"> <!-- tests级别:不同的test tag下的用例可以在不同的线程下执行 相同的test tag下的用例只能在同一个线程中去执行 classs级别:相同的class tag 下的用例在同一个线程中执行 不同的class tag 下的用例可以在不同的线程中执行 methods级别:所有用例都可以在不同的线程下去执行 thread-count:代表了最大并发线程数 xml文件配置这种方式不能指定线程池,只有方法上才可以指定线程池 --> <test> <classes> <class/> </classes> </test> </suite>(3) 运行结果
[TestNG] Running: D:\workspace\testwork\testNGDemo\src\main\resources\multithread.xml Thread id: 11 Thread id: 13 Thread id: 12 =============================================== thread Total tests run: 3, Failures: 0, Skips: 0 ===============================================输出结果可以看出,有三条线程分别执行了不同的方法。
参考资料:
博客:
https://www.cnblogs.com/aland-1415/p/10475957.html
https://www.cnblogs.com/meitian/p/5221202.html
视频教程:
https://coding.imooc.com/class/204.html