您的位置:首页 > 编程语言 > Qt开发

UFT(QTP)使用-1

2015-10-18 21:45 267 查看

第一部分 基础知识

1.       QTP安装

主程序:

进入下面目录运行:

QTP90\QuickTest\setup.exe

在没有Licence的情况下选择安装演示版,完成安装之后再破解,其它按照默认设置完成安装,可暂不重启;中途需要下载MicrosoftScript Debugger(脚本调试器),如果下载失败,可以安装结束之后另行下载安装:

..\..\ADD-INS\脚本调试器.exe

安装中文插件(可选)

进入下面这个目录运行:

QTP90CHS\QuickTestPro_CHS\QuickTestPro_CHS.exe
按照默认设置完成安装,可暂不重启;

关联QC插件(Mercury QualityCenter Add-in):

进入下面目录运行:

QTP90\TDPlugin\ TDPluginsetup.exe

按照默认设置完成安装,以上安装完成之后必须重新启动QTP才可以进行许可证的安装。

安装插件许可证:

1、  使用并发许可证

这需要有正版Lic的机器做服务器,在运行QTP的时候点击“修改插件许可证”,选择安装并发许可证,再入如服务器地址,如:192.168.168.89

2、使用单机许可证

把mgn-mqt82.exe文件放到X:\ProgramFiles\Mercury Interactive\QuickTest Professional下面,然后运行,退出重新运行QTP即可。
在已经安装并发许可证而又想修改许可证为单机许可证的话,可能上面的方法行不通,这种情况下可以试着先使用记事本或者相关的程序打开C:\ProgramFiles\Common Files\Mercury Interactive\License Manager\lservrc文件,在打开的文件中,复制形如下面的一段字符串:D6BUM D6BUM D6BUMD6BUM D6BUM D6BUM
D6BUM D6BUM 8QARH#,记得一定带上“#”号,在首次运行QTP的时候点击“修改插件许可证”,选择安装单机许可证,再将这段字符粘贴到里面重启QTP就行了。

2.        QTP启动

要启动 QuickTest,请选择“开始”菜单中的“程序” >“QuickTestProfessional” > “QuickTest Professional”。
第一次启动 QuickTest 时,打开“加载项管理器”对话框。

提示:如果不希望下次启动 QuickTest 时打开该对话框,可以清除“启动时显示”复选框。单击“确定”。打开“QuickTest Professional”窗口。可以选择打开QuickTest 教程,开始录制新测试,打开现有测试或打开空白的新测试。

提示:可以按 ESC 键关闭窗口,也可以点击“空白测试”建立新的测试,或者打开其它测试脚本或组件。可以单击“每日提示”浏览所有可用提示。如果不希望下次启动 QuickTest 时显示该窗口,可以清除“启动时显示该屏幕”复选框。

3.  QTP窗口

QuickTest 窗口包含下列关键元素(下图为QTP 8.2的试图,和9.0版本稍有不同):
➤标题栏 - 显示当前打开的测试或组件的名称。
➤ 菜单栏 - 显示 QuickTest命令菜单。
➤ 文件工具栏 - 包含若干按钮,协助您管理测试或组件。
➤ 测试工具栏 - 包含若干按钮,协助您完成测试过程。
➤ 调试工具栏 - 包含若干按钮,协助您对测试或组件进行调试(默认情况下不显示)。
➤ 操作工具栏 - 包含若干按钮和一个操作列表,用于查看单项操作或整个测试流的
详细信息。
➤ 测试窗格 - 包含关键字视图和专家视图选项卡。
➤ Active Screen - 当您在录制会话过程中执行某个特定步骤时,提供了出现的应用
程序的快照。
➤ 数据表 - 协助您对测试或组件进行参数化。对于测试,数据表包含“全局”选项
卡和每个操作的选项卡;对于组件,数据表包含单个选项卡。
➤ “调试查看器”窗格 - 协助您对测试或组件进行调试。“调试查看器”窗格包含
“监视表达式”、“变量”和“命令”选项卡(默认情况下不显示)。
➤ 状态栏 - 显示 QuickTest应用程序的状态。

