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

简介: JUnit中有讲述使用注解的方式进行数据源读取进行自动循环测试的方法,在TestNG中也提供了相应的方法 public class TestngDataProvider { /** * 数组内的每个元素都会作为一个用例数据被执行 On execution testEmployeeData() will be executed 4 * times, * * 数据源可

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的组测试和组中组测试



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

目录
相关文章
|
13天前
|
jenkins Devops 测试技术
单元测试与质量保证:确保Visual Basic代码的健壮性
【4月更文挑战第27天】在VB开发中,单元测试是保证代码质量和软件健壮性的关键。本文介绍了单元测试的基础,包括其定义和好处,如提高代码质量、促进重构。接着,讨论了MSTest、NUnit和xUnit等VB单元测试工具。遵循TDD原则和最佳实践,编写独立、有针对性的测试,并注重测试速度和覆盖率。通过示例展示了如何在Visual Studio中设置和运行测试。最后,提到了持续集成和自动化测试工具,如Jenkins和静态代码分析工具,以提升软件开发效率和质量。单元测试不仅是技术手段,更是提升团队协作和软件工程水平的文化体现。
|
4天前
|
机器学习/深度学习 数据采集 敏捷开发
探索软件测试中的AI驱动自动化:未来趋势
【5月更文挑战第6天】 随着人工智能(AI)技术的不断进步,其在软件测试领域的应用正变得日益重要。本文将探讨AI如何革新现有的软件测试流程,并预测其对未来测试实践的影响。我们将深入分析AI在测试用例生成、缺陷预测以及测试执行等方面的应用,并讨论实现这些技术的挑战和潜在好处。文章的目标是为读者提供一个清晰的视图,展示AI如何增强测试效率和有效性,同时指出实施过程中需要注意的关键因素。
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试中AI驱动的决策框架设计与实现
【5月更文挑战第5天】 在软件测试领域,自动化测试已成为提升测试效率和质量的关键手段。然而,随着软件系统的复杂性增加,传统的自动化测试方法面临挑战,尤其在测试用例的生成、执行及结果分析等方面。本文提出一种基于人工智能(AI)的自动化测试决策框架,旨在通过智能化的算法优化测试过程,并提高异常检测的准确率。该框架结合机器学习和深度学习技术,能够自学习历史测试数据,预测高风险变更区域,自动生成针对性强的测试用例,并在测试执行过程中实时调整测试策略。此外,通过自然语言处理(NLP)技术,该框架还能对测试结果进行语义分析,进一步提供更深入的洞察。本研究不仅增强了自动化测试工具的智能性,也为软件质量保证提
|
6天前
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
17 3
|
6天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成
【5月更文挑战第4天】随着人工智能(AI)技术的飞速发展,其在软件测试领域的应用也日益广泛。特别是在自动化测试过程中,AI技术能够显著提高测试用例的生成效率和质量。本文将探讨AI在自动化测试用例生成中的应用原理、优势以及面临的挑战,并展示通过AI技术优化测试流程的实际案例。
41 8
|
11天前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
29 1
|
11天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
25 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
11天前
|
SQL 人工智能 自然语言处理
让老板成为数据分析师--ChatGpt链接本地数据源实战测试
本文探究ChatGpt等AI机器人能否帮助老板快速的做数据分析?用自然语言同老板进行沟通,满足老板的所有数据分析的诉求?
|
11天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
13天前
|
测试技术 开发者
【专栏】测试驱动开发(TDD)和行为驱动开发(BDD)的核心概念与实践
【4月更文挑战第27天】本文探讨了测试驱动开发(TDD)和行为驱动开发(BDD)的核心概念与实践。TDD强调先写测试用例,通过测试推动设计,确保代码质量与可维护性。BDD侧重软件行为和业务价值,提倡使用通用语言描述行为,减少沟通障碍。选择TDD或BDD取决于项目复杂性、团队技能和业务需求。理解两者差异有助于团队做出合适的选择,发挥测试的最大价值。

热门文章

最新文章