多線程並行執行測試,可以通過參數設置來實現不同級別的多線程配置測試
1、test級別的多線程測試,每個<test>標籤下的所有方法將在同一個線程中執行,不同的<test>是在不同的線程來運行的。修改配置如下:
其中thread-count 表示啓動的線程數 , parallel 參數用例定義平行化的級別:
備註: 當前測試規劃的執行過程中,爲每個測試用例的執行使用單獨的線程,最多併發2個線程
2、method 級別的多線程測試,每個方法都將採用獨立的線程進行測試,
3、@DataProvider 的併發
在定義數據源的時候,可以通過設置parallel 屬性來進行控制器是否併發執行測試,
parallel 參數值默認爲false,表示使用該數據源的測試方法不能併發執行,將其設置爲true,表示使用該數據源的測試方法可以併發執行。
@DataProvider(name = "test1", parallel = true)
public Object[][] data(){
String[] paramValue = new String[]{"4723", "192.168.56.101:5555"};
String[] paramValue1 = new String[]{"4725", "7a737d2"};
return new Object[][]{paramValue1,paramValue };
}
4、在測試方法中,指定其可用的線程池
還可以單獨爲一個測試方法指定可使用的線程池,如下圖所示
@Test(threadPoolSize = 3, invocationCount = 10, timeOut = 10000)
public void test() {...}
備註: 該測試方法可在3個線程中併發執行,共被調用10次,執行超過10秒
5、注意:在定義測試類的時候,如果@Test使用了singleThreaded=true屬性,則該測試類的所有測試方法都只能在單線程中執行,無論其他設置如何。示例如下:
@Test(singleThreaded=true)
public class Test1 {
public void test1() {
}
public void test2() {
}
}