testNG整合測試 註解及屬性

2021-07-10 16:04:50 字數 2868 閱讀 9924

專業做測試的人都知道,junit是單元測試,而testng則屬於整合測試,本篇給大家介紹一下testng中的一些註解以及屬性:

testng中用到的annotation的快速預覽,還有它們的屬性。

@beforesuite:        被注釋的方法將在所有測試執行前執行

@aftersuite:        被注釋的方法將在所有測試執行後執行

@beforetest:        被注釋的方法將在測試執行前執行

@aftertest:        被注釋的方法將在測試執行後執行

@beforegroups:        被配置的方法將在列表中的gourp前執行。這個方法保證在第乙個屬於這些組的測試方法呼叫前立即執行。

@aftergroups:        被配置的方法將在列表中的gourp後執行。這個方法保證在最後乙個屬於這些組的測試方法呼叫後立即執行。

@beforeclass:        被注釋的方法將在當前類的第乙個測試方法呼叫前執行。

@afterclass:        被注釋的方法將在當前類的所有測試方法呼叫後執行。

@beforemethod:        被注釋的方法將在每乙個測試方法呼叫前執行。

@aftermethod:        被注釋的方法將在每乙個測試方法呼叫後執行。

屬性:alwaysrun    對於每個bufore方法(beforesuite, beforetest, beforetestclass 和 beforetestmethod, 但是不包括 beforegroups):

如果設定為true,被配置的方法將總是執行而不管它屬於哪個組。

對於after方法(aftersuite, afterclass, ...): 如果設定為true,被配置的方法甚至在乙個或多個先呼叫的方法失敗或被忽略時也將執行。

dependsongroups        這個方法依賴的組列表

dependsonmethods    這個方法依賴的方法列表

enabled            這個類的方法是否啟用

groups            這個類或方法所屬的分組列表

inheritgroups        如果設定為true,這個方法被屬於在類級別被@test annotation指定的組

@dataprovider    標記乙個方法用於為測試方法提供資料。

被注釋的方法必須返回object, 其中每個object可以指派為這個測試方法的引數列表。

從這個dataprovider接收資料@test方法需要使用乙個和當前注釋相同名稱的dataprovider名稱

name         這個dataprovider的名稱

@factory    標記方法作為乙個返回物件的工廠,這些物件將被testng用於作為測試類。這個方法必須返回object

@parameters    描述如何傳遞引數給@test方法

value    用於填充這個方法的引數的變數列表

@test        標記乙個類或方法作為測試的一部分

alwaysrun     如果設定為true,這個測試方法將總是執行,甚至當它依賴的方法失敗時。

dataprovider     這個測試方法的data provider的名稱

dataproviderclass     用於查詢data provider的類。

如果不指定,將在當前測試方法所在的類或者它的基類上查詢data provider。

如果這個屬性被指定, 則data provider方法需要是指定類的static方法。

dependsongroups     當前方法依賴的組列表

dependsonmethods     當前方法依賴的方法列表

description     當前方法的描述

enabled     當前類的方法/方法是否被啟用

expectedexceptions     測試方法期望丟擲的異常列表。如果沒有異常或者丟擲的不是列表中的任何乙個,當前方法都將標記為失敗.

groups     當前類/方法所屬的組列表

invocationcount     當前方法被呼叫的次數

successpercentage     當前方法期望的成功率

sequential     如果設定為true,當前測試類上的所有方法保證按照順序執行。甚至測試們在parallel="true"的情況下.

這個屬性只能用於類級別,如果用於方法級別將被忽略。

timeout     當前方法容許花費的最大時間,單位毫秒。

threadpoolsize     當前方法的執行緒池大小。方法將被多執行緒呼叫,次數由invocationcount引數指定

注意:如果invocationcount沒有指定則這個屬性將被忽略

注:上面是testng中用到的annotation列表,從中我們可以看到testng提供的一些特性

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

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

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

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

5. invocationcount/threadpoolsize 終於可以簡單的直接進行多執行緒測試了,這個絕對是junit的超級弱項,回想junit中那個萬惡的system.exist(0)...

6. timeout 終於不用死等然後手工強行關閉測試,testng想的太周到了

testng官方文件中文版(3)-testng.xml

testng的官方文件的中文翻譯版第3章,原文請見  

junit測試 註解

不知道也沒去過大公司是怎麼使用junit的,我只是初步了解和使用的,用註解倒是挺方便的,分享下 1 測試由 test注釋開始 method method new method test public void say 2 fixture before public void initialize a...

spring測試註解類詳解

用來指定springboot應用程式的入口類,該註解缺省會根據包名逐級往上找,一直找到乙個springboot主程式class為止,然後啟動該類為單元測試準備spring上下文環境.spring單元測試並不在每個測試方法前都移動乙個全新的spring上下文,因為這樣做太耗費時間,而是會快取上下文環境...

自動化測試 註解篇

phoenix自動化測試框架提供了很多可以簡化編碼的註解類 annotation 本文將會這些類做一些簡單的介紹。autodata autodatasource autoexpect autofield 加在屬性上,表明是page類中的乙個元素。autolocator 加在屬性上,用於描述元素的定位...