TestNg之XMl形式實(shí)現(xiàn)多線程測(cè)試
為什么要使用多線程測(cè)試?
在實(shí)際測(cè)試中,為了節(jié)省測(cè)試時(shí)間,提高測(cè)試效率,在實(shí)際測(cè)試場(chǎng)景中經(jīng)常會(huì)采用多線程的方式去執(zhí)行,比如爬蟲爬數(shù)據(jù),多瀏覽器并行測(cè)試。
關(guān)于多線程并行測(cè)試
TestNG中實(shí)現(xiàn)多線程并行執(zhí)行,可以通過以下幾種方法:
- @Test注解的形式
- Xml文件的配置的形式
本文著重介紹下以xml形式實(shí)現(xiàn)多線程測(cè)試的方法,來讓我們開始吧
如何實(shí)現(xiàn)?
1、編寫測(cè)試類
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文件
在
3、tests級(jí)別測(cè)試
不同的test標(biāo)簽(tag)下的用例可以在不同的線程下執(zhí)行
配置文件如下:
xml version="1.0" encoding="utf-8" ?> DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="sml多線程測(cè)試" parallel="tests" thread-count="2"> <test name="threadTest1"> <classes> <class name="com.testng.demo.MultiThreadedByXml"/> classes> test> suite>
通過xml運(yùn)行效果如下:

相同的test標(biāo)簽(tag)下的用例只能在同一個(gè)線程中去執(zhí)行
xml version="1.0" encoding="utf-8" ?> DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="sml多線程測(cè)試" 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運(yùn)行效果如下:

4、methods級(jí)別測(cè)試
所有用例在不同的線程下去執(zhí)行
配置文件如下:
xml version="1.0" encoding="utf-8" ?> DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="sml多線程測(cè)試" parallel="methods" thread-count="2"> <test name="threadTest1"> <classes> <class name="com.testng.demo.MultiThreadedByXml"/> classes> test> suite>
通過xml運(yùn)行效果如下:

5、classs級(jí)別測(cè)試
相同的classes標(biāo)簽下的用例在同一個(gè)線程中執(zhí)行
配置文件如下:
xml version="1.0" encoding="utf-8" ?> DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="sml多線程測(cè)試" parallel="classes" thread-count="2"> <test name="threadTest1"> <classes> <class name="com.testng.demo.MultiThreadedByXml"/> classes> test> suite>
通過xml運(yùn)行效果如下:

不同的classes標(biāo)簽下的用例可以在不同的線程下執(zhí)行
xml version="1.0" encoding="utf-8" ?> DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="sml多線程測(cè)試" 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運(yùn)行效果如下:


