什么是数据驱动测试?学习创建框架

数据驱动测试

数据驱动测试是一种软件测试方法,其中测试数据以表格或电子表格形式存储。数据驱动测试允许测试人员输入单个测试脚本,该脚本可以执行对表格中所有测试数据的测试,并期望在同一表格中得到测试输出。它也称为表格驱动测试或参数化测试。

数据驱动框架

数据驱动框架是一种自动化测试框架,其中输入值从数据文件中读取并存储到测试脚本中的变量中。它使测试人员能够将正向和反向测试用例构建到单个测试中。数据驱动框架中的输入数据可以存储在单个或多个数据源中,例如 .xls、.xml、.csv 和数据库。

Data Driven Framework

为什么选择数据驱动测试?

数据驱动测试之所以重要,是因为测试人员经常对单个测试拥有多个数据集,为每个数据集创建单独的测试可能非常耗时。数据驱动测试有助于将数据与测试脚本分离,并且相同的测试脚本可以针对不同的输入测试数据组合执行,从而有效地生成测试结果。

示例

例如,我们想要使用 1000 个不同的数据集测试具有多个输入字段的登录系统。

要测试此功能,您可以采用以下不同方法

方法 1) 为每个数据集创建 1000 个脚本,然后一个接一个地单独运行每个测试。

方法 2) 手动更改测试脚本中的值并运行多次。

方法 3) 从 Excel 表格中导入数据。逐行从 Excel 中获取测试数据并执行脚本。

在给定的三种场景中,前两种费力且耗时。因此,理想的做法是遵循第三种方法。

因此,第三种方法就是数据驱动框架。

如何创建数据驱动自动化框架

Data Driven Automation Framework

假设您要测试应用程序的登录功能。

步骤 1) 确定测试用例

  • 输入正确的用户名和密码 – 登录成功
  • 输入不正确的用户名和正确的密码 – 登录失败
  • 输入正确的用户名和不正确的密码 – 登录失败

步骤 2) 为上述 3 个测试用例创建详细的测试步骤

测试用例# 描述 测试步骤 测试数据 预期结果
1 检查有效凭据的登录
  1. 启动应用程序
  2. 输入用户名密码
  3. 点击确定
  4. 检查结果
用户名:有效 密码:有效 登录成功
2 检查无效凭据的登录
  1. 启动应用程序
  2. 输入用户名密码
  3. 点击确定
  4. 检查结果
用户名:无效 密码:有效 登录失败
3 检查无效凭据的登录
  1. 启动应用程序
  2. 输入用户名密码
  3. 点击确定
  4. 检查结果
用户名:有效 密码:无效 登录失败

步骤 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 文件

Data Driven Automation Framework

步骤 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,测试脚本可以用于循环以下测试用例

  • 输入不正确的用户名和不正确的密码 – 登录失败
  • 输入正确的用户名和空密码 – 登录失败
  • 输入空用户名和空密码 – 登录失败

等等

数据驱动测试的最佳实践

以下是数据驱动测试的最佳实践

  • 在数据驱动测试过程中使用真实信息是理想的
  • 测试流程导航应在测试脚本中编码
  • 使用有意义的数据驱动虚拟 API
  • 使用数据驱动动态断言
  • 测试积极和消极结果
  • 将数据驱动功能测试重新用于安全和性能

数据驱动测试的优点

数据驱动测试有很多优点,其中一些是

  1. 允许在回归测试期间使用多组数据值测试应用程序
  2. 测试数据和验证数据可以组织在一个文件中,并且与测试用例逻辑分离。
  3. 根据工具,可以将测试脚本存储在单个存储库中。这使得文本易于理解、维护和管理。
  4. 动作和函数可以在不同的测试中重复使用。
  5. 有些工具会自动生成测试数据。当需要大量随机测试数据时,这很有用,有助于节省时间。
  6. 数据驱动测试可以执行开发中的任何阶段。数据驱动测试通常合并到单个流程中。但是,它可以在多个测试用例中使用。
  7. 允许开发人员和测试人员将测试用例/脚本的逻辑与测试数据清晰分离。
  8. 相同的测试用例可以多次执行,这有助于减少测试用例和脚本的数量。
  9. 测试脚本中的任何更改都不会影响测试数据

数据驱动测试的缺点

数据驱动自动化测试方法的一些缺点是

  1. 测试质量取决于实施团队的自动化技能
  2. 测试大量数据时,数据验证是一项耗时的任务。
  3. 维护是一个大问题,因为数据驱动测试需要大量编码。
  4. 需要高水平的技术技能。测试人员可能需要学习一种全新的脚本语言。
  5. 将有更多的文档。主要与脚本管理测试基础设施和测试结果相关。
  6. 需要像记事本这样的文本编辑器来创建和维护数据文件。

结论

  • 数据驱动是一种测试自动化框架,它以表格或电子表格格式存储测试数据。
  • 在数据驱动测试自动化框架中,输入数据可以存储在单个或多个数据源中,例如xls、XML、csv和数据库。
  • 为每个数据集创建单独的测试是一个漫长而耗时的过程。数据驱动测试框架通过将数据与功能测试分离来解决此问题。
  • 在数据驱动测试中,使用真实信息是理想的选择
  • 它允许在回归测试期间使用多组数据值测试应用程序
  • 这种方法的缺点是它依赖于实施团队的自动化技能