【java测试-testng5】多线程测试的两种方式:注解、xml

第一种:注解

package com.coke.testng.multiThread;

import org.testng.annotations.Test;

// 多线程测试
public class MultiThreadTest {

    @Test(invocationCount = 10,threadPoolSize = 3)
    public void test1(){
        System.out.printf("Thread id : %s%n",Thread.currentThread().getId());
    }
}

执行结果:

Thread id : 14
Thread id : 13
Thread id : 12
Thread id : 13
Thread id : 14
Thread id : 12
Thread id : 12
Thread id : 13
Thread id : 14
Thread id : 12

===============================================
Default Suite
Total tests run: 10, Failures: 0, Skips: 0
===============================================

 

第二种:xml

先来写一个测试类

package com.coke.testng.multiThread;

import org.testng.annotations.Test;

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());
    }
}

xml配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<suite name="thread" parallel="methods" thread-count="2">
    <test name="thread">
        <classes>
            <class name="com.coke.testng.multiThread.MultiThreadOnXml"/>
        </classes>
    </test>
</suite>

运行xml的结果:

Thread id : 12
Thread id : 13
Thread id : 13

===============================================
thread
Total tests run: 3, Failures: 0, Skips: 0
===============================================

 

总结:

<!-- xml文件 -->
thread-count:表示最大并发线程数
methods级别:所有用例都可以在不同的线程下执行
tests级别:不同test tag下的用例在不同的线程下执行,相同test tag下的用例在同一个线程下执行
classs级别:不同class tag下的用例在不同的线程下执行,相同class tag下的用例在同一个线程下执行

xml文件中不能指定线程池,只有方法上才能指定线程池

<!-- 测试方法的注解上 -->
invocationCount = 10 线程数
threadPoolSize = 3 线程池数量

 

posted @ 2021-01-11 10:31  愚人李愚  阅读(270)  评论(0编辑  收藏  举报