Testng 的数据源 驱动测试 代码与配置

JUnit中有讲述使用注解的方式进行数据源读取进行自动循环测试的方法,在TestNG中也提供了相应的方法

public class TestngDataProvider {
	/**
	 * 数组内的每个元素都会作为一个用例数据被执行 On execution testEmployeeData() will be executed 4
	 * times,
	 *
	 * 数据源可以是Java对象、配置文件、数据库
	 *
	 * @return
	 */
	@DataProvider(name = "DP1")
	public Object[][] createData() {
		Object[][] retObjArr = { { "001", "Jack", "London" },
				{ "002", "John", "New York" }, { "003", "Mary", "Miami" },
				{ "004", "George", "california" } };
		return (retObjArr);
	}

	@Test(dataProvider = "DP1")
	public void testEmployeeData(String empid, String empName, String city) {
		System.err.println(empid);
		System.err.println(empName);
		System.err.println(city);

	}

	@DataProvider(name = "iterator")
	public Iterator<Object[]> getData() {
		Set<Object[]> set = new HashSet<Object[]>();
		set.add(new String[] { "hello" });
		Iterator<Object[]> iterator = set.iterator();
		return iterator;
	}

	@Test(dataProvider = "iterator")
	public void testIteraorData(String iterator) {
		System.err.println("iterator  .. " + iterator);

	}
}

测试结果:

001
Jack
London
002
John
New York
003
Mary
Miami
004
George
california
iterator  .. hello
PASSED: testEmployeeData("001", "Jack", "London")
PASSED: testEmployeeData("002", "John", "New York")
PASSED: testEmployeeData("003", "Mary", "Miami")
PASSED: testEmployeeData("004", "George", "california")
PASSED: testIteraorData("hello")

===============================================
    Default test
    Tests run: 5, Failures: 0, Skips: 0
===============================================

注意要点:

1.我们的@DataProvider方法可以通过读取Excel、数据库、properties文件等方式进行获取,这个取决于实际测试用例的设计和项目的需要,

2.其返回值是返回一个二维数组,数组内的二维元素个数必须和调用方法的参数一致,

3.这个一致包括了个数和顺序以及类型,否则如果类型不匹配或无法自动转换时就会抛出类型转换异常,而参数个数不匹配也会抛出参数缺失异常。

TestNG的组测试和组中组测试


如果我善良,
别认为我软弱。因为我明白,善良是本性,做人不能恶。

时间: 2024-09-21 01:35:39

Testng 的数据源 驱动测试 代码与配置的相关文章

TestNG方法测试及注意要点 代码及配置详解(解决testng方法不执行问题)

教你解决为什么TestNG中方法加了@Test注解,也在配置文件中配置了,但是方法就是不执行! 在使用TestNG进行测试时,使用配置文件的方式更容易于维护,但是经常遇到明明方法写了也配置执行了,但是run的时候代码就没有执行 看代码:(仔细看注释!) /** * * <p> * Title: TestngMethods * </p> * * <p> * 对应配置文件testng-methods.xml * Description: Testng的methods测试及配

03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

 1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEmapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--  namespace:命名空间,用来唯

was8.5配置完数据源之后测试连接mssqlserver 2008失败

问题描述 我是在windows2012安装was8.5,配置完数据源之后测试连接mssqlserver2008,was报错信息为:Thetestconnectionoperationfailedfordatasourcefingerprintonserverserver1atnodeWIN-PQ5HJKQ20USNode01withthefollowingexception:java.sql.SQLException:Cannotopendatabase"jdbc:sqlserver://127

TestNg监听器(一)-----监听器的类型和配置使用的方法---附加META-INF详解

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong/article/details/40404939 TestNg提供了监听器和拦截器的几个接口供我们自己开发扩展,通过实现这些接口,来自定义我们在测试中想要的行为 接口列表: IAnnotationTransformer (doc,javadoc) IAnnotationTransformer2 (doc,javadoc) IHookable (doc,javadoc) IInvokedMet

使用 Selenium 和 TestNG 进行编程式测试

Testng与junit对比 1. 总体概念 TestNG,即Testing, Next Generation,下一代测试技术,是一套根据JUnit 和 NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试. 2. 介绍 TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的过程有三个典型步骤: * 编写测试的 业务逻辑

《C语言程序设计进阶教程》一3.4 生产代码与测试代码分离

3.4 生产代码与测试代码分离本文讲的是C语言程序设计进阶教程一3.4 生产代码与测试代码分离,你应该编写可以检测出自身bug的程序.如果你想要检查一个数组是否被排序好了,不要在屏幕上打印出元素并用自己眼睛观察.应该写一个检查数组是否排序的函数.代码通常不会打印出调试信息.相反,写一些可以帮助你不用依靠眼睛就能调试的代码.你应该在编写程序之前就考虑编写测试代码.这是一个普遍的做法,叫作测试驱动的开发.怎样去编写测试代码呢?很多书都写了关于软件测试方面的内容.本节给你一个建议.考虑下面两个关于测试

语境驱动测试7原则

本文系<探索式测试实践之路>第1.2节,简要的讨论了"语境驱动测试"(Context Driven Testing)的7条原则. 探索式测试的奠基人和积极实践者Cem Kaner和James Bach都支持语境驱动测试.语境驱动测试的7条基本原则对于正确理解并应用探索式测试具有重要意义. 原则1:任何实践的价值都取决于其语境(Context). 这条原则几乎是不言自明的.中国人很早之前就有相似的认识,"南橘北枳"[ 语出<晏子春秋>,其成书于

一起谈.NET技术,走向ASP.NET架构设计——第二章:设计/ 测试/代码

再次申明一下:本系列不是讲述TDD的,只是用TDD来建立设计的思想.即便是用DDD,有时候还是结合TDD一起使用的. 开发方式比较 我们用下面的一段分析来引出今天的内容: 想想我们平时是如何在写代码:拿来需求,分析功能,编写功能代码.这样的方式,没有问题,大家也一直沿用很多年了.为了后面描述方便,我们称这种方式为传统流程. TDD的怎么做的: 拿来需求,分析功能,写功能测试代码,编写功能代码.其实两个过程差不多的,真的差不多的. 首先来分析下两种开发流程.个人认为:因为TDD多了一个角色转换的过

走向ASP.NET架构设计第二章:设计/ 测试/代码

再次申明一下:本系列不是讲述TDD的,只是用TDD来建立设计的思想.即便是用DDD,有时候还是结合TDD一起使用的. 开发方式比较 我们用下面的一段分析来引出今天的内容: 想想我们平时是如何在写代码:拿来需求,分析功能,编写功能代码.这样的方式,没有问题,大家也一直沿用很多年了.为了后面描述方便,我们称这种方式为传统流程. TDD的怎么做的: 拿来需求,分析功能,写功能测试代码,编写功能代码.其实两个过程差不多的,真的差不多的. 首先来分析下两种开发流程.个人认为:因为TDD多了一个角色转换的过