软件测试技术教程 工业和信息化普通高等教育“十二五”规划教材立项项目 教学课件 ppt 作者 徐光侠 韦庆杰 第十二章 自动测试工具QTP的使用
第12章 自动测试工具QTP的使用,本章小结,QTP的测试脚本开发,QTP的基本功能,QTP的安装和配置,本章内容提要:,12.1 QTP的安装和配置,12.1.1 QTP的安装(下面以Windows XP为例介绍如何安装QTP10.0 ) (1)单击Quick Test Professional 安装程序,程序引导安装。 (2)出现许可协议安装界面,选择“我接受该许可证协议中的条款”,点击“是”。 (3)在弹出的许可证类型中选择“单机版”,点击“下一步”。 (4)填写注册信息,点击“下一步”。维护号是随着你的Quick Test Professional包装提供的。 (5)在弹出的启用Quick Test Professional远程执行界面中选择“自动设置这些选项”,点击“下一步”。 (6)在设置Internet Explorer高级选项中选择“我将手动选择这些选项”,点击“下一步”。 (7)在选择安装类型界面中,选择“完全”,点击“下一步”。 (8)自定义安装的目标文件夹。(QTP及其插件的安装仅支持英文路径,也就是说不能在包含中文命名的文件夹目录中安装QTP或QTP的插件。) (9)等待安装,安装完成后弹出客户注册界面(不用点击“立即注册”),点击“下一步”。 (10)完成后,在之后弹出的界面中选择“重启电脑”,点击“完成”。 (11)重启完成后,在界面中单击“完成”,出现图12-1所示界面。点击“取消”。,12.1 QTP的安装和配置,安装完原程序后,将 GetLicense.exe注册机放到安装 目录(默认为C:Program Files Mercury InteractiveQuick Test Professional)并运行它, 注册机将生成一个注册文件, 该文件在C:Program Files CommonFilesMercury Interactive License Manager。用记事本打开名字 为lservrc的文件,复制第一行中 含#之前的所有字符。第一次运行时, 选择seat licence,将前面复制的字 符粘贴。,12.1 QTP的安装和配置,12.1.2 QTP10.0的基本配置 (1)QTP的帮助文档 很多初学者往往忽略了对QTP自带的帮助文档的学习,而实际上,这些正是最佳的学习QTP使用和自动化测试脚本开发的渠道。可以通过选择“开始 | 所有程序 | QuickTest Professional | Documentation”来访问QTP的帮助文档。当然,也可以在QTP中随时按F1键打开联机帮助。 (2)QTP自带的样例程序 QTP在安装时会把一个样例程序也安装到机器上,可以通过选择“开始 | 所有程序 | Quick Test Professional | Sample Applications”来查看和打开样例程序。样例程序包括一个Windows程序和一个Web程序。Windows程序名为“Flight”,是一个机票预定系统。 Web应用程序名为“Mercury Tours Web Site”,是一个连接到URL为“http:/newtours. mercuryinteractive.com/”的网站,且基于Web的机票预定系统。 样例程序可以为初学者提供一个基本的测试对象,另外,QTP的很多帮助文档都是以这些样例程序为测试对象讲述相关的测试方法、测试对象和函数的使用的,因此,熟悉这些样例程序对于学习QTP大有裨益。 (3)启动QTP 安装好QTP后,我们可以通过选择菜单“开始|所有程序|Quick Test Professional| Quick Test Professional”来启动QTP(或者双击桌面上QTP的快捷图标)。,12.1 QTP的安装和配置,(4)插件加载设置与管理 启动QTP后,将显示如图12-2所示的插件管理界面。 QTP默认支持ActiveX、VB和 Web插件,License类型为“Built-In”。 如果安装了其他类型的插件,也将在 列表中列出来。 为了性能上的考虑,以及对象识 别的稳定和可靠性,建议只加载需要 的插件。例如,QTP自带的样例应用 程序Flight是标准Windows程序, 里面的部分控件类型为ActiveX控 件,因此,在测试这个应用程序时, 可以仅加载ActiveX插件。,12.1 QTP的安装和配置,(5)创建一个空的测试项目 加载插件后,QTP显示如图12-3所示界面。 选择“Tutorial”将打开 QTP的帮助文档 选择“Start Recording” 进入测试录制功能 选择“Open Existing”将 打开现有的测试项目文 件 选择“Blank Test”将创建一 个空的测试项目 把“Show this screen on startup” 设置为不勾选,则下次启动QTP时不 显示该界面,而是创建一个空的测试项目。,12.1 QTP的安装和配置,(6)使用QTP编写第一个自动化测试脚本图12-4 Flight程序界面 设置成仅录制Flight程序后, 选择菜单 “Automation | Record”, 或按快捷键F3,QTP将自动启动 指定目录下的Flight程序,出现如 图12-4所示的界面,并且开始录 制所有基于Flight程序的界面操作。,12.1 QTP的安装和配置,这时,如果在其他应用程序的界面上做任何的操作,QTP并 不会将其录制下来,而是仅录制与Flight程序相关的界面操作。 按F4键停止录制后,将得到如图12-5所示的录制结果。在关 键字视图中,可看到录制的测试操作步骤,每个测试步骤涉及的 界面操作都会在Active Screen界面显示出来。,12.1 QTP的安装和配置,切换到专家视图界面,则可看到如图12-6所示 的测试脚本,这样就完成了一个最基本的测试脚 本的编写。,12.2 QTP的基本功能,12.2 QTP的基本功能,识别 对象,Object Spy 的 使用,对象库 管理,把 测试对象 添加到 对象库中,导出 对象库 文件,在 测试脚本中 访问对象库 的测试对象,添加 新的 Action,关联 Action的 对象库,编辑 新的 Action,在 函数库中 创建自定 义函数, 12.2.1 编辑测试脚本,12.2 QTP的基本功能,1识别对象 编辑测试脚本的第一步是识别测试对象,因为基于GUI 的自动化测试主要是围绕着界面的控件元素来进行的。QTP 针对不同语言开发的控件,采取不同的对象识别技术,根据 加载的插件来选择相应的控件对象识别的依据。在QTP中, 选择菜单“Tools | Object Identification”,在出现的界面中可 看到各种标准Windows控件对应的对象识别方法,例如, 对于Dialog控件,使用的是“is child window”、 “is owned window”、“nativeclass” 和“text”这四个控件对象的属性来 区别出一个唯一的Dilalog控件对象。 可以单击“Add/Remove”按钮,选择 更多的控件属性来唯一识别控件。,12.2 QTP的基本功能,2Object Spy 的使用 QTP提供的“Object Spy”工具可用于观察运行时测试对象 的属性和方法。选择菜单“Tool | Object Spy”,则出现 Object Spy的界面。 在界面中,单击右上角的手型按钮,移动到测试对象上, 单击鼠标左键选择测试对象,会自动获取该测试对象的所有属 性和方法,在界面中可以显示出来。 在界面中可以看到,所选中的是标准Windows控件中的 “Dialog”对象。切换到“Methods”页,则可以看到控件方法, 如“Activate”、“Click”、“Close”等。 Object Spy对于观察测试对象 的属性,了解测试程序的控件属性 和行为都非常有用,尤其是对于那些 界面控件元素比较多、层次关系比较 复杂的应用程序。,12.2 QTP的基本功能,3对象库管理 另外一种观察和了解测试程序的界面控件元素,以及它 们的层次关系的方法是通过对象库(“Object Respository”)。 在QTP中,选择菜单“Resources | Object Repository”出现界 面。 QTP在录制测试脚本的过程中会把界面操作涉及的控件 对象都自动添加到对象库中,但是那些未被鼠标点击或键盘 操作的界面控件则不会添加到对象库中。,12.2 QTP的基本功能,4把测试对象添加到对象库中 在对象库管理界面中,选择菜单“Objects | Add Objects to Local”,然后选择测试程序界面中的某个控件,例如,选择 Flight程序的“Login”界面中的“Cancel”按钮,在出现的界面中单 击“OK”,把测试对象添加到对象库中。从右边的对象属性窗口 中可看到,对于“Cancel”这个“WinButton”类型的控件,QTP使 用“Text”和“Nativeclass”两个属性来唯一区分和识别。这两个属 性将作为测试脚本运行时找到测试程序界面上的相应控件的依 据。 界面中的某些控件对象是有层次关系的,例如,按钮、输 入框等控件包含在窗口控件中,在 添加测试对象到对象库时,可以选 择窗口对象,然后在界面中选择 “All Object Types”,单击“OK”按钮, 则会把选择的窗口对象中的所有控件对象添加到对象库中。,12.2 QTP的基本功能,5导出对象库文件 测试对象作为资源,可导出到文件中,以方便 其他测试脚本的使用,方法是在对象库管理界面中, 选择菜单“File|Export Local Object”,将其存储 到某个文件夹中。,12.2 QTP的基本功能,6在测试脚本中访问对象库的测试对象 把界面的控件作为测试对象添加到对象库中之 后,就可以把这些测试对象作为测试资源来访问, 例如,在关键字视图中可从对象库中选择需要的测 试对象。而在专家视图中,同样可以访问到对象库 的测试对象,以及它们的属性和方法。,12.2 QTP的基本功能,7添加新的Action 在QTP中,“Action”相当于测试脚本的文件,可使用Action来划分和组 织测试流程,例如,把一些公用的操作放到同一个Action中,以便重用。 如果想在当前Action的某个测试步骤之后添加新的Action,则可选择菜 单“Insert | Call to New Action”,在出现的界面中“Name”里输入Action的名 称,例如“Action_Help”,在“Description” 中输入对该Action的描述,例如“ 处理Help窗口”,在“Location”中选择“After the current step”,然后,单击 “OK”按钮,返回关键字视图,则可看到新的名为“Action_Help”的Action 已经被成功添加,如图12-7所示。,12.2 QTP的基本功能,8关联Action的对象库 双击新添加的Action,可在该Action中添加新的测试代 码。由于QTP为每一个Action生成相应的测试文件和目录, 而对象库作为资源,也是与Action绑定的,因此,新添加的 Action不能直接使用前一个Action中的测试对象。 解决方法有两种,一种是通过录制新的测试脚本来产生 新的测试对象库,另外一种是通过关联前一个Action所导出 的对象库文件来使用其测试对象。下面介绍第二种方法。,12.2 QTP的基本功能,选择菜单 “Resources | Associate Repositories”,在出现的 界面中单击“+”按钮, 选择前一个Action导出 的数据库文件,然后,把 左边的“Available Actions” 中的“Action-Help”移动到 右边的“Associated Actions”列表中,这样,就 可以在“Action-He