什么是数据驱动测试?学习创建框架
数据驱动测试
数据驱动测试 是一种软件测试方法,其中测试数据以表格或电子表格格式存储。数据驱动测试允许测试人员输入单个测试脚本,该脚本可以对来自表的所有测试数据执行测试,并期望测试输出在同一表中。它也被称为表驱动测试或参数化测试。
数据驱动框架
数据驱动框架 是一个自动化测试框架,其中输入值从数据文件读取并存储到测试脚本中的变量中。它使测试人员能够将正面和负面测试用例构建到单个测试中。数据驱动框架中的输入数据可以存储在单个或多个数据源中,如 .xls、.xml、.csv 和数据库。
为什么要进行数据驱动测试?
数据驱动测试 这一点很重要,因为测试人员通常需要为单个测试准备多个数据集,而为每个数据集创建单独的测试可能非常耗时。数据驱动测试有助于将数据与测试脚本分开,并且可以针对不同的输入测试数据组合执行相同的测试脚本,并且可以高效地生成测试结果。
计费示例:
例如,我们要用 1000 个不同的数据集来测试具有多个输入字段的登录系统。
为了测试这一点,您可以采取以下不同的方法:
方法 1) 为每个数据集创建 1000 个脚本,并逐个单独运行每个测试。
方法 2) 手动更改测试脚本中的值并运行几次。
方法 3) 从 excel 表导入数据。从 excel 行中逐行获取测试数据并执行脚本。
在以上三种情况下,前两种方法既费力又费时。因此,最好采用第三种方法。
因此,第三种方法只不过是一个数据驱动框架。
如何创建数据驱动的自动化框架
考虑一下您想要测试应用程序的登录功能。
步骤1) 确定测试用例
- 输入正确的用户名和密码 – 登录成功
- 输入错误的用户名和正确的密码 – 登录失败
- 输入正确的用户名和错误的密码 – 登录失败
步骤2) 为上述 3 个测试用例创建详细的测试步骤
| 测试用例# | 描述 | 测试步骤 | 测试数据 | 预期成绩 |
|---|---|---|---|---|
| 1 | 检查登录凭证是否有效 |
|
用户名:有效 密码:有效 | 登录成功 |
| 2 | 检查登录凭据是否无效 |
|
用户名: 无效 密码: 有效 | 登录失败 |
| 3 | 检查登录凭据是否无效 |
|
用户名:有效密码:无效 | 登录失败 |
步骤3) 创建测试脚本
如果您发现测试步骤在 3 个测试步骤中保持通用。您需要创建一个测试脚本来执行这些步骤
// This is Pseudo Code
// Test Step 1: Launch Application
driver.get("URL of the Application");
// Test Step 2: Enter Username
txtbox_username.sendKeys("valid");
// Test Step 3: Enter Password
txtbox_password.sendKeys("invalid");
// Test Step 4: Check Results
If (Next Screen) print success else Fail
步骤4) 使用输入测试数据创建 excel/csv
步骤5) 步骤修改脚本以循环输入测试数据。输入命令也应参数化
// This is Pseudo Code
// Loop 3 Times
for (i = 0; i & lt; = 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
- 输入错误的用户名和密码 – 登录失败
- 输入正确的用户名和密码空白 – 登录失败
- 输入空白用户名和空白密码–登录失败
等
最佳数据驱动测试工具
1) 测试sigma
测试sigma 是一个基于云的数据驱动测试平台,我发现它通过将测试逻辑与测试数据解耦,极大地提高了测试覆盖率,对我来说非常宝贵。它专为需要针对各种数据集、极端情况和业务场景验证应用程序的团队而设计,无需创建冗余的测试脚本,从而简化了整个数据驱动测试工作流程。
在我的数据驱动测试项目中,我利用 Testsigma 的参数化功能,针对来自 Excel 和 CSV 文件等外部数据源的多种数据组合执行相同的测试场景。该平台能够自动遍历数据行,显著扩展了我的测试覆盖范围;而精细的数据级结果报告则帮助我快速识别哪些特定的输入组合导致了 Web、移动和 API 层面的故障。
特色:
- 外部数据源集成: 此功能支持直接连接到 Excel 表格、CSV 文件和数据库表,实现集中式测试数据管理。它消除了硬编码值,并允许您独立于测试逻辑维护测试数据。您无需修改测试脚本即可更新数据集,从而确保灵活性和可维护性。我利用此功能高效地管理数百种数据变体,同时保持测试场景的清晰性和可重用性。
- 自动多行数据迭代: Testsigma 能够在一次测试运行中自动执行跨多行数据的测试场景,从而显著扩展测试覆盖范围。您可以验证大量的输入组合、边界条件和业务规则变体,而无需重复编写测试用例。此功能能够透明地处理数据排序和迭代逻辑。我发现它在进行全面的回归测试时尤为有效,且脚本维护成本极低。
- 动态测试步骤参数化: 它允许您用动态参数替换静态值,这些动态参数会在执行过程中从外部数据源提取数据。您可以配置测试步骤,使其能够根据数据集的值适应不同的输入、条件和预期结果。此功能支持复杂的数据转换和条件逻辑。我依靠它来构建灵活的测试场景,以满足各种业务需求和用户工作流程。
- 数据级执行报告: 该平台可生成详细报告,按数据组合细分测试结果,准确显示哪些输入通过或失败。您可以分析模式、识别问题数据范围,并将失败追溯到特定的数据集行。此功能提供可视化仪表板和可导出的分析结果,方便与利益相关者沟通。我建议利用这些洞察结果来优先改进数据质量并优化测试数据策略。
- 跨平台数据驱动支持: Testsigma 将数据驱动功能扩展到 Web、移动和 API 测试领域,并整合到统一的工作流程中。您可以应用相同的数据集来验证不同应用层和技术之间的一致性。此功能通过参数化的数据流确保了全面的端到端验证。我曾使用它来验证后端数据处理是否能同时在多个平台上正确反映到前端界面中。
优点
缺点
定价:
- 价格: 包含数据驱动测试功能的定制化定价方案,是综合订阅计划的一部分。
- 免费试用: 14天免费试用
14天免费试用
数据驱动测试的最佳实践
下面给出了数据驱动测试的最佳测试实践:
- 在数据驱动测试过程中使用现实信息是理想的
- 测试流程导航应在测试脚本中编码
- 利用有意义的数据驱动虚拟 API
- 使用数据驱动动态断言
- 测试正面和负面结果
- 重新利用数据驱动的功能测试来提高安全性和性能
数据驱动测试的优势
数据驱动有很多优点,其中包括:
- 允许在回归测试期间使用多组数据值测试应用程序
- 测试数据和验证数据可以组织在一个文件中,并且与测试用例逻辑分开。
- 基于该工具,可以将测试脚本放在一个存储库中。这使得文本易于理解、维护和管理。
- 动作和函数可以在不同的测试中重复使用。
- 有些工具会自动生成测试数据。当需要大量随机测试数据时,这很有用,有助于节省时间。
- 数据驱动测试可以执行开发的任何阶段。数据驱动测试用例通常合并在单个流程中。但是,它可以用于多个测试用例。
- 允许开发人员和测试人员明确区分测试用例/脚本的逻辑和测试数据。
- 相同的测试用例可以执行多次,这有助于减少测试用例和脚本。
- 测试脚本中的任何更改都不会影响测试数据
数据驱动测试的缺点
数据驱动自动化测试方法的一些缺点是:
- 测试质量取决于实施团队的自动化技能
- 测试大量数据时,数据验证是一项耗时的任务。
- 维护是一个大问题,因为数据驱动测试需要大量的编码。
- 需要高水平的技术技能。测试人员可能必须学习一门全新的脚本语言。
- 将会有更多文档。主要涉及脚本管理测试基础设施和测试结果。
- 需要像记事本这样的文本编辑器来创建和维护数据文件。




