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. kdump failed

    kdump  是一种先进的基于 kexec 的内核崩溃转储机制.当系统崩溃时,kdump 使用 kexec 启动到第二个内核. 第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像.第一个内核保留 ...

  2. TI CC2541增加一个可读写, 又可以Notify的特征字

    参考这个博客: http://blog.csdn.net/feilusia/article/details/48235691 值得注意是, 测试前, 在手机中先取消对原有的设备的配对.

  3. Spring JDBC保存枚举对象含关键字报错原因之一

    报错信息: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized S ...

  4. myeclipse 常用快捷键总结

    1 shift+enter 不管鼠标在当前行的什么位置,重新开启一行(向下) 2 shift+ctrl+enter 不管鼠标在当前行的什么位置,重新开启一行(向上) 3 Ctrl+D     删除一行 ...

  5. MyBatis 判断条件为等于的问题

    在用MyBatis操作数据库的时候相信很多人都用到,当在判断null, 大于,大于等于,小于,小于等于,不等于时估计很多都用到,比较容易实现了,这里就省略了,但唯独判断条件为等于时估计蛮多人遇到坑了, ...

  6. 关于left join、right join和inner join

    总结, 1.select * from A left join B on A.XX=B.XX 左侧显示A的列名,右侧显示B的列名 左侧,显示A表的所有列 右侧, A.XX=B.XX的时候,显示B表的列 ...

  7. c# 回调委托

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. c#之习题

    int n = 1; double zg = 1; double rb = 4; while (zg < rb) { n++; int k = 1; while (k <= 4) { k+ ...

  9. 用ThreadLocal为线程生成唯一标识及实现原理

    1.在多线程编程中,有时候需要自动为每个启动的线程生成一个唯一标识,这个时候,通过一个ThreadLocal变量来保存每个线程的标识是最有效.最方便的方式了. 2.ThreadLocal 实例通常是类 ...

  10. 周赛-Clique in the Divisibility Graph 分类: 比赛 2015-08-02 09:02 23人阅读 评论(3) 收藏

    Clique in the Divisibility Graph time limit per test1 second memory limit per test256 megabytes inpu ...