原创文章,版权所有所有。转载,归因:http://blog.csdn.net/wanghantong

TestNg的@Factory注解从字面意思上来讲就是採用工厂的方法来创建測试数据并配合完毕測试

其主要应对的场景是:对于某一个測试用例或方法,我们须要输入多个測试数据进行測试,而且这些測试数据能够是有一定关系(能够通过代码控制)。

此时。我们就能够把自己主动化或者手动測试时的遇到的仅仅因測试数据不同的多个測试用例合并成一个測试用例。来进行更方便和快捷的測试,

对编写自己主动化測试代码人员节省了非常多时间

策略:一般我们会在标有@Factory注解的方法中对測试类进行调用。这时TestNg会自己主动调用測试类中带有@Test注解的方法

java
code:

/**
*
* <p>
* Title: TestngFactory
* </p>
*
* <p>
* Description: 配置文件:testng-factory.xml
*
* TestngFactory工厂类,在带有@Factory注解的方法中调用被运行的測试类,TestNg会自己主动调用被运行类中带有@Test注解的方法,
* 被运行的測试类为:TestngFactoryTest,
* </p>
*
* <p>
* Company:
* </p>
*
* @author : Dragon
*
* @date : 2014年10月22日
*/
public class TestngFactory {
@Factory
public Object[] createInstances() {
Object[] result = new Object[10];
for (int i = 0; i < 10; i++) {
result[i] = new TestngFactoryTest(i * 10);
}
return result;
}
}
public class TestngFactoryTest {
private int m_numberOfTimes; public TestngFactoryTest(int numberOfTimes) {
this.m_numberOfTimes = numberOfTimes;
} private static int num; @Test
public void testServer() {
num++;
System.out.println("num " + num + " m_numberOfTimes :"
+ m_numberOfTimes);
}
}

配置文件:仅仅须要配置带有@Factory注解的类就可以

<?xml version="1.0" encoding="UTF-8"?

>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- allow-return-values 默认值为FALSE,表示返回值将被忽略 -->
<suite name="framework_testng" allow-return-values="true">
<test verbose="2" name="TestMethods">
<classes>
<class name="com.dragon.testng.annotation.TestngFactory">
</class>
</classes>
</test>
</suite>

測试结果:

num    1  m_numberOfTimes :30
num 2 m_numberOfTimes :20
num 3 m_numberOfTimes :70
num 4 m_numberOfTimes :60
num 5 m_numberOfTimes :90
num 6 m_numberOfTimes :50
num 7 m_numberOfTimes :10
num 8 m_numberOfTimes :0
num 9 m_numberOfTimes :40
num 10 m_numberOfTimes :80
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer
PASSED: testServer ===============================================
TestMethods
Tests run: 10, Failures: 0, Skips: 0
===============================================

原创文章。版权全部,同意转载,标明出处:http://blog.csdn.net/wanghantong

——要知道别人光鲜的背后有着太多不为人知的痛苦。自己不喜欢的人,报之以微笑。默默为他祝福;对喜欢的人。真情流露、真诚相待就好。人在做天在看,冥冥中自有因果在安排,永远怀着一颗善良的心,持续做对的事。时刻提醒自己。改变自己,低调做人,高调做事。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

