数据驱动测试
数据驱动测试是一种将测试数据以表格或电子表格形式存储的软件测试方法。数据驱动测试允许测试人员输入单个TE,也称为表驱动测试或参数化测试。
数据驱动框架
数据驱动框架是一个自动化测试框架,其中输入值从数据文件中读取并存储到测试脚本中的变量中。数据驱动框架中的输入数据可以存储在单个或多个数据源中,如.xls、.xml、.csv和数据库。

在本教程中,将了解
- 什么是数据驱动测试?
- 为什么选择数据驱动测试?
- 如何创建数据驱动自动化框架
- 数据驱动测试的最佳实践:
- 数据驱动测试的优势
- 数据驱动测试的缺点:
为什么选择数据驱动测试?
数据驱动测试很重要,因为测试人员经常对单个测试有多个数据集,并且为每个数据集创建单独的测试可能很耗时。数据驱动测试有助于将数据与测试脚本分开,并且可以针对输入测试数据的不同组合执行相同的测试脚本,并且可以高效地生成测试结果。
示例:
例如,我们希望使用具有1000个不同数据集的多个输入字段来测试登录系统。
要测试这一点,可以采用以下不同的方法:
方法1) 为每个数据集创建1000个脚本,并逐个单独运行每个测试。
方法2) 手动更改测试脚本中的值并运行多次。
方法3) 从EXCEL表格导入数据。逐个从EXCEL行中取出测试数据并执行脚本。
在给定的三个场景中,前两个场景既费力又耗时。因此,理想的做法是遵循第三种方法。
因此,第三种方法只是一个数据驱动的框架。
如何创建数据驱动自动化框架
假设要测试应用程序的登录功能。
步骤1) 确定测试用例
- 输入正确的用户名和密码-登录成功
- 输入错误的用户名和正确的密码-登录失败
- 输入正确的用户名和错误的密码-登录失败
步骤2) 为上述3个测试用例创建详细的测试步骤
测试用例编号 | 描述 | 测试步骤 | 测试数据 | 预期结果 |
---|---|---|---|---|
1 | 检查登录以获得有效凭据 |
启动应用程序
输入用户名和密码 单击确定 检查结果 |
用户名:有效
密码:有效 |
登录成功 |
2 | 检查登录是否有无效凭据 |
启动应用程序
输入用户名和密码 单击确定 检查结果 |
用户名:无效
密码:有效 |
登录失败 |
3 | 检查登录是否有无效凭据 |
启动应用程序
输入用户名和密码 单击确定 检查结果 |
用户名:有效
密码:无效 |
登录失败 |
步骤3) 创建测试脚本
如果观察到,通过3个测试步骤,测试步骤仍然是通用的。需要创建一个Test脚本来执行这些步骤
1 2 3 4 5 6 7 8 9 | // This is Pseudo Code // Test Step 1: 打开应用 driver.get( "URL of the Application" ); // Test Step 2: 输入用户名 txtbox_username.sendKeys( "valid" ); // Test Step 3: 输入密码 txtbox_password.sendKeys( "invalid" ); // Test Step 4: Check Results If (Next Screen) 打印成功或者失败 |
步骤4) 使用输入测试数据创建EXCEL/CSV
步骤5) 步骤修改脚本以循环遍历输入测试数据。输入命令也应参数化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // This is Pseudo Code // Loop 3 Times for (i = 0 ; i <= 3 ; i++) { // Read data from Excel and store into variables int input_1 = ReadExcel(i, 0 ) ; int input_2 = ReadExcel(i, 1 ) ; // Test Step 1: Launch Application driver.get( "URL of the Application" ); // Test Step 2: Enter Username txtbox_username.sendKeys(input_1) ; // Test Step 3: Enter Password txtbox_password.sendKeys(input_2) ; // Test Step 4: Check Results If(Next Screen) print success else Fail } |
以上只是3个测试用例。只需将测试数据值附加到Excel,测试脚本就可以用于循环以下测试用例
- 输入错误的用户名和密码-登录失败
- 输入正确的用户名和密码为空-登录失败
- 输入空用户名和空密码-登录失败
数据驱动测试的最佳实践:
以下是针对数据驱动测试的最佳测试实践:
- 在数据驱动的测试过程中使用真实的信息是理想的
- 测试流导航应该编码在测试脚本中
- 使用有意义的数据推动虚拟API
- 使用数据驱动动态断言
- 检测结果既有成功结果,也有失败结果
- 重新调整数据驱动的功能测试的用途,以实现安全性和性能
数据驱动测试的优势
数据驱动提供了许多优势,其中一些优势包括:
- 允许在回归测试期间使用多组数据值测试应用程序
- 测试数据和验证数据可以只组织在一个文件中,并且它与测试用例逻辑是分开的。
- 基于该工具,可以将测试脚本放在单个存储库中。这使得文本易于理解、维护和管理。
- 动作和函数可以在不同的测试中重用。
- 有些工具会自动生成测试数据。这在需要大量随机测试数据时非常有用,有助于节省时间。
- 数据驱动测试可以执行开发的任何阶段。数据-但是,它可以在多个测试用例中使用。
- 允许开发人员和测试人员清楚地将他们的测试用例/脚本的逻辑与测试数据分开。
- 相同的测试用例可以多次执行,这有助于减少测试用例和脚本。
- 测试脚本中的任何更改都不会影响测试数据
数据驱动测试的缺点:
数据驱动自动化测试方法的一些缺点是:
- 测试的质量取决于实现团队的自动化技能
- 在测试大量数据时,数据验证是一项耗时的任务。
- 维护是一个大问题,因为数据驱动测试需要大量编码。
- 需要高水平的技术技能。测试人员可能必须学习一种全新的脚本语言。
- 将会有更多的文档。主要涉及脚本管理、测试基础设施和测试结果。
- 需要像记事本这样的文本编辑器来创建和维护数据文件。
结论:
- 数据驱动是以表格或电子表格格式存储测试数据的测试自动化框架。
- 在数据驱动的测试自动化框架中,输入数据可以存储在单个或多个数据源中,如XLS、XML、CSV和数据库。
- 为每个数据集创建单独的测试是一个漫长而耗时的过程。数据驱动测试框架通过将数据与功能测试分离,解决了这一问题。
- 在数据驱动测试中,使用真实信息是理想的选择
- 允许在回归测试期间使用多组数据值测试应用程序
- 缺点在于依赖于实现团队的自动化技能。