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



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

目录
相关文章
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
752 1
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
1141 0
|
数据采集 人工智能 监控
人工智能驱动的软件工程:测试左移的崛起价值
本文探讨了人工智能驱动下测试左移理念在软件工程中的重要性,分析测试工程师在需求评估、AI代码生成及遗留系统优化中的关键作用,揭示AI带来的挑战与机遇,并指出测试工程师需提升技能、关注合规与可维护性,以在AI时代保障软件质量。
731 89
|
安全 Java 测试技术
《深入理解Spring》单元测试——高质量代码的守护神
Spring测试框架提供全面的单元与集成测试支持,通过`@SpringBootTest`、`@WebMvcTest`等注解实现分层测试,结合Mockito、Testcontainers和Jacoco,保障代码质量,提升开发效率与系统稳定性。
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
515 4
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
657 13
|
人工智能 边缘计算 搜索推荐
AI产品测试学习路径全解析:从业务场景到代码实践
本文深入解析AI测试的核心技能与学习路径,涵盖业务理解、模型指标计算与性能测试三大阶段,助力掌握分类、推荐系统、计算机视觉等多场景测试方法,提升AI产品质量保障能力。
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
3008 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!