说实话:没用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都会执行,当则只有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。
领取专属 10元无门槛券
私享最新 技术干货