zoukankan      html  css  js  c++  java
  • 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运行效果如下:

    相同的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运行效果如下:

    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运行效果如下:

    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运行效果如下:

    不同的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运行效果如下:

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

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

  • 相关阅读:
    POJ2778 DNA Sequence AC自动机+矩阵二分
    POJ1204 Word Puzzles AC自动机 多串匹配
    与失散已久的小学同桌QQ聊天
    ZC公司员工评分系统——后台查询合成DataTable
    软考(2)编译原理
    GCT考试复习
    为自己加油!!!
    ZC公司员工评分系统——前台排版算法
    员工评分系统现场发布小感
    软考(3)操作系统
  • 原文地址:https://www.cnblogs.com/longronglang/p/10878262.html
Copyright © 2011-2022 走看看