TestNG的參数化測试、共享线程池配置、參数默认值配置
在使用TestNG进行測试时,常常会使用到一些參数化配置,比方数据库、连接池、线程池数。
使用TestNG的參数@Parameter注解进行自己主动化读取
原创文章,版权全部。同意转载,标明出处:http://blog.csdn.net/wanghantong
使用多线程的方式执行測试代码配置: 在'<suite>'标签中配置data-provider-thread-count="20"
Java代码:
/**
*
* <p>
* Title: TestngParameters
* </p>
*
* <p>
* 參考配置文件testng-parameters.xml
* Description:參数化測试在配置文件里配置可运行參数,使用@Parameters注解来调用, 注解中參数名称和类型必须和配置文件里一致
*
* 多线程的測试:在'<suite>'标签中配置data-provider-thread-count="20"
* </p>
*
* <p>
* Company:
* </p>
*
* @author : Dragon
*
* @date : 2014年10月13日
*/
public class TestngParameters { // @Parameters注解内相应的參数名称和配置文件里的key必须是同样
@Parameters({ "first-name" })
@Test
public void testSingleString(String secondName) {
System.err.println("Invoked testString " + secondName);
assert "Cedric".equals(secondName);
} @Parameters({ "count" })
@Test
public void testSingleInteger(Integer count) {
System.err.println("Invoked count " + count);
assert count.intValue() == 8;
} private String m_dataSource;
private String m_jdbcDriver;
private int poolSize; /**
* <p>
* description:注:@Parameters定义的參数顺序必须和方法的參数顺序一致,配置文件里的參数仅仅是和注解的參数名称一致
* </p>
*
* @param ds
* @param driver
* @param poolSize
*/
@Parameters({ "datasource", "jdbcDriver", "poolSize" })
@BeforeMethod
public void beforeTest(String ds, String driver, int poolSize) {
this.m_dataSource = ds;
this.m_jdbcDriver = driver;
this.poolSize = poolSize;
System.err.println(getM_dataSource() + " --- " + getM_jdbcDriver()
+ " --- " + getPoolSize());
} public String getM_dataSource() {
return m_dataSource;
} public String getM_jdbcDriver() {
return m_jdbcDriver;
} public int getPoolSize() {
return poolSize;
} /**
* 假设在配置文件里没有指定參数db,那么參数值将使用默认值'mysql'
*
* @param db
*/
@Parameters("db")
@Test
public void testNonExistentParameter(@Optional("mysql") String db) {
System.err.println("db .. " + db);
}
}
配置文件:testng-parameter.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- data-provider-thread-count="20" 共享线程池配置 -->
<suite name="framework_testng" data-provider-thread-count="20"> <parameter name="first-name" value="Cedric" />
<parameter name="count" value="8" />
<parameter name="datasource" value="com.dbcp.source" />
<parameter name="jdbcDriver" value="com.mysql.jdbc.driver" />
<parameter name="poolSize" value="10" /> <test verbose="2" name="TestGroups">
<classes>
<class name="com.dragon.testng.annotation.TestngParameters" />
</classes>
</test>
</suite>
原创文章。版权全部,同意转载。标明出处:http://blog.csdn.net/wanghantong
測试结果:
com.dbcp.source --- com.mysql.jdbc.driver --- 10
db .. mysql
com.dbcp.source --- com.mysql.jdbc.driver --- 10
Invoked count 8
com.dbcp.source --- com.mysql.jdbc.driver --- 10
Invoked testString Cedric
PASSED: testNonExistentParameter("mysql")
PASSED: testSingleInteger(8)
PASSED: testSingleString("Cedric") ===============================================
TestGroups
Tests run: 3, Failures: 0, Skips: 0
===============================================
假设我饶恕,
别觉得我没原则。由于我明确。
得饶人时且饶人。不能把事做绝了。
TestNG的參数化測试、共享线程池配置、參数默认值配置的更多相关文章
- Android自己主动化測试解决方式
如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...
- Android自己主动化測试之Monkeyrunner用法及实例
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...
- 带有机器人框架的.NET自己主动化測试
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...
- Android Monkey自己主动化測试
前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...
- iOS自己主动化測试的那些干货
前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...
- Mock+Proxy在SDK项目的自己主动化測试实战
项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份
Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...
- Windows环境搭建Web自己主动化測试框架Watir(基于Ruby)
web自己主动化測试一直是一个比較迫切的问题 图1-1 须要安装的工具 http://railsinstaller.org/ 由于安装Ruby还须要用到其它的一些开发工具集.所以建议从站点http:/ ...
随机推荐
- Linux内核使用毫秒延时函数
毫秒延时函数:mdelay() 微妙延时函数:ndelay() #ifndef mdelay #define mdelay(n) (/ (__builtin_constant_p(n) &&a ...
- iOS xmpp Openfire+spark环境搭建
配置这个遇到太多问题了,写下来分享 首先到官网下载openfire+spark 下载地址:http://www.igniterealtime.org/downloads/index.jsp
- 二进制包部署Kubernetes集群
今天这篇文章教给大家如何快速部署一套Kubernetes集群.K8S集群部署有几种方式:kubeadm.minikube和二进制包.前两者属于自动部署,简化部署操作,我们这里强烈推荐初学者使用二进制包 ...
- 笔记:CS231n+assignment2(作业二)(一)
第二个作业难度很高,但做(抄)完之后收获还是很大的.... 一.Fully-Connected Neural Nets 首先是对之前的神经网络的程序进行重构,目的是可以构建任意大小的全连接的neura ...
- 【一个比较bug free的二分写法】
lower_bound: [l, r)区间内大于等于val的第一个位置 int lower_bound(int l, int r, int val){ while(l < r){ ); if(a ...
- Docker 开源项目之 registry - 部署 registry (注册表)服务器
原文地址 在部署 registry 之前需要现在主机上安装 Docker.registry 实际上就是运行在 Docker 中的 registry 镜像的实例. 本主题提供关于部署和配置 regist ...
- 气象城市ID列表
气象城市ID列表 数据来源: http://cj.weather.com.cn/support/Detail.aspx?id=51837fba1b35fe0f8411b6df 记录了2574个地区,2 ...
- UVALive 3664:Guess(贪心 Grade E)
vj题目链接 题意: 有n (n<16345)个人,每个人有三个数(小于1000且最多两位小数点),表示答对对应题的得分.规定总分越高的人rank越高.总分相同,id小的rank高.现在知道ra ...
- Python Challenge 第八关
这一关有一个蜜蜂的图片和一句提示:Where is the missing link? 这页面上乱点,在图片中蜜蜂身上还真点出一个链接,让输入用户名和密码,于是就去看源代码.果然,最下面有两行注释: ...
- 解决WCF部署到IIS出现“证书必须具有能够进行密钥交换的私钥,该进程必须具有访问私钥的权限”
访问WCF服务时,出现异常详细信息: System.Security.Cryptography.CryptographicException: 密钥集不存在.ArgumentException: 证书 ...