QTP技术集锦

上传人:jiups****uk12 文档编号:40018860 上传时间:2018-05-22 格式:DOC 页数:219 大小:3.75MB
返回 下载 相关 举报
QTP技术集锦_第1页
第1页 / 共219页
QTP技术集锦_第2页
第2页 / 共219页
QTP技术集锦_第3页
第3页 / 共219页
QTP技术集锦_第4页
第4页 / 共219页
QTP技术集锦_第5页
第5页 / 共219页
点击查看更多>>
资源描述

《QTP技术集锦》由会员分享,可在线阅读,更多相关《QTP技术集锦(219页珍藏版)》请在金锄头文库上搜索。

1、QTP 技术集锦技术集锦文档文档Version 1.0Technology Tips1.QTP 描述性编程描述性编程【摘要】自动化功能测试是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自 动捕获,检测,和重复用户交互的操作,能够辨认缺陷并且确保那些跨越多个应用程序和数据库的业 务流程在初次发布就能避免出现故障,并且保持长期可靠运行。在市场上用的比较多的主要包括 Mercury 公司的 WinRunner,QuickTest Professional 和 IBM 的 Rational Robot。笔者对于 QuickTest Professional 相对较为熟悉,希望有机会向

2、大家逐步介绍 QuickTest Professional 中的 一些要点及技巧。在本文里主要介绍了 QuickTest Professional 中的一项核心内容 Descriptive Programming,希望对大家有所借鉴和帮助。在文中,为了方便起见,将 QuickTest Professional 简 称 QTP。(本文是基于 Quick Test Professional V8.0 而写)。【关键词】描述性编程 Descriptive Programming功能测试 Functional Test专家视图 Expert View关键字视图 Keyword View对象模型 Obj

3、ect Model运行时对象 Run-Time Object测试对象 Test Object【正文】QTPQTP 功能测试基本方法功能测试基本方法我们简单介绍一下有关功能测试的基本方法,这实际上对于所有自动化功能测试产品来说都是一样的。 一般情况下,用 QTP 来进行功能测试的基本方法主要包括三个主要阶段:1、创建测试或组建首先可以通过在应用程序或网站上录制会话,或者建立对象库并使用关键字驱动功能向关键字视图中 手动添加步骤来创建测试或组件。在 QTP 里面我们可以通过两种方式添加步骤来创建测试或组件:在应用程序或网站上录制会话。 建立对象库并使用这些对象在关键字视图或专家视图中手动添加步骤

4、自动化测试Pag 2然后在在测试或组件中插入检查点,检查页面、对象或文本字符串中的特定值或特征,通过它可以标 识网站或应用程序是否正常运行。或是通过用参数替换固定值扩展测试或组件的范围。提供数据表中 的数据,定义环境变量和值,定义测试、组件或操作参数和值,或者使用 QTP 生成随机数字或当前用 户和测试数据等。最后如果需要的话使用 QTP 中众多的功能测试功能来增强测试或组件或添加编写语句来实现更复杂的 测试目标。2、运行测试和组建控制运行会话,帮助标识和消除测试或组件中的缺陷。使用“单步执行”、“单步跳过”和“单步退 出”命令逐步运行测试或组件,或设置断点使测试或组件在预定点暂停。每当测试或

5、组件在断点处停 止时,可以在“调试查看器”中查看其变量的值。3、分析结果在运行测试或组件之后,通过两种方式可以查看其结果:在“结果”窗口中查看结果;自动报告在运 行会话过程中检测到的缺陷,可能的话并上报到其他缺陷管理产品中。试图与对象模型试图与对象模型在介绍 QTP 中的 Descriptive Programming 前,我们有必要先介绍一下 ExpertView 及在 ExpertView 里进行编码的一些基本知识。在 QTP 里面提供了两种视图,第一种我们把它称为 KeywordView(关键字视图,在早期的版本中称为 TreeView),第二种把它成为 ExpertView(专家视图)

6、,这两种视图分别是针对两种类型的人进行使 用的。1、KeywordView(关键字视图)通过关键字视图,QTP 提供了一种模块化的表格格式创建和查看测试或组件的步骤。每个步骤在关键 字视图中都是一行,这样用户可以轻松的修改任何一部分组成。在录制会话过程中,用户在应用程序上执行的每个步骤在关键字视图中记录为一行。例如,在 51testing 的页面上执行的下列三个步骤:在“用户名”编辑框中输入 zhoda02。 在“密码”编辑框中输入加密字符串 41c630a213508cd49eb35089db1b893144b9。 单击“登录”按钮。 那么,关键字视图将包含下列行:很显然,关键字视图非常直观

7、有效,使用的人可以很清晰的看到被录制对象的录制层次及运行步骤, 比较适合那些对于业务操作流程熟悉的人员使用。但是,如果需要一些增强型的操作,那就需要切换 到专家视图里进行了。2ExpertView(专家视图)QTP 在关键字视图中的每个节点在专家视图中对应一行脚本。上面例子对应的脚本如下:(删除后一 句是因为前后重复,一句可以说明问题)Browser(“51Testing 软件测试网:软件测试的专业网站“).Page(“51Testing 软件测试网:软件测试的 专业网站“).WebEdit(“username“).Set “zhoda02“自动化测试Pag 3Browser(“51Testi

8、ng 软件测试网:软件测试的专业网站“).Page(“51Testing 软件测试网:软件测试的 专业网站“).WebEdit(“password“).SetSecure “41c630a213508cd49eb35089db1b893144b9“Browser(“51Testing 软件测试网:软件测试的专业网站“).Page(“51Testing 软件测试网:软件测试的 专业网站“).WebButton(“登录“).Click对于 QTP 来说,其核心编码语言是 Visual Basic Script,因此,如果用户熟悉 VBScript,可以运用 自如的添加和更新语句,并通过编程方式增强