4.       QTP常用快捷方式

下表这些快捷方式是我们经常用得到的,而其它的快捷方式记忆起来比较复杂,具体参见QTP的帮助文档:

Command

Shortcut Key

Function

Record
(普通录制)
F3
Starts a recording session.

Run
(运行)
F5
Starts a run session from the beginning or from the line at which the session was paused.

Stop
(停止)
F4
Stops the recording or run session.

Run from Step
(丛当前步骤运行)
Ctrl+F5
Starts a run session from the selected step.

Analog Recording
(模拟录制)
Shift+Alt+F3
Starts recording in analog recording mode.

Low Level Recording(低级录制)
Ctrl+Shift+F3
Starts recording in low level recording mode.

Object Repository(打开对象库)
Ctrl+R
Opens the Object Repository dialog box.
Step
Into (单步调试运行到)
F11
Runs only the current line of the script. If the current line calls a method, the method is displayed in the view
but is not performed.
Step Over
(跳出断点)
F10
Runs only the current line of the script. When the current line calls a method, the method is performed in its entirety,
but is not displayed in the view.
Step Out
(跳过断点)
Shift+F11
Runs to the end of the method then pauses the run session. (Available only after running a method using
Step Into.)
Run to Step
(运行到)
Ctrl+F10
Runs until the current step.

Add to Watch
(添加到观察表)
Ctrl+T
Adds the selected item to the Watch tab.

Insert/Remove Breakpoint
(断点)
F9
Sets or clears a breakpoint in the test.

Enable/Disable Breakpoint

(启用/停用断点)
Ctrl+F9
Enables or disables a breakpoint in the test.

Clear All Breakpoints
(清除所有端点)
Ctrl+Shift+F9
Deletes all breakpoints in the test.

Check Syntax
(语法检查)
Ctrl+7
Checks the syntax of the active document.

5.       检查点概述

在录制会话过程中或在编辑测试或组件时添加检查点。在录制了初始测试或组件之后,通常可以更为方便地定义检查。有几种方法可以添加检查点。
在录制或编辑时添加检查点
¨        使用“插入”菜单上的命令,或者单击“测试”工具栏上的“插入检查点”按钮旁边的箭头。这将显示与关键字视图的选定步骤相关的检查点选项的菜单。
只在编辑时添加检查点
¨        右键单击关键字视图中您要添加检查点的步骤,然后选择“插入标准检查点”。
¨        右键单击 ActiveScreen 中的任意对象,然后选择“插入标准检查点”。可使用该选项为 ActiveScreen 中的任意对象创建检查点(即使该对象不是关键字视图中任一步骤的组成部分)。
注意
如果使用“ActiveScreen”方法,请确保 Active Screen 包含有关待检查对象的充足数据。
了解检查点类型
检查点类型
描述
用法示例
标准检查点
检查对象的属性值。
检查是否选中某单选按钮。
图像检查点
检查图像的属性值。
检查图像源文件是否正确。
表检查点
检查表中的信息。
检查表单元格中的值是否正确。
页面检查点
检查网页的特性。
检查加载网页所需的时间,或者检查网页是否包含中断链接。

文本/文本区域检查点

检查文本字符串是否显示在网页或应用程序窗口中的适当位置。

检查预期的文本字符串是否显示在网页或对话框上的预期位置。

位图检查点
将网页或应用程序的某个区域捕获为位图后对其进行检查。

检查网页或网页的任何部分是否能按预期显示。

数据库检查点
检查应用程序或网站所访问的数据库内容

检查数据库查询中的值是否正确。
    可访问性检查点

对网站区域进行识别,以检查是否符合 508 部分。

检查网页上的图像是否包含 ALT 属性(该属性是 W3C Web 内容可访问性规则所要求的)。

