TestNG中使用DataProvider有个好处,就是:

1. 在执行用例的时候dataProvider迭代中的每组数据都是作为一个用例执行

2. 在测试数据有规律的情况下,免去了添加testXML测试数据的烦恼,直接将测试数据,按个或者组,放到dataProvider中即可

注意:但是dataProvider作为数据提供者只能返回Object[][]和Iterator<Object[]>类型的数据

那我们的数据是按照对象存储的该怎么写入和输出呢,我这里提供一个简单的样例:

    // 返回Iterator<Object[]>
@DataProvider(name = "iterator")
public Iterator<Object[]> dp1() {
List<Object> item = new ArrayList<Object>(); // 添加第一个用户
UserInfo user1 = new UserInfo();
user1.setUserName("User1");
user1.setPassword("Password1");
item.add(user1); // 添加第二个用户
UserInfo user2 = new UserInfo();
user2.setUserName("User2");
user2.setPassword("Password2");
item.add(user2); List<Object[]> users = new ArrayList<Object[]>(); for (Object u : item) {
//做一个形式转换
users.add(new Object[] { u });
}
return users.iterator(); }

我们将上述的UserInfo的数据组放入到了iterator中,怎么调用呢?

    @Test(dataProvider = "iterator")
public void testProvider(UserInfo user) {
System.out.println("User Name is: "+ user.getUserName() +"\n"+"User password is" + user.getPassword()); }

这里给出一个UserInfo的对象

/**
* @Title: UserInfo.java
* @Package com.dataProvider.domain
* @Description: TODO(用一句话描述该文件做什么)
* @author pc
* @date 2017年1月16日
* @version V1.0
*/ package com.dataProvider.domain; /**
* @ClassName: UserInfo
* @Description: TODO(这里用一句话描述这个类的作用)
* @author pc
* @date 2017年1月16日
*
*/ public class UserInfo {
private String userName;
private String password; public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} }

TestNG中的DataProvider返回Iterator<Object[]>的妙用的更多相关文章

  1. TestNG中的数据源DataProvider概述

    http://blog.csdn.net/taiyangdao/article/details/52141711 在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数 ...

  2. testNG中dataprovider使用的两种方式

    testNG的参数化测试有两种方式:xml和dataprovider.个人更喜欢dataprovider,因为我喜欢把测试数据放在数据库里. 一.返回类型是Iterator<Object[]&g ...

  3. TestNG中DataProvider的用法一

    目录 为什么要使用DataProvider DataProvider的常规用法 带Method参数的DataProvider 带ITestContext的DataProvider DataProvid ...

  4. TestNG 中DataProvider 的用法

    使用DataProvider提供数据有两种形式: 第一种:一种是在测试代码和测试数据放在同一个类中: 第二种:把所有的数据提供都单独写在一个类里面,当测试数据比较多时,这种方法利于维护. DataPr ...

  5. TestNG中DataProvider的用法

    提供数据的一个测试方法.注解的方法必须返回一个Object[] [],其中每个对象 []的测试方法的参数列表中可以分配.该@Test 方法,希望从这个 DataProvider 的接收数据,需要使用一 ...

  6. SSM-SpringMVC-21:SpringMVC中处理器方法之返回值Object篇

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 今天要记录的是处理方法,返回值为Object的那种,我给它分了一下类: 1.返回值为Object数值(例如1) ...

  7. TestNG @Factory与 @DataProvider 结合使用进行参数化测试

    简介 TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试,这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试.设计目标的不同,对比junit的只适合用于单 ...

  8. Testng之使用@DataProvider注解做数据驱动【转】

    原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataP ...

  9. testNG中@Factory详解

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

随机推荐

  1. 实例学习SSIS(二)--使用迭代

    原文:实例学习SSIS(二)--使用迭代 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SSIS(四)-- ...

  2. javascript 函数介绍

    javascript函数使用的时候,往往都比较单一,这里介绍几种不同于我们之前使用的函数调用方式! 1.函数表达式包含名称,用于递归 var f = function s(num) { if (num ...

  3. Just a complaint about the college examinations

    Well , you know. As a college student who want to find a good job after graduating  like me , scores ...

  4. WebIM(2)---消息缓存

    WebIM系列文章 在一步一步打造WebIM(1)一文中,已经介绍了如何实现一个简单的WebIM,但是,这个WebIM有一个问题,就是每一次添加消息监听器时,都必须访问一次数据库去查询是否有消息,显然 ...

  5. Mysql高级之触发器

    原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...

  6. Javascript实例技巧精选(8)—计算当月剩余天数

    >>点击这里下载完整html源码<< 截图如下: 利用Javascript在网页上计算当前月份的剩余天数,相应代码如下: <script language="J ...

  7. Effective C++(13) 用对象管理资源

    问题聚焦: 从这条准则开始,都是关于资源管理的. 资源,一旦用了它,将来必须还给系统. 本条准则,基于对象的资源管理办法,建立在C++的构造函数,析构函数和拷贝函数(拷贝构造函数和重载赋值操作符)的基 ...

  8. messageBox以及新窗体的使用

    DialogResult dr = MessageBox.Show("你确定要点击吗", "安全提示", MessageBoxButtons.YesNo);   ...

  9. SublimeText编辑器替代notepad++了

    可以考虑使用SublimeText编辑器替代notepad++了   内容目录: 插件安装配置 配置打包下载 大概是去年吧,这款编辑器神一般的出现在我面前,经过我小心翼翼的试用后发现并不是那么太顺手, ...

  10. socket1

    socket的那些事(1) TCP/IP 简单介绍 应用层 (Application):应用层是个很广泛的概念,有一些基本相同的系统级 TCP/IP 应用以及应用协议,也有许多的企业商业应用和互联网应 ...