TestNG 是什么:
TestNG,即Testing,Next Generation,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
TestNG 如何安装
输入http://beust.com/eclipse/
如果出现就点ok
点yes
TESTNG 类新建
重启之后我们在测试工程中新建一个TESTNG 的包名
在TESTNG 包名处右击鼠标
现在增加部分代码
选择Run――TESTNG
执行上面最简单的一个代码时大家一定发现了在每个方法前有一个@ 标签,这个标签在TESTNG 中叫注解
现在跟大家普及下TESTNG 中的标签是什么意思,执行顺序是怎样的呢
TESTNG 注解
首先我们在创建TESTNG 时出现以下界面对吧
以下是每个注解的具体描述信息
为了便于了解上述注解的使用方式我这边在创建Class 时全选上所有注解
模板生成之后增加打印语句
运行TESTNG
其中的BeforeMethod/AfterMethod 会在每个方法中调用一次,这种适用场所,比如我执行完第一个用例之后要重置数据才能执行第二条用例时,可以用这种方式,BeforeMethod 就放重置数据的方法,让每个方法执行之前都去调用这个方法
现在再用实际例子跑一次苏宁易购网
新建以下代码
用TESTNG 运行该类
查看记录运行结果是PASS 的
切换到另一视图
可以精确看到每个方法执行花费多长时间,也可以看到执行是通过还是不通过
TESTNG 结果展示
将工程刷新之后在SRC 同级目录下你可以看到一个TEST-OUTPUT 的目录
.
打开该目录选择emailable-report.html‘,
TESTNG 中XML 简单配置
现在对上述测试类稍作修改,做成XML 调用方式
在TESTNG.XML 中输入以下代码
选择TESTNG.XML 后点右我键选择RUN –TESTNG TEST
执行完再查看结果
TESTNG 执行顺序
TESTNG 在实际执行过程中顺序是如何排的呢
其实他并不是按代码中从上往下执行的,他是控字母+数字排序
新建以下类
运行TESTNG TEST
发现他并没有按我们代码中1,2,3,4 的顺序执行
那如果我想按代码写的顺序执行如何办呢
可以在注解中增加顺序
(priority=XX) XX 代表第几次执行
我们将上述代码再修改下,先将1,2,3,4 的顺序再打乱下
再用标记的方式让系统执行按1,2,3,4 的顺序执行
假如调试时我可能只要执行部分方法,也就是说要跳过一部分方法怎么办呢,同样是在注解中增加参数
这时我们可以增加enabled=false 表过该方法不执行
在执行过程中3的方法就没有执行了
TESTNG Resport 记录展示
在RESTPORT 中展示Log
再新增一个ReporterLogs TESTNG类
输入以下内容
执行之后打开 emailable-report.html 会发现如图所示的画面
Log.info("信息验证Ok");
Reporter.log("测试方法已验证通过");
可以看出两个log 展示的地方不一样,Reporter.log 只是在结果中展示,用于展示一些概述性的东西时比较好,比如一个方法执行通过就打印下,具体步骤我们就用log.info 方式记录
TESTNG 参数化
TESTNG 中的参数与数据提供者介绍
参数需要在注解中加入这个格式
@Parameters({"参数1","参数2"})
现在我们还是以苏宁易购网站为例稍作修改
新建一个测试类
同时修改TESTNG.XML
这样设置代表数据是从xml 中取,之后传级测试类中的参数
点击TESTNG.XML 运行testng 之后结果展示:
另一种数据提供者
也是通过增加注解方式实现
标准格式是:
@DataProvider(name="XXXX")
现再新建一个测试类
输入以下代码
运行TESTNG
我们虽然只有一个测试方法,但同一个没试方法有两组数据,所以被执行两次