9、测试和脚本,而这一切必须在专家视图中完成。更为重要的是,有些操作是必须在专家视图中才可以完成的,例如:要处理动态对象、客户化报告、 获取对象运行时的属性值(Run-time Value)等等,这些都必须通过专家视图中的 VBScript 编码完成。然而,QTP 里所有的操作都是基于对象进行的,所以我们必须对对象模型有一个基本了解,才可以在 专家视图内进行 Descriptive Programming。3、测试对象模型测试对象模型是一大组对象类型或类,QTP 用这些对象类型或类来表示应用程序中的对象。每个测试 对象类都有一个可以唯一标识属于该类的对象的属性列表,以及一组 QTP 可以对其进行录

10、制的方法。 它包括测试对象(Test Object)和运行时对象(RunTime Object)。测试对象是 QTP 在测试或组件中创建的用于表示应用程序中的实际对象的对象。QTP 存储有关该对象 的信息,这些信息有助于它在运行会话期间标识和检查该对象。运行时对象是网站或应用程序中的实际对象,在运行会话期间执行针对该对象的方法。如果录制时执行应用程序的相应操作,则一般情况下 QTP 将完成以下操作:标识 QTP 测试对象类(表示执行了操作的对象),并创建相应的测试对象 读取应用程序中对象属性的当前值,然后将属性和属性值列表与测试对象一起存储。 选择该对象的唯一名称,一般使用该对象某个重要属性的

11、值。 使用适当的 QPT 测试对象方法录制对对象执行的操作。 例如,假定使用以下 HTML 源代码单击“查找”按钮:QTPl 将单击的对象标识为 WebButton 测试对象。它将创建一个名为 Find 的 WebButton 对象,然后 为该 Find WebButton 对象录制下列属性和属性值,同时还会录制对 WebButtion 的 Click 方法。 在关键字视图及专家视图中显示内容分别为: Browser(“Mercury Interactive“).Page(“Mercury Interactive“).WebButton(“Find“).Click自动化测试Pag 4运行测试或

12、组件时,QTP 通过其测试对象类及其描述(一组用于唯一标识该对象的测试对象属性和属 性值)来标识应用程序中的每个对象。测试对象及其属性和属性值的列表存储在对象库中。例如在上 例中,QTP 将在运行会话期间在对象库中搜索 WebButton 对象,通过名称 Find 来查找其描述。QTP 根据找到的描述,在应用程序中查找 WebButton 对象,该对象带有 HTML 标记 INPUT、类型为 submit、值为 Find。找到对象后,它将对其执行 Click 方法。在这样一组对象模型的基础上,QTP 为各类应用对象都提供了一组方法和属性,例如 Web Objects,Windows Objec

13、ts,SAPGUI Objects,ActiveX,Java 等。下面是一些 Web Objects 的方法 和示例: 对象 方法 Browser CheckFrameClickImageExistLinkGetCellDataPageGetPropertyWebAreaGetROPropertyWebButtionMouseoverWebCheckBoxRowCountWebEditSelectWebListSetWebRadioGroup SetPropertyWebTable Submit 例 1:获取单元格中的值thisText = Browser().Page().Frame.().

14、WebTable(“sample“).GetCellData(2,1)例 2:获取图片的名称ObjectName = Browser().Page().Image(“Find“).GetProperty(“Name“)例 3:检查某个对象是否存在,如果存在弹出对话框说明对象存在。If Browser(“Browser“).Page(“Page“).Applet(“login.html“).JavaEdit(“username“).Exist ThenMsgBox(“The object exists.“)End if描述性编程(描述性编程(descriptivedescriptive prog

15、rammingprogramming)1、descriptive programming 概述通常情况下,当在录制一个操作时,QTP 会将被操作对象加入到对象库里(Object Repository)。一 旦对象存在于对象库里,我们就可以在专家视图里通过添加相关的对象方法来对该对象进行操作。我 们可以通过引用层次型对象库里的对象描述(Object Description)来添加相应的方法。自动化测试Pag 5因为 QTP 对象库中的每个对象都具有唯一名称,所以在引用时对象名是必须需要指定的。然后在测试 运行期间,QTP 在对象库中根据这个对象的名称和父对象来查找对象,并使用为这个测试对象存储的

16、 测试对象描述,在网站或应用程序中标识该对象。例如我们用 QTP 录制 Yahoo Mail 登录情况时我们需要输入用户名,于是在录制时我们就会录下一个 WebEdit 对象,它的缺省逻辑名为“login”,该编辑字段位于名为 “Yahoo! Mail - The best” 的 页面上,并且该页面在浏览器中使用名称 Yahoo!进行录制。如图所示,即为录制时的对象库的内容: 那么如果我们想要应用该对象,就可以在专家视图输入以下信息:Browser(“Yahoo!“).Page(“Yahoo! Mail - The best“).WebEdit(“login“).Set “xxx”或者我们也可以调用一些方法,获取改对象在运行时的对象名,如:Browser(“Yahoo!“).Page(“Yahoo! Mail - The best“).WebEdit(“login“).GetROProperty(“name”)然而,我们可以发觉到,上面的例子在处理对象时,对象已经存在于对象库里,因此我们可以应用这 个对象的逻辑名。实际使用中,情况往往

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号