TestNg之XMl形式实现多线程测试

释放双眼,带上耳机,听听看~!

为什么要使用多线程测试?

在实际测试中,为了节省测试时间,提高测试效率,在实际测试场景中经常会采用多线程的方式去执行,比如爬虫爬数据,多浏览器并行测试。

关于多线程并行测试

TestNG中实现多线程并行执行,可以通过以下几种方法:

  • @Test注解的形式
  • Xml文件的配置的形式

本文着重介绍下以xml形式实现多线程测试的方法,来让我们开始吧

如何实现?

1、编写测试类

package com.testng.demo;

import org.testng.annotations.Test;

public class MultiThreadedByXml {

    @Test
    public void test1() {
        System.out.println(\"Thread id is \" + Thread.currentThread().getId());
    }

    @Test
    public void test2() {
        System.out.println(\"Thread id is \" + Thread.currentThread().getId());
    }

    @Test
    public void test3() {

        System.out.println(\"Thread id is \" + Thread.currentThread().getId());

    }

    @Test
    public void test4() {
        System.out.println(\"Thread id is \" + Thread.currentThread().getId());
    }

    @Test
    public void test5() {
        System.out.println(\"Thread id is \" + Thread.currentThread().getId());
    }
}

2、编写testng.xml文件

在<suite>标签中用parallel和thread-count两个属性声明多线程:parallel代表级别,thread-count代表最大并发线程数。

3、tests级别测试

不同的test标签(tag)下的用例可以在不同的线程下执行

配置文件如下:

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<!DOCTYPE suite SYSTEM \"http://testng.org/testng-1.0.dtd\" >
<suite name=\"sml多线程测试\" parallel=\"tests\" thread-count=\"2\">
    <test name=\"threadTest1\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
        </classes>
    </test>
</suite>

通过xml运行效果如下:

TestNg之XMl形式实现多线程测试

 

相同的test标签(tag)下的用例只能在同一个线程中去执行

配置文件如下:

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<!DOCTYPE suite SYSTEM \"http://testng.org/testng-1.0.dtd\" >
<suite name=\"sml多线程测试\" parallel=\"tests\" thread-count=\"2\">
    <test name=\"threadTest1\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
        </classes>
    </test>
</suite>

通过xml运行效果如下:

TestNg之XMl形式实现多线程测试

4、methods级别测试

所有用例在不同的线程下去执行

配置文件如下:

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<!DOCTYPE suite SYSTEM \"http://testng.org/testng-1.0.dtd\" >
<suite name=\"sml多线程测试\" parallel=\"methods\" thread-count=\"2\">
    <test name=\"threadTest1\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
        </classes>
    </test>
</suite>

通过xml运行效果如下:

TestNg之XMl形式实现多线程测试

5、classs级别测试

相同的classes标签下的用例在同一个线程中执行

配置文件如下:

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<!DOCTYPE suite SYSTEM \"http://testng.org/testng-1.0.dtd\" >
<suite name=\"sml多线程测试\" parallel=\"classes\" thread-count=\"2\">
    <test name=\"threadTest1\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
        </classes>
    </test>
</suite>

通过xml运行效果如下:

TestNg之XMl形式实现多线程测试

不同的classes标签下的用例可以在不同的线程下执行

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<!DOCTYPE suite SYSTEM \"http://testng.org/testng-1.0.dtd\" >
<suite name=\"sml多线程测试\" parallel=\"classes\" thread-count=\"2\">
    <test name=\"threadTest1\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml\"/>
        </classes>
    </test>
    <test name=\"threadTest2\">
        <classes>
            <class name=\"com.testng.demo.MultiThreadedByXml2\"/>
        </classes>
    </test>
</suite>

通过xml运行效果如下:

TestNg之XMl形式实现多线程测试

 

注意:thread-count: 代表了最大并发线程数,xml文件配置这种方式不能指定线程池,只有方法上才可以指定线程池

本文完,还不动手试一试········

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

通俗易懂的Redis数据结构基础教程

2020-11-9 4:54:42

随笔日记

【带着canvas去流浪(10)】文字烟花

2020-11-9 4:54:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索