參考官方手冊(cè):http://testng.org/doc/documentation-main.html#parallel-suites
1、多個(gè)testng.xml文件并行執(zhí)行,可以通過(guò)啟動(dòng)腳本指定
java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml
2、同一個(gè)testng.xml文件中,指定并行級(jí)別:methods、tests、classes、instances
如:<suite name="My suite" parallel="methods" thread-count="5">
methods級(jí)別:在不同的線程中運(yùn)行所有的測(cè)試方法
tests級(jí)別:同一個(gè)<test>下的方法在同一個(gè)線程中運(yùn)行,不同<test>之間并行執(zhí)行
classes級(jí)別:同一個(gè)類中運(yùn)行所有的方法在同一個(gè)線程中運(yùn)行,不同的類將在不同的線程中運(yùn)行
instances級(jí)別:TestNG將在同一個(gè)線程中運(yùn)行同一實(shí)例中的所有方法,但兩個(gè)不同實(shí)例上的兩個(gè)方法將運(yùn)行在不同的線程中。
3、不同dataprovider的并發(fā)
在@DataProvider中添加parallel=true
從XML文件運(yùn)行的并行數(shù)據(jù)提供程序共享相同的線程池,默認(rèn)情況下它的大小為10??梢栽赬ML文件的<suite>標(biāo)記中修改此值:
<suite name="XXX" parallel="instances" thread-count="10" data-provider-thread-count="20">
說(shuō)明:(1)我們項(xiàng)目中用了第2,3步執(zhí)行并發(fā)測(cè)試。當(dāng)然代碼也要支持,多關(guān)注靜態(tài)變量的使用,防止數(shù)據(jù)錯(cuò)亂。
(2)設(shè)置完后,從日志可以很明顯的看到有多個(gè)線程在同時(shí)執(zhí)行。