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 ...