TestNg它@Factory详细解释------如何更改参数值测试的更多相关文章

  1. Java自动化测试框架-07 - TestNG之Factory篇 - 欢快畅游梦幻工厂(详细教程)

    简介 最近忙着装修博客园,没时间更新文章,今天终于抽出时间把上次写的一半的文章给写完了,新的博客园风格,希望大家喜欢.今天继续介绍testng的相关知识--工厂. 工厂允许你动态的创建测试.例如,假设 ...

  2. testNG中@Factory详解

    @Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试,其主要应对的场景是:对于某一个测试用例或方法,我们需要输入多个测试数据进行测试,并且这些测试数据可以是有一定关系(可 ...

  3. #pragma详细解释(一)

    #pragma详细解释 #pragma详细解释(一) 2010-04-18 14:21:00|  分类: 默认分类 |  标签: |字号大中小订阅     在#Pragma是预处理指令它的作用是设定编 ...

  4. 关于 /proc/sys/net/ipv4/下 文件的详细解释

    关于 /proc/sys/net/ipv4/下 文件的详细解释: 1) /proc/sys/net/ipv4/ip_forward  该文件表示是否打开IP转发.      0,禁止      1,转 ...

  5. Elasticsearch BM25相关度算法超详细解释

    Photo by Pixabay from Pexels 前言:日常在使用Elasticsearch的搜索业务中多少会出现几次 "为什么这个Doc分数要比那个要稍微低一点?".&q ...

  6. .htaccess语法之RewriteCond与RewriteRule指令格式详细解释

    htaccess语法之RewriteCond与RewriteRule指令格式详细解释 (2012-11-09 18:09:08) 转载▼ 标签:  htaccess it 分类: 网络 上文htacc ...

  7. cookie的详细解释

    突然看到网页上中英文切换的效果,不明白怎么弄得查了查 查到了cookie 并且附有详细解释 就copy留作 以后温习 http://blog.csdn.net/xidor/article/detail ...

  8. tar命令的详细解释

    tar命令的详细解释 标签: linuxfileoutputbashinputshell 2010-05-04 12:11 235881人阅读 评论(12) 收藏 举报  分类: linux/unix ...

  9. TestNG之Factory

    如果我们的测试方法中,同一个变量需要很多个不同的测试数据,那么这些测试数据由谁提供呢,testng提供了factory的注解,下面我们来一探究竟. 一.单独使用Factory 1.新建一个含有@Fac ...

随机推荐

  1. JDK1.8源码分析之HashMap(一) (转)

    一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...

  2. 《Effective C++ 》学习笔记——规定10

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  3. Mysql 当安装完成后不执行 mysql 和 performance_schema 数据库

    Mysql问题  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)   Mysql ...

  4. IIS的WebGarden、WebFarm和StateServer

    开启IIS的WebGarden.WebFarm和StateServer之旅 前言 公司系统虽然配置有1台NLB后拖4台App Server最后搭一台强劲无比的DB Server,但每天下午4点左右总被 ...

  5. C# Windows Phone App 开发,修改【锁定画面】,从【Assets】、【UI】、【网路图片】,并解决失灵问题。

    原文:C# Windows Phone App 开发,修改[锁定画面],从[Assets].[UI].[网路图片],并解决失灵问题. 一般我们在开发Windows Phone App,有时会希望透过应 ...

  6. 标准I/O缓冲:全缓冲、行缓冲、无缓冲

    说明:我仅仅对网络资源进行了整合,方便学习-.- 基于流的操作终于会调用read或者write函数进行I/O操作.为了使程序的执行效率最高,流对象一般会提供缓冲区,以降低调用系统I/O库函数的次数. ...

  7. iOS 在TabViewController中的一个ViewController跳转到另一种ViewController

    第一步: #import "AppDelegate.h" 步骤二: 在须要跳转的地方: AppDelegate *appDelegate = (AppDelegate *)[[UI ...

  8. C++primer读书笔记9-转换和类类型

    有时指定自己的类类型来表示某些类型的数据,如SmallInt,然后在为了便于计算将指定一个转换算,类类型,在某些情况下,自己主动转换为指定的类型 <1>转换操作符 operator typ ...

  9. t持久化与集群部署开发详解

    Quartz.net持久化与集群部署开发详解 序言 我前边有几篇文章有介绍过quartz的基本使用语法与类库.但是他的执行计划都是被写在本地的xml文件中.无法做集群部署,我让它看起来脆弱不堪,那是我 ...

  10. Android使用Activity用作弹出式对话框

    转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/23116115 Android中可用于实现对话框的有Dialog,PopupWin ...