共享操作信息
相关项: GUI 测试
有多种方式可以在操作之间共享或传递值。
全局数据表
将值存储在数据表中,即可将一个操作中生成的值与测试中的其他操作共享。可以选择将该值置于“全局”表或“操作”表中。如果将该值置于全局表中,则其他操作可以将值作为输入参数用于“数据”窗格。将值存储在“数据”窗格中的方法有,将值输出到全局数据表以及使用编辑器中的 Data Table、Sheet 和 Parameter 对象和方法添加或修改值。
如果在操作中创建数据表参数或输出值步骤,并选择使用“当前操作表 (本地)”选项,请确保在“操作调用属性”对话框的“运行”选项卡中设置操作的相关运行设置。
示例:
假设要测试航班预订应用程序。当用户登录到应用程序时,页面顶端将显示用户的全名。随后,用户购买机票时,用户必须输入她或他信用卡上所列的姓名。
假设您的测试包括三个操作 Login、SelectFlight 和 PurchaseTickets,并设置为对每次迭代使用不同登录名来运行多次迭代。在 Login 操作中,可以创建文本输出值以存储用户的显示名称。在 PurchaseTickets 操作中,可以使用包括用户全名的“数据”窗格列参数化“信用卡所有者”编辑框中设置的值。
环境变量
如果您的测试不需要运行多次迭代,或希望共享的值对所有迭代都为常量,则可以使用用户定义的内部环境变量,供测试中的所有本地操作访问。
例如,假设要测试航班预订应用程序是否正确检查用户输入的信用卡过期日期。如果输入的过期日期早于预定的航班出发日期,则应用程序应当请求其他信用卡。在 SelectFlight 操作中,可以将出发日期编辑框中输入的值存储在环境变量中。在 PurchaseTickets 操作中,可以比较过期日期编辑框的值与环境变量中存储的值。
字典对象
除了使用环境变量在操作之间共享值外,另一种方法就是使用字典对象。字典对象允许您将值赋给变量,在创建字典对象所在的测试中调用的所有操作 (包括本地操作和外部操作) 均可访问这些变量。
要使用字典对象,必须先用 ProgID ="Scripting.Dictionary" 将保留的对象添加到注册表 (在 HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects\ 中) 。
HKEY_CURRENT_USER\Software\Mercury Interactive\QuickTest Professional\MicTest\ReservedObjects\GlobalDictionary
将保留的字典对象添加到注册表并重新启动 UFT One 后,可以在一个操作的字典中添加和删除值以及在从同一个测试调用的其他操作中检索值。
注释: 出于向后兼容性考虑,一些注册表项特意包括了以前的公司品牌。
有关更多详细信息,请参阅VBScript 参考。
示例:
假设要从 PurchaseTickets 操作中访问 SelectFlight 操作中设置的出发日期。可以在 SelectFlight 操作的字典中添加 DepartDate WebEdit 对象的值,如下所示:
GlobalDictionary.RemoveAll
然后,在 PurchaseTickets 操作中检索日期,如下所示:
Dim CompareDate
CompareDate=GlobalDictionary("DateCheck")
输出值
您可以在操作中创建输出值步骤以传递步骤的输出。然后在“输出选项”中,您可以将输出值传递到操作输出参数,该参数随后可供所有后续或同级操作访问。