在使用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的參数化測试、共享线程池配置、參数默认值配置的更多相关文章

  1. Android自己主动化測试解决方式

    如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...

  2. Android自己主动化測试之Monkeyrunner用法及实例

    眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...

  3. 带有机器人框架的.NET自己主动化測试

    Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...

  4. Android Monkey自己主动化測试

    前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...

  5. iOS自己主动化測试的那些干货

    前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...

  6. Mock+Proxy在SDK项目的自己主动化測试实战

    项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...

  7. Selenium2 Python 自己主动化測试实战学习笔记(五)

    7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...

  8. 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份

    Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...

  9. Windows环境搭建Web自己主动化測试框架Watir(基于Ruby)

    web自己主动化測试一直是一个比較迫切的问题 图1-1 须要安装的工具 http://railsinstaller.org/ 由于安装Ruby还须要用到其它的一些开发工具集.所以建议从站点http:/ ...

随机推荐

  1. manjaro安装anaconda出错

    出错信息: ==> Creating package "anaconda"...  -> Generating .PKGINFO file...  -> Gene ...

  2. 菜鸟之路——机器学习之BP神经网络个人理解及Python实现

    关键词: 输入层(Input layer).隐藏层(Hidden layer).输出层(Output layer) 理论上如果有足够多的隐藏层和足够大的训练集,神经网络可以模拟出任何方程.隐藏层多的时 ...

  3. 查看oracle日志路径

    adrci ADRCI: Release 12.2.0.1.0 - Production on Tue Oct 9 16:14:35 2018 Copyright (c) 1982, 2017, Or ...

  4. [HAOI2011][bzoj2301] Problem b [莫比乌斯反演+容斥原理+分块前缀和优化]

    题面: 传送门 有洛谷就尽量放洛谷链接呗,界面友好一点 思路: 和HDU1695比较像,但是这一回有50000组数据,直接莫比乌斯反演慢慢加的话会T 先解决一个前置问题:怎么处理a,c不是1的情况? ...

  5. [暑假集训--数论]poj2262 Goldbach's Conjecture

    In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in whic ...

  6. Django使用js,css等静态文件的时候,出现mime类型问题

    使用adminLTE模板, return render(request, 'AdminLTE/index.html') 的时候报如下错误且页面渲染异常,css没有效果: Resource interp ...

  7. 最近关于css样式重构的一点心得体会

    之前的项目一直都是基于bootstrap,elementUI这些已经很成熟的框架进行二次开发,要么就是一些很小的宣传页面,h5页面,或者结构相对简单的移动端.一直都没有机会对css的整体进行一个思考, ...

  8. Static 静态内部类

    Java中的类可以是static吗?答案是可以.在java中我们可以有静态实例变量.静态方法.静态块.类也可以是静态的. java允许我们在一个类里面定义静态类.比如内部类(nested class) ...

  9. food(洛谷P4040 [AHOI2014/JSOI2014]宅男计划)

    题目在这里 题目描述 外卖店一共有N种食物,分别有1到N编号.第i种食物有固定的价钱Pi和保质期Si.第i种食物会在Si天后过期.JYY是不会吃过期食物的. 比如JYY如果今天点了一份保质期为1天的食 ...

  10. hdu 3518 Boring counting 后缀数组 height分组

    题目链接 题意 对于给定的字符串,求有多少个 不重叠的子串 出现次数 \(\geq 2\). 思路 枚举子串长度 \(len\),以此作为分界值来对 \(height\) 值进行划分. 显然,对于每一 ...