XML 检查点
检查 XML 文档的数据内容。
注意:XML 文件检查点用于检查特定的 XML 文件;XML 应用程序检查点用于检查网页中的 XML 文档。

您可以插入下列检查点类型以检查网站或应用程序中的各种对象。
¨        “标准检查点”检查应用程序或网页中对象的属性值。标准检查点会检查各种对象,如按钮、单选按钮、组合框、列表等等。例如,您可以检查在选择单选按钮之后它是否处于激活状态,或者可以检查编辑字段的值。标准检查点在所有加载项环境中都受到支持。
¨        “图像检查点”检查应用程序或网页中的图像的值。例如,您可以检查所选图像的源文件是否正确。
注意:可以通过在图像对象上插入标准检查点来创建图像检查点。图像检查点在 Web 环境中受到支持。
¨        “位图检查点”检查位图格式的网页或应用程序区域。例如,假设您有一个网站,可以显示用户指定的城市的地图。该地图具有用于缩放的控制键。在单击放大地图的控制键后,您可以录制所显示的新地图。使用位图检查点,您可以检查该地图是否正确放大。位图检查点在所有加载项环境中都受到支持。
¨        “表检查点”检查表内部的信息。例如,假设您的应用程序或网站包含一个表,该表列出了从纽约到旧金山的所有可用航班。您可以添加一个表检查点,以检查该表中的第一个航班的时间是否正确。
注意:可以通过在表对象中插入标准检查点来创建表检查点。表检查点在 Web 和 ActiveX 环境中受到支持。表检查点还在很多外部加载项环境中受到支持。
¨        “文本检查点”检查文本字符串是否显示在应用程序或网页的适当位置中。例如,假设您的应用程序或网页显示句子:“从纽约到旧金山的航班”。您可以创建一个文本检查点,检查词语“纽约”是否显示在“从”与“到旧金山的航班”之间。文本检查点在所有加载项环境中受到支持(请参阅下面的“受支持的检查点” )。
¨        “文本区域检查点”检查文本字符串是否按照指定的条件显示在 WindowsApplications 中所定义的区域内。例如,假设您的 Visual Basic 应用程序有一个按钮,显示“查看文档< 号码>”,其中< 号码> 会被输入到应用程序中其他位置的窗体的四位数字代码替换。您可以创建一个文本区域检查点,以确认在该按钮上显示的号码与在窗体中输入的号码相同。文本区域检查点在标准 Windows、Visual Basic 和 ActiveX 加载项环境中受到支持。文本区域检查点还在一些外部加载项环境中受到支持。
¨        “可访问性检查点”确定可能不符合万维网联盟 (W3C)Web 内容可访问性规则的网站区域。例如, W3C Web 内容可访问性规则的规则 1.1 要求您为每个非文本元素提供等效文本。您可以添加“Alt”属性检查,检查按照该规则要求具有“Alt”属性的对象是否确实具有这样的标记。可访问性检查点在 Web 环境中受到支持。
¨        “页面检查点”检查网页的特性。例如,您可以检查加载网页所需的时间,或者检查网页是否包含损坏的链接。
注意:可以通过在页面对象上插入标准检查点来创建页面检查点。页面检查点在 Web 环境中受到支持。
¨        “数据库检查点”检查由您的应用程序访问的数据库的内容。例如,您可以使用数据库检查点来检查网站上包含航班信息的数据库的内容。数据库检查点在所有环境中都受支持(请参阅下面的“受支持的检查点” )。
¨        “XML 检查点”检查 XML 文件中的 XML 文档的数据内容,或检查网页和帧中的 XML 文档的数据内容。有关 XML 检查点的详细信息,请参阅第 11 章“检查 XML”。XML 检查点(网页/ 帧)在 Web 环境中受到支持; XML 检查点(文件)在所有环境中受到支持(请参阅下面的“受支持的检查点” )。

6.       受支持的检查点

