在使用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. 爬虫:Scrapy3 - Items

    Item 对象是种简单的容器,保存了爬取到得数据.其提供了类似于词典(dictionary-like)的API以及用于声明可用字段的简单语法. 声明Item import scrapy class P ...

  2. ibatis核心内容概述

    核心提示:SqlMap的配置是iBatis中应用的核心.这部分任务占据了iBatis开发的70的工作量. 1.命名空间: sqlMap namespace=Account,在此空间外要引用此空间的元素 ...

  3. arcgis engine10.1和arcObjects的一些问题

    1.arcengine10.1只支持vs2010 2.10.1以后没有engine runtimes,改成engine了,以前的engine可以理解为Arcobject,就是我们可以只装AO

  4. Ionic2 调用自定义插件之研究

    cordova机制我在此就不提了,我们使用Typescript调用cordova plugin就如同调用第三方库是一个道理,那么这里就少不了书写declare文件,下面我就把几种封装调用的几种方式介绍 ...

  5. 简单解决 ATL:CString WTL:CString 冲突

    //stdafx.h #include <atlbase.h> #include <atlstr.h> #include <atlapp.h> extern CAp ...

  6. tableView镶嵌加入CollectionView实现方法

    创建一个继承UICollectionView的类QHCollectionView在QHCollectionView.h中添加接口方法 @interface QHCollectionView : UIC ...

  7. StringBuilder与StringBuffer

    转:http://www.cnblogs.com/pepcod/archive/2013/02/16/2913557.html JAVA中用于处理字符串常用的有三个类: java.lang.Strin ...

  8. 【简单的原创】div简单轮换显示

    原文发布时间为:2009-05-10 -- 来源于本人的百度文章 [由搬家工具导入] <html><head><title>div简单轮换显示</title& ...

  9. form+iframe+file 页面无刷新上传文件并获取返回值

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  10. [LeetCode] Best Time to Buy and Sell Stock II 贪心算法

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...