1. 程式人生 > 其它 >TestNG併發加速自動化測試執行

TestNG併發加速自動化測試執行

本文章出自【碼同學軟體測試】

碼同學公眾號:自動化軟體測試,,領取資料可加:Matongxue_8

碼同學抖音號:小碼哥聊軟體測試

簡介

TestNG是一個開源自動化測試工具,TestNG源於Junit,最初用來做單元測試,可支援異常測試,忽略測試,超時測試,引數化測試和依賴測試。

除了單元測試,TestNG的強大功能讓他在介面和UI自動化中也佔有一席之地。以Java為例,目前主流的測試框架有:

• 基於TestNG+Httpclient的介面測試

• 基於TestNG+Selenium的UI自動化測試

隨著企業內部自動化資產的持續積累以及持續整合的推進,對自動化測試的執行速度要求越來越高,某些應用的自動化測試用例可能多達幾千條,如何加速這些自動化用例的執行速度,讓自動化落實到每一次版本變更和持續整合當中,是一個需要解決的問題。

免費領取碼同學軟體測試課程筆記+超多學習資料+完整視訊+面試題,可加微信Matongxue_8

TestNG通過對多執行緒的支援提供了加速程式碼執行的有效方式,TestNG中實現多執行緒並行,可以通過如下幾種方式:

• TestNG.xml中配置多執行緒併發的級別:測試的級別由上至下可以分為suite -> test -> class -> method

• @Test註解上配置多執行緒併發

• @Dataprovider上配置多執行緒併發

TestNG.xml中不同級別的併發

在TestNG.xml中通過制定 parallel的執行級別(suite,test,class,method)以及thread-count的值來實現併發執行測試用例。

一個TestNG.xml中通常只有一個suite,併發級別通常配置為test,class,method:

• parallel=test 意味著suite中的不同test標籤下的測試類會併發執行,但同一test標籤下的測試類會順序執行

• parallel=class 意味著test標籤下的不同測試類會併發執行,但同一個測試類裡的方法會順序執行

• paralle=method 意味著測試類裡的方法會併發執行,這是併發的最大級別

thread-count 意味著併發的最大執行緒數,當parallel=method, thread-count=10, 有50個測試方法時,每次最多並行10個測試方法。

@Test註解上配置多執行緒併發

@Test註解上可通過配置threadPoolSize來實現併發,threadPoolSize和invocationCount是結合使用的,當invocationCount=1的時候,threadPoolSize沒有意義。invocationCount表示方法被呼叫的次數,如果不配置threadPoolSize,該方法會被順序執行5次,如果配置threaPoolSize=4,下圖所示的方法會一次以4個執行緒併發執行,縮短執行時間

@Dataprovider上配置多執行緒併發

@Dataprovider註解上可通配置parallel=true來實現資料驅動測試的併發,設定parallel=true的Dataprovider在被呼叫的時候會併發執行

TestNG預設的dataprovider併發執行的執行緒數是10,要更改此限制,可以在TestNG.xml檔案中配置data-provider-thread-count屬性

TestNG的多執行緒方式提高執行速度,通過多執行緒可以大大提速用例的執行時間,新手小白也很容易入門,但是在設計用例的時候需要考慮用例是否適合併發,執行緒安全和共享變數的問題,否則會增加用例執行的不穩定性。TestNG的併發介紹到這裡,希望大家在工作中多多嘗試,不斷優化自己的自動化工作。

END

免費領取碼同學軟體測試課程筆記+超多學習資料+學習完整視訊 可加:Matongxue_8/關注碼同學公眾號

本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。