說實話:沒用testng之前,從未想過自動化用例管理如此優雅

檸檬班軟件測試 發佈 2019-12-16T16:51:24+00:00

說實話:沒用testng之前,從未想過自動化用例管理如此優雅testng.xml1、帶包和不帶包2、指定包不指定類在上述案例中,TestNG將查看包test.sample中的所有類,並將僅執行具有TestNG批註的類。

說實話:沒用testng之前,從未想過自動化用例管理如此優雅

testng.xml

1、帶包和不帶包

2、指定包不指定類

在上述案例中,TestNG將查看包test.sample中的所有類,並將僅執行具有TestNG批註的類。

3、指定要包括和排除的組和方法

在上述案例中,在@Test中配置了groups="checkinTests",則會執行,沒有配置或配置groups="brokenTests"則不會執行。

在IndividualMethodsTest類中只有testMethod才會執行。

4、打亂執行順序

默認情況下,TestNG將按照在XML文件中找到的順序運行測試。

如果要以不可預測的順序運行此文件中列出的類和方法,請將preserve-order屬性設置為false。

測試類、測試方法、測試組

1、執行帶返回值的方法

默認情況下,使用@Test的方法如果有返回值,則會直接忽略,使用allow-return-values="true"之後則可以執行。

2、Test groups

TestNG允許您對測試方法進行複雜的分組。

不僅可以聲明方法屬於組,還可以指定包含其他組的組。

然後可以調用TestNG並要求它包括一組特定的組(或正則表達式),而排除另一組。

如果要連續運行兩組不同的測試,這將為您提供最大的靈活性來劃分測試方式,並且不需要重新編譯任何內容。

3、組合用法

上述案例中,testMethod1、testMethod2、testMethod3都會執行,當<include name="functest"/><include name="checkintest"/>則只有testMethod1、testMethod2會執行。

4、正則表達式用法

上述案例,只有groups=windows開頭的方法才會執行。

5、方法包含和排除

上述案例中,如果是單獨匹配方法名,如果方法名中包含enabledTestMethod那麼方法就會執行,如果方法中包含brokenTestMethod則不會執行。

不推薦使用這種方式,因為這樣會改造你的方法名。

6、組的嵌套定義

上述案例中,all包含checkintest、function,function包含window、linux,最終運行all。

只要方法上使用all或者all包含的組都會執行。

7、同時擁有include和exclude

上述案例中,testMethod2方法上既有include的checkintest又有exclude的broken,那麼這個方法將不會執行,使用這種方式可以讓我們非常方便的暫時停用某些方法,而不會影響原來的配置。

當你想繼續使用這些方式時,只需要去掉broken即可。

8、在類上使用分組

上述案例中,method1、method2方法都屬於checkin-test組,method1同時也屬於func-test組。

當運行checkin-test組時method1和method2都會運行,當允許func-test組時只會運行method1。

關鍵字: