以前查看过对象参数化的资料说SetTOProperty 方法可以进行对象的参数化,但一直没有自己亲自实践一下,今天终于自己试了试确实如此,就其原理还是要归根到对qtp脚本运行的原理的理解上,SetTOProperty 可以修改对象库中的属性的值,而qtp脚本在运行的时候要匹配对象库中的对象和运行时的对象(对象的匹配当然是要依靠对象的属性去定位),如果匹配成功才能定位到对象,所以就会考虑到将对象库中对象的属性值进行参数化,这里SetTOProperty并不是真正的改变了对象库中属性的值而是在脚本运行的过程中动态的去修改,当脚本在运行结束的时候,查看属性值仍然为修改前的值
这里就不多说了,接下来总结了几种对象参数化的方法:
第一种:使用Description 对象
第二种:使用描述性编程
第三种:使用SetTOProperty 方法
第四种:通过对象库中参数化对象
前2种方法特点就是不依赖对象库,运行的时候可以将对象库中对应的对象删除,后面2种将依赖对象库
例子:产品中的查询日志页面的翻页功能的link对象
原代码如下:
Browser("xx").Page("xx").Image("s").Click
Browser("xx").Page("xx").Image("s_2").Click
Browser("xx").Page("xx").Link("查看日志").Click
Browser("xx").Page("xx").Frame("WorkArea").WebEdit("EVENT_TIME_BEGIN").Object.value="2010-11-13 9:00:00"
Browser("xx").Page("xx").Frame("WorkArea").WebEdit("EVENT_TIME_END").Object.value="2010-11-24 9:00:00"
Browser("xx").Page("xx").Frame("WorkArea").WebButton("提 交").Click
Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click
以下将参数化Link对象,使其能分别按10,20,50 数进行翻页显示
'------使用Description 对象----
Set Desc=description.Create()
Desc("text").value=v_page
Desc("index").value=0
Desc("html tag").value="A"
Browser("xx").Page("xx").Frame("WorkArea").Link(Desc).Click
'-----------使用描述性编程--------------------
Browser("xx").Page("xx").Frame("WorkArea").Link("text:="&v_page,"index:=0","html tag:=A").Click
'--------------使用SetTOProperty 方法------------(依赖对象库),这里可以用GetTOProperty方法查看我们修改的属性值
Browser("xx").Page("xx").Frame("WorkArea").Link("10").SetTOProperty "text",v_page
Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click
'-----------通过对象库中参数化对象-----------(依赖对象库)需要在对象库中将Link对象本身进行参数化
Browser("xx").Page("xx").Frame("WorkArea").Link("10").Click
分享到:
相关推荐
下面介绍几种常用的调试方法: 1. **SingleStep**: 单步执行测试步骤。这可以通过菜单栏中的“Debug”选项来实现,具体操作是选择“Debug > Step Into”或直接按F11键。当执行到某个函数时,QTP会进入该函数并执行...
【QTP订机票参数化测试代码】是一种自动化测试技术,主要应用于航空行业的在线订票系统。QuickTest Professional(QTP)是HP公司开发的一种功能强大的自动化测试工具,它支持多种应用环境,包括Web、Windows、Java等...
参数化主要有以下几种方式: 1. **Excel文件参数化**:这是最常见的方式,我们可以在Excel工作表中定义测试数据,然后在QTP中通过导入工作表来使用这些数据。在“参数”选项卡下,添加新参数,选择数据源为Excel...
Desktop对象允许我们访问Windows桌面的顶层对象,它包含了几个重要的方法: 1. **CaptureBitmap方法**:这个方法用于屏幕截图。例如,`Desktop.CaptureBitmap("filename.bmp", Overwrite)`会将当前屏幕内容保存为一...
参数化是指在测试过程中使用不同的数据集来执行同一个测试脚本。这是实现数据驱动测试的关键步骤。 以上是对《精通QTP——自动化测试技术领航》部分章节内容的详细介绍,通过学习这些知识点,读者可以系统地掌握QTP...
2. **QTP对象模型**:QTP通过对象模型来识别和操作应用程序的元素。VCTE_L207_QTP_Theory02_v1.0.doc可能详细解释了如何识别Web页面上的各种对象,如HTML元素、JavaScript对象和ActiveX控件,并演示了如何自定义对象...
5. **动作和参数化**:QTP的动作是一种组织测试步骤的方式,样章可能涵盖如何创建、修改和链接动作,以及如何进行参数化以实现数据驱动测试。 6. **检查点**:检查点是验证应用程序状态的关键,样章会教授如何设置...
11. **参数化**:参数化允许将脚本中的硬编码值替换为动态值,使测试更具可复用性和灵活性。这可以是通过数据表、函数或外部文件实现的。 12. **回归测试**:QTP在回归测试中扮演重要角色,它可以快速重新运行已...
QTP还提供了几种高级测试方法,如参数化(用于改变测试数据,以运行多组测试)、事务(用于衡量特定操作的性能)和关联(用于处理动态对象,如网页元素的ID或位置可能会变化)。此外,QTP支持自定义函数库,允许开发...
10. **参数化**:通过参数化,测试脚本可以从外部源获取数据,如配置文件或环境变量,使测试更加灵活且适应不同环境。 在学习和实践中,通过分析和运行提供的“QTP自动化框架脚本示例”,我们可以更好地理解和掌握...
以下是关于QTP连接这四种数据库的具体说明: 1. SQL数据库: SQL数据库连接通常基于ODBC(Open Database Connectivity)驱动。在示例中,使用了以下连接字符串: ``` strCnn = "DRIVER={MySQL ODBC 3.51Driver};...
这部分将讲解如何设计测试框架,如数据驱动测试和关键字驱动测试,并介绍如何使用QTP的内置参数化功能,使测试脚本能适应不同的输入数据。 第四部分:智能识别与对象质量中心 QTP的智能识别技术能自动适应应用程序...
QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。 11)环境变量(EnvironmentVariables)。在一个test中,环境变量可以被当前test中所有action共享。环境变量也有两种...
`testData`文件夹可能包含了各种测试数据的Excel文件(如`testCases.xls`),测试脚本会根据这些数据进行动态参数化测试。 6. **Result**:测试结果的汇总和分析在此模块进行。`result`文件夹可能包含测试报告,...
为了全面测试系统的登录功能,我们设计了以下几种测试场景: 1. **输入用户名、密码为空**:期望系统提示“Please enter agent name”。 2. **输入用户名为空,密码不为空**:期望系统提示“Please enter agent ...
检查点是QTP中一种验证方法,用于比较测试执行时的实际值与预期值。它可以是文本、图像、数值、数据库记录等,确保程序运行结果正确无误。 4. **参数化(Parameterization)**: Test3_parameter可能涉及如何使用...
本文将详细介绍几种在QTP中调用Java程序的方法。 #### 二、基础知识 在深入探讨具体的调用方法之前,我们首先需要了解几个基础概念: - **QTP**:一款由HP公司开发的功能性自动化测试工具,用于帮助测试人员创建...
两种方法参数化 link - **方法**: 提供两种不同的方法来实现对 link 的参数化。 - **比较**: 分析两种方法的优缺点及适用场景。 #### 40. WScript - **介绍**: WScript (Windows Script Host) 是一种脚本语言执行...
QTP教程涵盖了从工具的基本概念到具体实践操作,包括自动化测试的好处、工作流程、录制脚本、执行测试、创建检查点、参数化和输出值等内容。学习并掌握这些知识点,新手能够快速上手QTP,进行高效且准确的自动化测试...
QTP提供了几种检查点: - 对象检查:验证应用程序中对象的属性和状态。 - 网页检查:检查网页的特定部分,例如特定的链接或图片。 - 文字检查:验证网页中特定文字的存在与否。 - 表格检查:确保表格中的数据符合...