QTP/UFT 中的数据、关键字和混合自动化框架
数据驱动框架
数据驱动框架是由输入和输出数据的不同组合驱动的框架。
传递不同数据组合的一种方法是参数化。在这种方法中,我们使用 QTP 的不同功能。要了解有关参数化的更多信息,请访问 点击这里.
然而,在 DDF 中,脚本是用来进行参数化的。当 AUT 的功能必须用多个输入进行测试并捕获相应的输出时,这种框架非常有用。这些输入可以从外部文件(如数据库、Excel)读取, Outlook、文本文件等,并将相应的输出写回到相应的外部源。
数据驱动框架涉及的一般步骤是:
- 准备 测试用例 针对被测应用程序
- 将对象从 AUT 添加到 OR
- 根据测试用例编写脚本
该 UFT教程我们将使用Excel作为测试数据的外部来源,为示例测试用例开发数据驱动的框架设计。
步骤1)为被测应用程序准备测试用例
测试用例:打开订单号并获取该订单的客户名称。对不同的订单号重复相同的过程
外部源:Excel 文件
此示例的外部源是 Excel 文件。必须编写 Micro Focus UFT 中的 VB 脚本来打开 Excel 文件以读取测试数据。这可以采用分层方式实现。
1. 首先打开一个 Excel 文件,并将其作为应用程序
2. 然后必须从指定位置打开工作簿
3. 包含测试数据的工作表。
4. 最后,必须读取单元格。
步骤 2)将对象从 AUT 添加到 OR
测试用例准备好后,开始将所有需要的对象添加到存储库。在我们的测试用例中,需要添加的对象如下
- “打开文件夹”图标 航班预订申请
- 点击“打开文件夹”图标即可获取“订单号”复选框
- 订单号的 WinEdit 框(输入数字的地方)
- 确定按钮
- “名称”字段是一个 WinEdit 框。单击特定订单号的“确定”按钮后,此字段将填充名称。
一旦添加了所有必需的对象,对象存储库将如下所示:
步骤3)根据测试用例编写脚本
运行脚本之前,请确保包含测试数据的Excel文件已保存并关闭。
下面的脚本是从 Excel 中读取订单号并通过变量“vOrder”将其分配到应用程序中,并通过变量“vName”从应用程序中写入客户名称。
Excel 名称:航班DDF.xlsx
工作表名称:工作表 1
输出
一旦运行上述脚本,就可以从 Excel 中获取以下输出:
数据驱动框架也可以通过编写描述性程序来开发。
使用数据库作为 DDF 的外部源
如果外部源是数据库,则可以按照以下步骤执行相同的测试用例
- 编写 VBScript 建立数据库连接
- VBScript 打开记录集或表。
- VBScript 打开所需字段
- 从字段中读取特定单元格。
脚本
To Establish a Microsoft Database connection
司机 = {Microsoft 访问驱动程序 (*.mdb)}; DBQ =
记录集名称: OpenOrder
字段名称: 订单号,客户姓名
PS: Microsoft 无法使用以下脚本连接 Access 2010。
输出
DDF 的优点
- 可以在一次测试中读取大量测试数据并将其写入外部文件
- 循环语句用于重复相同的步骤进行多次迭代。因此减少了编码工作量
- 由于数据直接读取并写入外部文件,因此无需复制、粘贴或导出数据即可使用
- 可以从外部文件读取测试数据,并将输出写入任何其他外部文件
DDF 的缺点
- 开发此框架需要脚本知识
- 有时来自数据库等外部源的数据数量或组合可能会减慢甚至崩溃 QTP
关键字驱动框架
关键字驱动框架是一个由关键字驱动测试的框架。这里 关键字指的是用户定义的函数。在此框架中,创建关键字以执行特定的测试步骤或测试用例。然后调用这些关键字到驱动程序测试中,以在同一测试中运行多个测试用例。
要了解 QTP 中的用户定义函数,请访问 点击这里
总体来说,框架可以通过三种方式进行开发,以便进行测试。
- 记录并运行测试
- 将对象添加到本地存储库并为所有测试步骤编写脚本
- 为所有测试步骤编写描述性程序
在本教程中,通过录制和运行测试来开发 KDF。
我们的目标是针对五个不同的测试用例运行单个测试,例如登录应用程序、插入订单、打开订单、删除订单和关闭应用程序。因此,我们将记录这些测试用例的测试步骤,并分别使用关键字 Login、InsertOrder、OpenOrder、DeleteOrder 和 CloseApp 创建函数。
测试案例 1:登录应用程序
关键词: 登录 ()
录制脚本:
测试案例2:插入订单
关键词:插入订单()
录制脚本:
测试案例3:打开订单
关键词:开单()
录制脚本:
测试案例4:删除订单
关键词:删除订单()
录制脚本:
测试案例5:关闭应用程序
关键词:关闭应用程序()
录制脚本:
为不同测试用例创建的函数保存在函数库中,并与主测试关联,在主测试中调用所需测试用例的关键字即可,从而减少主测试中驱动脚本的大小。
这个简单框架的驱动脚本如下所示:
通过运行上述脚本,可以从一次测试中获得所有五个测试用例的实际结果。
性能
- 只需调用各自的关键字,即可在单个测试中运行任意数量的测试用例
- 为所有 Web/Windows 对象编写通用描述性编程并将它们作为关键字调用将有助于针对不同的动态应用程序运行相同的测试
- 减少驱动程序脚本的大小
缺点
- 如果要运行的测试用例数量很少,那么开发这些框架所需的时间就会非常长
- 在为同一测试中的许多应用程序设计 KDF 时,并不总是会记录步骤。
混合框架
混合框架是数据驱动框架(DDF)和关键字驱动框架(KDF)的组合,其中可以在同一测试中执行具有多个输入的多个测试用例。
在本文中,将在单个测试中执行与 KDF 中使用的相同测试用例。所有测试用例的关键字和脚本与 KDF 中的相同。但是,TC3:打开订单已参数化。因此,此测试用例的脚本被编写为从 Excel 文件接收订单号并将客户名称写入 excel 文件
测试案例 1:登录应用程序
关键词: 登录 ()
测试案例2:插入订单
关键词:插入订单()
测试案例3:针对多个订单号打开订单
关键词:开单()
Descript离子: 这里使用了与开发DDF相同的脚本,从而实现了多次迭代的测试用例。
脚本:
测试案例4:删除订单
关键词:删除订单()
测试案例5:关闭应用程序
关键词:关闭应用程序()
通过这种简单的方法,TC3 的参数化就完成了。如果适用,其他所有测试用例也可以在同一个测试中实现参数化。
例如,这是一种设计混合框架的非常简单的方法。同样的框架也可以用描述性编程来实现。
性能
- 与其他框架相比,使用混合框架设计的测试运行所需的时间相对较短
- 当我们需要同一测试套件中与特定测试用例相关的所有测试用例和输入时可以使用它。
坏处
- 需要清晰地了解不同框架的组合。