TestNg多線程—— 並行執行測試

多線程並行執行測試,可以通過參數設置來實現不同級別的多線程配置測試

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() { 
  } 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章