下表显示了在每个环境(默认情况下由 QuickTest Professional 安装支持)中受支持的检查点类型。
S - 支持
NS - 不支持
NA - 不适用

7.       规范例程

脚本的生成方式就两种,一种是自写脚本,一种是录制生成。常常听见有人说,这两种方式中首选录制生成脚本,因为它简单且智能化。但我个人总觉得手写脚本要好一些,因为:

¨        可读性好,流程清晰,检查点截取含义明确。业务级的代码读起来总比协议级的代码更易让人理解,也更容易维护,必要时可建立一个脚本库。而录制生成的代码大多没有维护的价值,现炒现卖。

¨        手写程序相比录制脚本更能增加测试人员的技术含量。开发和测试能力双重提高,何乐而不为呢?QTP提供了javauser,vb
user,等语言类型的脚本,就是给我们开发脚本用的,而不是录制用的。

脚本不管录制也好,还是手写也好,选择的时候应该以脚本模拟程序真实有效为准,结合项目进度,开发难易程度等因素考虑。而脚本的开发也需要符合一种规范,也可以说是一种习惯,因为脚本不只是开发者一个人看,测试执行人员也需要看,这就要求可读性和可维护性提高;故而开发时应该考虑这层因素,规范一下。

下面这段某系统登陆的脚本,是一位前辈写的,引用一下(借机崇拜一下):

'*************************************************************************
'* 模板名称:          Login
'* 开发人员:          LY
'* 开发日期:          2006-10-12
'* 最后修改日期:        2006-10-13
'* 输入参数:          用户名、密码
'* 输出参数:          成功进入
'* 脚本描述:          通用的登陆设计
'***********************************************************************
Dim hint_msg

Dim hint

Dim ActualDialogPopup

InvokeApplication "D:\Program Files\Mercury Interactive\QuickTestProfessional\samples\
flight\app\flight4a.exe"

' 参数化user和password值

Dialog("Login").WinEdit("Agent Name:").SetDataTable("user", dtGlobalSheet)

Dialog("Login").WinEdit("Password:").SetDataTable("password", dtGlobalSheet)

Dialog("Login").WinButton("OK").Click

hint = DataTable("hint", dtGlobalSheet)
' 判断弹出错误提示框的正确性,如果输入了正确密码,而用户名又大于4个字符则不弹出错误提示框,否则弹出错误提示框。
IfDialog("Login").Dialog("Flight Reservations").Exist then

        ActualDialogPopup = "TRUE"

else

        ActualDialogPopup = "FALSE"

end if

ExpectedDialogPopup = DataTable("ExpectedDialogPopup", dtGlobalSheet)

If (ActualDialogPopup = ExpectedDialogPopup) then

        Reporter.ReportEvent micpass, "登陆", "程序判断正确."

        ' 如果弹出错误提示框,通过对比hint

        If  ActualDialogPopup = "TRUE"Then

          hint_msg =Dialog("Login").Dialog("FlightReservations").Static("Static").GetROProperty("text")

                If (hint = hint_msg)Then

                       Reporter.ReportEvent micpass, "登陆错误提示", "错误提示信息正确."

                else

                     Reporter.ReportEvent micFail, "登陆错误提示", "错误提示信息错误."

                End if

                     Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click

               Dialog("Login").Close

        else

             Window("FlightReservation").Close

        End If

else

   Reporter.ReportEvent micfail, "登陆", "程序判断错误."

   If  ActualDialogPopup = "TRUE" Then

     Dialog("Login").Dialog("FlightReservations").Close

     Dialog("Login").Close

  else

     Window("Flight Reservation").Close

  end if

End If

8.       模板的应用

新建一个文本,输入一些新建Action时常包含的信息,然后保存为ActionTemplate.MST文件,并复制到QTP/dat目录下;这样每次新建action都会包含固定的信息了;

例如:

'-------------------脚本说明---------------

'产品版本: 

