添加TestNG依赖
根据官网的说明,Maven不支持的TestNG版本有:
1 | - TestNG 5.14.3: Bad formatted pom.xml. |
在项目的pom文件中配置TestNG,版本号可以替换成自己想用的:
1 | <dependencies> |
如果使用的是<=5.11的版本,则应该这样配置,jdk版本替换成自己使用的:
1 | <dependencies> |
Maven Surefire Plugin插件
Maven Surefire Plugin是用于mvn生命周期的测试阶段的插件,设置一些参数就可以灵活地在testNG下对测试进行自定义,最基本的用法是在pom的plugin标签下添加surefire插件制定测试的xml文件:
1 | <plugins> |
配置好了以后在自己的项目目录下执行mvn test命令,就可以执testng.xml文件中包含的测试用例,最后在你项目下的/target/surefire-reports中可以看到测试报告。
参数配置
TestNG中是可以用@Parameters注释来传参数的,Maven也是可以的,把参数当作系统属性,在surefire插件的configuration标签下增加相应的参数:
1 | <plugins> |
这样就相当于传了一个phoneNumber和一个password参数,在代码中需要用到的地方依旧可以使用@Parameters({“phoneNumber”, “password”})注释来获得这两个参数。需要注意的是,这里的参数都将会以字符串的形式被传达。
分组测试
TestNG中可以对测试的方法或类进行分组,所以你可以在maven中配置测试的组,下面表示测试functest,perftest两个组。这里顺便提一下,surefire会从你项目目录src/test/java下寻找命名以Test.java结尾的类,把他们当作TestNG测试类。
1 | <plugins> |
当然你也可以用
多线程测试
添加parallel参数以设置多线程,如果不写线程数默认是5:
1 | </plugins> |
TestNG 6.9.8(JRE 1.7)及surefire 2.19以上版本,可以多线程运行测试套件:
1 | </plugins> |
日志详细等
可以设置surefire.testng.verbose的等级,从0-10越来越详细,默认是0:
1 | </plugins> |
————以上内容来自Apache Maven