QTP Action参数传递深度解析

需积分: 12 4 下载量 68 浏览量 更新于2024-09-18 收藏 211KB DOC 举报
"QTP中action之间的参数传递详解" 在QuickTest Professional (QTP)自动化测试工具中,Action是组织测试脚本的一种方式,它允许我们将测试步骤分组,便于管理和重用。Action之间的参数传递是一项关键功能,使得数据可以在不同Action之间流动,从而实现更灵活的测试场景。以下是对QTP中Action参数传递的详细说明。 首先,我们需要理解Action的两种划分模式:Nested(嵌套)和Independent of each other(相互独立)。在本例中,我们使用了Nested模式创建了一个主Action(main Action),它会调用其他嵌套的Action,如log_in、new_order、insert_order、open_order和log_out。 在划分Action时,通常会在Expert视图下操作,因为这里可以更精确地控制代码的边界。使用“Edit-Action-Split Action”命令,选择相应的划分模式。当选择Nested模式时,新的Action将作为上一个Action的一部分,形成嵌套关系。而选择Independent of each other时,Action将被独立划分出来,它们之间没有直接的执行顺序关系。 在Action之间传递参数,QTP提供了多种方式: 1. **全局变量(Global Variables)**:全局变量在整个测试运行期间都存在,可以在任何Action中读取或修改。在Test的“Parameters”选项卡中定义全局变量,并在需要的地方引用它们。 2. **Action Parameters**:每个Action都可以有自己的参数,这些参数在调用Action时传递。在Action的Properties中,可以在“Parameters”选项卡定义输入和输出参数。在调用Action时,通过`RunAction`函数指定参数值。 ```vbscript RunAction "log_in", , , "username", "password" ``` 3. **Test或Test Suite级别的数据表(Data Table)**:QTP允许在Test或Test Suite级别使用数据表,这样可以为Action提供数据源。数据表中的每一行对应一次测试迭代,每列的数据会被传入相应的Action参数。 4. **Object Repository(对象存储库)**:虽然主要用于存储对象定义,但也可以用来传递数据。例如,可以通过修改对象的属性值来传递数据。 5. **函数和脚本**:通过编写VBS脚本,可以在Action之间动态计算和传递数据。例如,可以创建一个函数来获取特定值,并在Action中调用这个函数。 6. **Shared Object Repository(共享对象存储库)**:类似于对象存储库,可以用来存储和传递数据。 在上述示例中,假设我们在insert_order Action中生成了订单编号,我们需要将这个编号传递给open_order Action进行查询。可以使用Action参数或者全局变量来实现。在insert_order Action结束时,将订单编号保存到一个参数或全局变量中;然后在open_order Action开始时,读取这个值并用于查询操作。 总结起来,QTP中的Action参数传递是通过多种机制实现的,可以根据具体需求选择合适的方法。正确理解和运用这些机制,能够使测试脚本更加灵活和可维护,提高测试的效率和覆盖率。在实际操作中,要注意合理划分Action,避免过度分割导致的复杂性,同时也要确保数据传递的准确性。