TestNG的簡單使用

2021-10-05 10:45:34 字數 2693 閱讀 4383

testng(test next generation)是乙個測試框架,其靈感來自junit和nunit,但同時引入了一些新的功能,使其功能更強大,使用更方便。

編寫testng測試基本上包括以下步驟:

編寫測試的業務邏輯**,並在相應**中插入testng的annotation。

將測試資訊配置到testng.xml檔案中。

執行testng,testng預設情況下,會生產兩種型別的測試報告html的和xml的。 測試報告位於 "test-output" 目錄下。

@beforesuite/@aftersuite 在某個測試套件開始之前/在某個套件所有測試方法執行之後

@beforetest/@aftertest 在某個測試開始之前/在某個測試所有測試方法執行之後

@beforeclass/@afterclass 在某個測試類開始之前/在某個類的所有測試方法執行之後

@beforemethod/@aftermethod 在某個測試方法之前/在某個測試方法執行之後

@beforegroup/@aftergroup 在某個組的所有測試方法之前/在某個組的所有測試方法執行之後

@dataprovider 標誌乙個方法,用來提供測試資料,標註的方法能夠返回乙個object 或者iterator物件。

@listeners 定義乙個測試類的***。

@parameters 設定引數,用以傳遞給測試方法。

before方法和after方法 帶來了足夠豐富的測試生命週期控制

dependsongroups/dependsonmethods 提供了依賴檢查機制,並可以嚴格控制執行順序

dataprovider 使得對同乙個方法的測試覆蓋變的非常輕鬆,非常適合進行邊界測試,只要給出多種測試資料就可以針對乙個測試方法進行覆蓋

expectedexceptions 使得異常測試變的非常輕鬆

invocationcount/threadpoolsize 可以簡單地設定並行測試的執行緒數,並開啟多執行緒測試

timeout 用來設定測試方法超時時間,從而對程式的效率和執行時間有了更為直觀的控制

說明:

suite屬性說明:

test屬性說明:

異常測試 忽略測試 時限測試

異常測試

可以檢測某一方法檢測到某一異常時是否能按預期地丟擲

忽略測試

testng是通過直接在方法上加標註的方式來進行測試,而這裡也可以設定某個測試方法不工作。可以通過如下方式:

時限測試

可以設定乙個特定時長的限制(以毫秒ms為單位),一旦測試的內容執行超過了該 時間長度,那麼將會終止,同時標記為failed

組測試 引數化測試 並行測試 依賴測試

組測試

通過定義分組,來執行特定一組測試方法,從而提高使用者測試的靈活性,同時在測試配置檔案中也可以通過include和exclude屬性的配置,來控制測試用例的執行

引數化測試

data provider方法可以返回如下兩種型別中的一種:

1.含有多個物件的陣列 (object),其中第乙個下標指明了測試方法要呼叫的次數,第二個下標則完全與測試方法中的引數型別和個數相匹配。

2.另外乙個是迭代器 iterator。二者的區別是迭代器允許你延遲建立自己的測試資料。testng會呼叫迭代器,之後測試方法會乙個接乙個的呼叫由迭代器返回的值。在你需要傳遞很多引數組給測試組的時候,這樣你無須提前建立一堆值。

通過@parameters傳遞引數。

並行測試

依賴測試

testng提供了兩種依賴實現:強制依賴和順序依賴

強制依賴:如果被依賴的某乙個方法發生了異常,那麼之後的方法都不會被執行(預設)

順序依賴:無論被依賴的方法是否出現異常,後續的方法都會被執行,通過alwaysrun=「true」來配置

testng引數化批量測試

例如我們車型庫會有很多車型id,車系id等資料,我們可以把對應的資料隨機組合到excel或者文字中,然後**中通過@dataprovider來進行測試。

舉例隨便在excel中構造點資料, 然後輸出如下:

2, 多執行緒測試

我們服務端介面響應速度一般都要求在100ms以內,那麼我們怎樣能確定我們對服務端的介面能夠達到這個要求呢? 我們可以通過testng的多執行緒以及指定timeout來測試。

在**目錄下的test-output資料夾,點開index.htm即可檢視測試報告:

[testng教程]:

[testng testing framework]:

[testng documentation]:

[junit-4-vs-testng-comparison]:

testng的安裝和使用

1 testng是什麼?是一種測試框架,可以更方便的執行測試用例。2 如何安裝?eclipse help install new software work with輸入 等待幾秒鐘,選中testng,一路next window preferences 能看到testng,就是安裝成功了。3 專案右...

testng單元測試 簡單隨筆

隨著 質量的要求越來越高,每乙個功能每乙個方法的測試就逐漸變得更加重要了,以前就知道一頓寫。結果給後來的工作帶來了很大的麻煩,所以現在研究一下簡單的單元測試,剛剛學的,呵呵,就是寫個功能類,在寫個測試類,對其功能進行測試。color red 功能類 color package test public...

測試框架之testng使用

註解 描述 test 標記乙個類或方法作為測試的一部分 beforesuite 註解的方法將只執行一次,執行所有測試前此套件中 aftersuite 註解的方法將只執行一次此套件中的所有測試都執行之後 beforeclass 註解的方法將只執行一次先行先試在當前類中的方法呼叫 afterclass ...