前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TestNg之XMl形式实现多线程测试

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

作者头像
软件测试君
发布2019-06-03 10:01:56
8730
发布2019-06-03 10:01:56
举报
文章被收录于专栏:测试人生测试人生

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

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

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

关于多线程并行测试

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

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

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

如何实现?

1、编写测试类

代码语言:javascript
复制
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文件

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

3、tests级别测试

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

配置文件如下:

代码语言:javascript
复制
<?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运行效果如下:

4、methods级别测试

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

配置文件如下:

代码语言:javascript
复制
<?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运行效果如下:

5、classs级别测试

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

配置文件如下:

代码语言:javascript
复制
<?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运行效果如下:

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

配置文件如下:

代码语言:javascript
复制
<?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运行效果如下:

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要使用多线程测试?
  • 关于多线程并行测试
  • 如何实现?
  • 1、编写测试类
  • 2、编写testng.xml文件
  • 3、tests级别测试
  • 4、methods级别测试
  • 5、classs级别测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档