Gradle支持TestNG

test {
useTestNG(){//指定testng配置文件
suites(file('src/test/resources/testng.xml'))}}

Maven支持TestNG

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.16</version><configuration><suiteXmlFiles><suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile></suiteXmlFiles></configuration></plugin>

查看Gradle生成测试报告

\target\reports\buildDashboard\index.html 测试结果公告页面,包括(junitXml)testng(html)的结果链接。

配置TestNg suite

<suitename="waptestng"><!--enabled="true"让测试生效,可根据情况开启或关闭某些测试--><testname="service"enabled="true"><!--指定参数--><parametername="accesskey"value="f0af8e412cef7e5058beeb6df2012e1e"/><!--指定测试包,注意加 .* --><packages><packagename="b2gonline.wap._systembase.service.*"/></packages><!--指定测试类--><classes><classname="test.sample.ParameterSample"/><!--过滤测试类的方法--><classname="test.IndividualMethodsTest"><methods><includename="testMethod"/></methods></class></classes><!--指定测试分组--><groups><run><!--包含--><includename="checkintest"/><!--排除--><excludename="broken"/></run></groups></test></suite>

常用TestNg注解

@Test(//在指定的时间内启用3个线程并发测试本方法10次
threadPoolSize =3, invocationCount =10, timeOut =10000,//等待测试方法t0测试结束后开始本测试
dependsOnMethods ={"t0"},//指定测试数据源CLASS和数据源名称(参考注解@DataProvider),返回是一个数组,返回几条数据会跑测试方法几次
dataProvider ="testUser", dataProviderClass =MockUser.class,//分组名称
groups ={"checkin-test"})//读取配置文件中的参数,配置如上,用@Optional设置默认值@Parameters({"accesskey"})publicvoid t1(User u,@Optional("xxx")String accesskey){...}

使用TestNg参数

在做单元测试的时候会有一些不固定因素,TestNg支持从配置文件或数据类中提供参数配置,通过注解很方便的引入或批量生成使用。

注解@Parameters
从XML配置文件中读取, 如上面示例:@Parameters({ "accesskey" })

注解@Test(dataProvider)
如上示例:@Test(dataProvider = "testUser", dataProviderClass = MockUser.class)

MockUser.class

publicclassMockUser{@DataProvider(name ="testUser")publicstaticObject[][] testUser(){User u =newUser();
u.setId("SJDK3849CKMS3849DJCK2039ZMSK0001");
u.setName("admin-test");//测试找不到用户User u2 =newUser();
u2.setId("");
u2.setName("");returnnewObject[][]{{u},{u2}};}}

使用Factories
功能:通过Factory和参数配置动态批量生成测试方法
示例:

publicclassWebTestFactory{@FactorypublicObject[] createInstances(){Object[] result =newObject[10];for(int i =0; i <10; i++){
result[i]=newWebTest(i *10);}return result;}}
publicclassWebTest{privateint m_numberOfTimes;publicWebTest(int numberOfTimes){
m_numberOfTimes = numberOfTimes;}@Testpublicvoid testServer(){for(int i =0; i < m_numberOfTimes; i++){// ...}}}

然后在XML配置中指定测试类 <class name="WebTestFactory" />

更多参考

  1. TestNg官方文档:http://testng.org/doc/documentation-main.html
  2. Gradle-Test插件配置说明:http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
  3. TestNg和JUnit4对比:http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/

TestNg测试框架使用笔记的更多相关文章

  1. TestNG测试框架在基于Selenium进行的web自动化测试中的应用

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ TestNG+Selenium+Ant TestNG这个测试框架可以很好的和基于Selenium的 ...

  2. JAVA 利用MyEclipse结合TestNG测试框架进行单元测试

    利用MyEclipse结合TestNG测试框架进行单元测试   by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-install ...

  3. Robolectric测试框架使用笔记

    1. 概述 Robolectric(http://robolectric.org/)是一款支持在桌面JVM模拟Android环境的测试框架,通过shadow包下的类来截取view.activity等类 ...

  4. Robot Framework测试框架学习笔记

    一.Robot Framework框架简介         Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架,通常用于端到端的可接收测试和可接收测试驱动的开发.可以 ...

  5. 用maven搭建 testNG+PowerMock+Mockito测试框架

    单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试框架,Junit是使用最广泛的测试框架,有兴趣的话自己baidu一下. testNG基于Junit和 ...

  6. TestNG 搭建测试框架 自动化测试

    框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html Java作为开发语言 Maven管理项目及Jar包 Testng作为测试 ...

  7. java 测试框架 TestNG

    Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...

  8. java测试框架详细说明-mvn+testng+allure

    java测试框架 mvn+testng+allure 1.mvn代码目录结构 2.testng框架 2.1 testng.xml配置 2.2 注解 3.allure插件,方便报告阅览 4.配置文件.p ...

  9. 测试框架Mockito使用笔记

    Mockito,测试框架,语法简单,功能强大! 静态.私有.构造等方法测试需要配合PowerMock,PowerMock有Mockito和EasyMock两个版本,语法相同,本文只介绍Mockito. ...

随机推荐

  1. 161028、Nginx负载均衡实现tomcat集群方案简要小结

    重点两部分:一.负载均衡二.tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问. Nginx是一个常用的 ...

  2. exe文件打开方式(恢复EXE文件关联)

    文件关联损坏常常是计算机病毒造成的,目前网络上有很多相关修复工具,相对来说,System Repair Engineer 支持的修复格式是比较齐全的,这个工具可以在http://www.kztechs ...

  3. vc获取特殊路径(SpecialFolder)

    %SystemDrive% 操作系统所在的分区号.如 C: %SystemRoot% 操作系统根目录.如 C:\WINDOWS %windir% 操作系统根目录.如 C:\WINDOWS %ALLUS ...

  4. zabbix如何实现微信报警 转载

    现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提 ...

  5. mkdir递归创建目录

    mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -p ...

  6. Intent 转向

    Intent intent = new Intent(CardInfoActivity.this, CardRechargeListActivity.class); intent.putExtra(& ...

  7. 使用Xcode和Instruments调试解决iOS内存泄露

    转载自:http://www.uml.org.cn/mobiledev/201212123.asp  (或者http://www.cocoachina.com/bbs/read.php?tid=129 ...

  8. php socket通信(tcp/udp)

    注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.php后台跑起来的时候 nohup php server.php > /var/tmp/a. ...

  9. Redis群集实现Asp.net Mvc分布式Session

    Session的缺点 众所周知Asp.net Session默认存储在IIS中,IIS的重启会导致Session丢失. 如果你的网站使用了session,当网站并发过大时可能引起溢出. 配置Redis ...

  10. AR专用汉明码

    增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像.视频.3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动. ...