'测试员:

'编写日期:

'测试功能:

'脚本类型:

'被测试对象初始状态:

'进展程度:

'…………

'--------------------脚本内容-------------

9.       方式与级别

Analog recording(模拟录制 )
将“模拟录制”用于您要在其中录制鼠标的实际移动的应用程序。这些可能包括绘制鼠标签名或者使用通过拖动鼠标创建图像的绘图应用程序。您可以用“模拟录制”模式相对于屏幕或特定窗口进行录制。

    相对于指定窗口录制 - 如果对其执行操作的对象位于一个窗口内部而且该窗口在模拟录制会话期间没有移动。这可以确保在运行会话过程中,QuickTest 将准确地标识在其上执行模拟步骤的窗口位置,即使当您运行模拟步骤时窗口位于不同的位置。QuickTest 不会录制在指定窗口外部执行的任何单击或鼠标移动。当使用这种模式时,QuickTest 不会捕获任何 Active Screen 图像。

    相对于屏幕录制 - 如果在其上录制模拟步骤的窗口在录制过程中移动,或者您所执行的操作是针对位于多个窗口内的对象。这可能包括将对象从一个窗口拖放到另一个窗口中。当使用这种模式时,QuickTest 将捕获您在其中进行录制的窗口的最终状态的 Active Screen 图像。

    使用“模拟录制”录制的步骤被保存在单独的数据文件中。该文件与在其中录制模拟步骤的操作或组件一起存储。

    当以“模拟录制”模式进行录制时,QuickTest 将向测试或组件添加一个调用所录制的模拟文件的“RunAnalog”语句。相应的 Active Screen 将显示在模拟录制会话期间执行的最后一个模拟步骤的结果。
low-level recording(低级录制)

    使用“低级录制”在不受 QuickTest 支持的环境或对象上进行录制。当您需要在应用程序屏幕上录制操作的精确位置时,请使用“低级录制”。当以正常模式录制时,QuickTest 将在对象上执行步骤,即使该对象已经移动到屏幕上的新位置。如果对象的位置对于您的测试或组件非常重要,请切换到“低级录制”以使 QuickTest 能够按照屏幕上的 x 坐标和 y 坐标录制该对象。这样,该步骤只有在对象位于正确的位置时才能通过。

    当使用“低级录制”时,QuickTest 将所有父类对象录制为 Windows 测试对象,将所有其他对象录制为 WinObject 测试对象。它们在 Active Screen 中显示为标准 Windows 对象。“低级录制”对每个测试对象支持下列方法:

WinObject 测试对象 - Click、DblClick、Drag、Drop、Type

Window 测试对象 - Click、DblClick、Drag、Drop、Type、Activate、Minimize、Restore、Maximize

    以“低级录制”模式录制的每个步骤都显示在关键字视图和专家视图中。(“模拟录制”仅录制关键字视图中那个调用外部模拟数据文件的步骤。)
模拟录制和低级录制的规则

    模拟录制和低级录制产生的脚本无法插入检查点,而且应用程序界面稍有变动则脚本无法正常运行,所以非万不得已(QTP正常支持的B/S结构以外的情况)应该避免这两种录制方式。有时候因为无法正常录制或者无法正常运行,初学者就可能考虑使用这两种方式录制,事实上,只要是C/S(其实部分结构简单一点的B/S)结构,基本上都能够避免所遇到的这些问题,具体方法,参见第二部分。
当选择“模拟录制”或“低级录制”时,请考虑下列规则:
只有当 QuickTest 的正常录制模式不能准确录制您的操作时,才应使用“模拟录制”或“低级录制”。“模拟录制”和“低级录制”要求比正常录制模式更多的磁盘空间。对于特定的步骤,您可以在录制会话期间切换到“模拟录制”或“低级录制”。在以“模拟录制”或“低级录制”模式录制了必要的步骤之后,就可以返回到正常录制模式来完成录制会话的其余部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: