功能自动化测试工具(QTP_9.2)
完全使用手册
2011年8月
功能自动化测试工具(QTP_9.2)完全使用手册
1 QTP工具介绍
1.1 自动化测试的好处
凡是有过手工测试经历的读者,对于手工测试的缺点一定是深有体会的。手工测试既单调又耗时,需要投
入大量的人力,而且更糟糕的是,如果项目时间有,那么会经常导致无法彻底地手工测试所有功能,从而导致一些潜在的软件缺陷没有发现,进而使得软件产品的质量存在较大的隐患。
鉴于上述手工测试的缺点,市面上出现了一大批功能自动化测试工具,QTP就是其中的翘楚。作为MI公司推出的拳头产品之一,QTP能够测试Windows标准应用测试、各类Web对象,ActiveX控件,Visual Basic应用程序等,而且还可以根据实际情况加载不同的插件,从而测试例如Oracle,SAP应用等服务。
QTP通过记录并模拟实际用户的操作,比如点击鼠标、单击图形用户界面(GUI)等,并通过一系列的强化功能,如设置检查点,进行参数化操作等,实现了对功能测试的自动化过程,从而将测试工程师从大量繁琐的手工测试中出来。
快速(Fast) 可靠(Reliable) 可重复(Repeatable) 可程序化(Programmable) 广泛(Comprehensive) 可复用性(Reusable) QTP运行测试比实际用户快得多 测试每次运行时都会准确执行相同的操作,因此消除了人为的错误 您可以通过重复执行相同的操作来测试网站或应用程序的反应 您可以编写复杂的测试来找出隐藏的信息 您可以建立一套测试来测试网站或应用程序的所有功能 您可以在不同版本的网站或应用程序上重复使用测试,甚至在用户界面更改的情况下也不例外 1.2 QTP测试流程
QTP的测试流程可以分为7个阶段,准备录制——>录制脚本——>增强脚本——>调试脚本——>运行测试
——>结果分析——>报告缺陷。
(1) 准备录制:在进行脚本录制前,需要确认待录制的程序和QTP的相关参数是否设置好,同时要对测试
脚本中的步骤事先运行一遍或多遍,一方面熟悉脚本步骤,另一方面也对待录制程序进行事前检查。 (2) 录制脚本:按照脚本设计中的步骤,逐步进行脚本录制。如果不慎操作了不在计划中的步骤,不要慌
乱,我们可以在后续的步骤中对脚本进行调整。
(3) 增强脚本:对前期录制的脚本进行相应的增加脚本操作,如设置检查点,以自动判断程序的输出是否
与预期一致;设置参数化,以满足程序用多组数据来执行相同的操作;编写逻辑判断语句、循环语句等,从而实现脚本的多次执行等等。
(4) 调试脚本:在完成脚本的增强操作后,我们需要对脚本进行调试工作,从而保证在后续的执行测试过
程中能顺利的运行。
1
功能自动化测试工具(QTP_9.2)完全使用手册
(5) 运行测试:通过运行程序,来检查程序的行为。在执行该步骤时,QTP将按照脚本中的设置,自动打
开运行程序或者浏览器,执行脚本中的每个步骤。
(6) 结果分析:将运行测试的结果记录下来,以便确定应用程序中的缺陷
(7) 报告缺陷:如果安装了QC,则能将测试结果中发现的缺陷报告给QC中,从而实现了与测试管理工具
的无缝连接。
1.3 QTP的安装说明
QTP运行在Windows平台上,下表为QTP配置的基本要求
安装环境 CPU 操作系统 内存要求 磁盘空间要求 浏览器要求 256MHZ以上 Windows 98 SE以上 128MB以上 200MB以上 IE 5.0以上 Netscape 4.0以上
在安装QTP之前,需要说明的一个问题是,务必把QTP的安装文件放在一个全英文路径下,例如:D:
配置要求 \\QTP9.2;如果安装文件的路径中含有中文字符,则有可能导致安装过程中出现错误。
QTP安装步骤如下(说明,在这里我们以QTP 9.2作为介绍对象):
(1) 以管理员的身份登录系统,点击QTP安装文件中的“setup.exe”图标,自动弹出安装页面,如下图所
示:
2
功能自动化测试工具(QTP_9.2)完全使用手册
其中:
“QuickTest Professional 安装”为安装主程序;
“产品信息”为一个链接,链接到QTP的产品信息页面; “自述文件”为QTP的Readme文件;
“Quality Center加载项”为安装Quality Center客户端,从而和QTP协同使用; “QuickTest Plus”为安装QuickTest的工具包;
我们点击其中的“QuickTest Professional”选项,进入下一步。
(2) 点击“QuickTest Professional”后,系统会首先判断系统是否安装了.Net Framework2.0(该程序为
Microsoft开发的,目的在于允许使用不同编程语言和库进行协同工作以创建基于Windows的应用程序)。如果系统中没有安装,则会弹出一个提示界面,如下图所示:
3
功能自动化测试工具(QTP_9.2)完全使用手册
我们点击图中的“确定”按钮,从而安装.Net Framework2.0程序。
我们按照引导程序安装.Net Framework2.0程序后,系统将进入QTP安装中的许可协议面中,如下图所示:
点击其中的“我接受该许可协议中的条款(A)”,然后点击其中的“是(Y)”按钮,进入下一个安装界面。
4
功能自动化测试工具(QTP_9.2)完全使用手册
(3) 在弹出注册信息界面,填写用户名、公司名称、维护号,点击“下一步”
(4) 在弹出的“许可证类型”界面中,如下图所示:
我们选择其中的“演示版”(如果有正版授权,我们可以选择相应的“单机版”或“并发版”),QTP的演示版提供了14天的试用期限。
需要说明的是,如果计算机原来安装了Winrunner或者是QTP的网络版,那么就不能再安装演示版。
(5)在弹出的配置选项中,如下图所示:
5
功能自动化测试工具(QTP_9.2)完全使用手册
设置该界面的目的在于禁止浏览器的脚本调试功能,系统提供了自动配置和手动设置两种类型。这里我们选择自动配置选项。当然,我们也可以选择手工设置,具体步骤如下:
打开IE浏览器,选择“工具/Internet选项”;
选择“高级”标签,选择“禁止调试脚本”复选框,并点击“确定”按钮。
(6)在弹出的调试支持界面中,如下图所示:
该界面询问是否安装Microsoft的脚本调试工具——Script Debugger。如果下载了该脚本调试工具,那么我们利用QTP录制脚本时,在设置断点等功能时,就能启用脚本调试功能。因此建议如果能上网,
6
功能自动化测试工具(QTP_9.2)完全使用手册
则按照该界面中的默认选项设置,下载并安装Microsoft Script Debugger工具。 (7)在弹出的“安装类型”界面中,如下图所示:
在该面中,用户可以根据实际情况,选择完全安装或者自定义安装。如果选择自定义安装,则用户可以根据自身情况,酌情选择需要安装加载的插件。在这里,我们选择完全安装。
(8)在弹出“选择目标位置”界面中,点击“开始”
7
功能自动化测试工具(QTP_9.2)完全使用手册
(9)安装完毕后,需要重新启动计算机,这样QTP就可以使用了。
(10)破解安装QTP9.2原程序
安装完原程序后,将GetLicense.exe注册机放到安装目录(默认 C:\\Program Files\\Mercury Interactive\\QuickTest Professional)并运行它,注册机将生成一个注册文件,该文件在C:\\Program Files\\Common Files\\Mercury Interactive\\License Manager。用记事本打开名字为lservrc的文件,复制“第一行中含#之前的所有字符”。第一次运行时,选择seat licence,将前面复制的字符粘贴。确认后,就可以无限期免费使用QTP9.2。
8
功能自动化测试工具(QTP_9.2)完全使用手册
1.4 QTP组成
打开QTP的启动程序后,系统将展示如下的界面:
其中:
“Tutorial”为联机帮助;
“Start Recording”为开始录制测试脚本; “Open Existing”为打开一个原有的测试脚本; “Blank Test”为新建一个空的测试脚本。
我们选择其中的“Blank Test”进入QTP的主界面,如下图所示:
9
功能自动化测试工具(QTP_9.2)完全使用手册
下面让我们来认识一下QTP的组成: 标题栏:显示当前打开测试脚本的名称; 菜单栏:包含QTP所有功能的菜单选项;
文件工具栏:包含一系列的按钮,用于协助管理测试; 测试工具栏:包含一系列的按钮,用于协助完成测试流程;
测试面板:显示测试结果的主体部分,包含两大部分,关键字视图(Keyword View)和专家视图(Expert
View);
数据表格:用于对测试进行参数化,可以存储和管理某个测试对象的各种不同的数值,它包含两个标
签,Global和Action1;顾名思义,Global中的数据适用于所有的Action中,而Action1中的数据仅适用于某个Action中;
活动屏幕:在运行脚本时,活动屏幕中能实时地显示出当前正在运行的不同界面; 状态栏:显示QTP的状态。
10
功能自动化测试工具(QTP_9.2)完全使用手册
1.5 使用Mercury Tours范例网站
为了方便用户更好的了解、学习、掌握QTP的操作,QTP自身带了范例,这就是非常经典的“飞机订票”案例。点击“开始”——>“所有程序”——>“QuickTest Professional”——>“Sample Applications”,我们就能看到这两个案例。其中“Flight”是单机版的,用于管理名行系统的订票记录,具备新建、查询订单的功能,而“Mercury Tours Web site”是QTP提供的一个基于B/S结构的小型网站系统。在前面的章节中,我们已经提到QTP与Winrunner最大的区别之一,就是QTP更适合用于B/S架构的测试,同时鉴于现在基于B/S架构的系统越来越多,因此在后面的章节中,我们将重点介绍QTP录制“Mercury Tours Web site”时的基本操作,对于“Flight”这种C/S架构的操作将不做介绍,希望读者能谅解,有兴趣的读者在学习完本章后可以自己去尝试。
下面,我们进入案例中来先熟悉一下相关内容。
打开浏览器,在地址栏中输入:http://newtours.mercuryinteractive.com,将打开Mercury Tours主页;要登录并使用Mercury Tours应用程序,我们需要进行注册用户操作。在打开的主页上,点击“REGISTER”按钮,在打开的注册页面中,输入用户名、密码,并确认密码(注册页面中的红色标出部分为必填项,其余为选填项,可以不填写,其余的页面中也一样)。填写完毕后,点击“SUBMIT”按钮,Mercury Tours将完成注册操作,在弹出的确认页面上,选中并点击“SIGN-IN”按钮进入应用程序,在跳转的页面中,输入刚刚注册成功的用户名和密码,点击“SUBMIT”按钮进可进入“Flight Finder”页面。
11
功能自动化测试工具(QTP_9.2)完全使用手册
从“Flight Finder”页开始,我们就可以按照屏幕上的说明,完成从航班信息展示到预定航班等一系列的操作。需要说明的是,在“Book a Flight”页面中,红色部分标出的“Passenger”和“Credit Card”输入的信息可以是虚构的信息。
在完成订票的操作后,我们点击页面上方的“SIGN-OFF”按钮,退出系统,这样一个完整的订票流程就完成了。这个流程希望大家多操作几遍,达到熟练操作的程度,从而为我们下面介绍QTP的基础适用打下一个良好的基础。
2 QTP基础使用
在上一节中,我们提到QTP的测试流程分为七个关键步骤,其中关于第一个步骤“准备录制”在商一节中我们已经介绍过了,因此不再赘述。对于最后一个步骤“报告缺陷”,相关的内容将在测试管理篇中进行介绍。因此本节和下一节将重点介绍剩下的五个步骤。下面我们按照步骤一步步来展开论述QTP的使用。
2.1 录制脚本
在本部分中,我们将录制在Mercury Tours网站上预定从Frankfurt到London航班的进程。
(1) 打开QTP:启动QTP程序,确保在“加载项管理器”中,勾选上了“Web”选项。然后在探出的导航
页面中选择“Blank Test”选项,或者在文件工具栏中选择“New”——>“Test”选项,从而打开一个新的录制程序界面。
(2) 启动录制:在打开新的录制程序后,点击测试工具栏中的“Record”按钮
制和运行设置”对话框,如下图所示:
,系统将打开“录
12
功能自动化测试工具(QTP_9.2)完全使用手册
在“Web”选项卡中,我们可以选择浏览器类型、输入待测试网站的地址、选择“当测试关闭时是否
关闭浏览器”和“不在已打开的浏览器上录制和运行”等状态。其中,浏览器类型我们选择IE,待测试网站地址输入:http://newtours.mercuryinteractive.com。至于后面两个选项,我们启用默认状态(当然大家可以根据实际情况进行相应的选择)。
13
功能自动化测试工具(QTP_9.2)完全使用手册
在“Windows应用程序”选项卡中,确认“在以下应用程序(会话开始时打开的)上录制并运行”处于选定状态,且未列出任何应用程序。该设置可防止在录制脚本期间无意中录制在各种Windows应用程序(如Office)上执行的操作。
上述步骤都执行完毕后,点击“确定”按钮,就能开始QTP的录制了。
需要说明的是,QTP是可以用来录制C/S程序的,当录制C/S程序时,我们需要在“Windows应用程序”选项卡中指定应用程序即可。 (3) 开始录制:
在弹出的IE界面中,输入我们以前注册过的用户名和密码,点击“Sign-In”按钮;进入到“Flight
Finder”页面;
在“Flight Finder”页面中,我们在“Departing From”选择“Frankfurt”,“Arriving In”选择“London”,
其余的都采用默认值,然后点击“Continue”按钮,进入“Select Flight”页面;
需要说明的是,在执行这一步骤时,请不要点击“View Calendar”按钮,因为该按钮会打开一个基于Java的日历,而本次测试未加载Java加载项(Java加载项是需要单独购买的外部加载项)。 在“Select Flight”页面中,我们还是采用默认值,点击“Continue”按钮,进入“Book A Flight”
页面;
在“Book A Flight”页面中,我们需要在红色标出的部分填写信息,这些信息可以输入任意虚构
的信息,同时在“Billing Address”部分,勾选“Ticketless Travel”选项。上述信息填写完毕后,点击“Secure Purchase”按钮,进入“Flight Confirmation”页面;
在“Flight Confirmation”页面中,我们确认一下信息后,点击“Back To Home”页面; (4) 停止录制:在上述步骤都执行完毕后,一个完整的测试流程已经完成了,这个时候我们需要停止QTP
的录制程序,只需要点击测试工具栏中的“停止”按钮(5) 保存测试:录制完成的脚本,我们可以将其进行保存操作。
即可。
2.2 执行并分析脚本
在开始执行脚本之前,让我们先回顾一下我们上一阶段的成果,如下图所示:
14
功能自动化测试工具(QTP_9.2)完全使用手册
下面我们对其中的一部分内容进行说明。
Item:以基于图标的层次树形是现实每个步骤(测试对象、使用程序对象、函数调用或语句)的项。 Operation:要在项上执行的操作,如Select、Set等。
Value:选定操作的参数值,如,单击图像时要使用的鼠标按钮。 Documentat:描述步骤所执行操作的自动文档,用易于理解的句子编写。
左下角的Data Table主要存放的是一些参数,我们会在后面的学习过程对这部分进行深入学习;
右下角的Active Screen展示的是每个步骤所执行的动作,其中用粉色框部分突出显示的是当前步骤所点击的按钮,如上图所示,当前步骤点击的是“BACK TO HOME”按钮,我们还可以选择不同的步骤,看看Active Screen显示的图片;
下面开始回放一遍刚刚录制的脚本,点击测试工具栏中的“执行”按钮段,弹出如图XX所示的界面。
,系统将自动进入脚本回放阶
15
功能自动化测试工具(QTP_9.2)完全使用手册
这个界面主要是提示回放的结果保存在什么位置。我们采用默认位置,点击“确定”按钮,系统将开始进行脚本回放。脚本回放的目的在于:通过脚本回放我们可以看看我们录制的脚本是否是按照当初设计的步骤执行的,同时通过脚本回放我们能判断脚本录制是否成功。
QTP在进行脚本回放的同时,会自动弹出IE窗口,在IE中会按照录制脚本的步骤逐一进行操作,我们可以通过IE窗口中的动作来观察脚本的录制是否和当初设计的一致。脚本回放完毕后,QTP将自动开启测试结果窗口,如图XX所示:
16
功能自动化测试工具(QTP_9.2)完全使用手册
测试结果窗口分为两个部分显示测试执行结果:
(1) Test Result Tree:以树状图的方式在窗体的左侧显示出测试脚本所执行的额步骤,我们可以将树展开检
查每一个步骤,所有的执行步骤都会以图示的方式表示。如果最后的测试结果为失败,我们可以通过Test Result Tree展开后快速查找到究竟是哪个步骤导致的失败。
(2) 测试结果的详细信息:窗体的右侧显示的是测试结果的详细信息,其中在第一个表格中会显示哪些反
复(iteration)是通过的,哪些反复是失败的;第二个表格显示的是脚本的检查点,哪些是通过的,哪些是失败的,以及有几个警告信息。
说明:所谓反复,我们可以这么理解,QTP是以不同的资料执行整个测试或者某个动作的,每一次执
行可以成为一个反复,而且每个反复都会被编号。
3 QTP操作技巧
3.1 检查点
在学习QTP的检查点之前,我们首先要了解什么是检查点,以及检查点的作用是什么?其实在QTP、
Winrunner、Loadrunner中都有检查点的概念,其含义和作用都是相同的。所谓检查点,就是与当前录制脚本中的某个元素(可能是图片,可能是网页,也可能是文字等)之前插入一个验证点,看其是否与预期结果一致。插入检查点的好处不言而喻,它能自动跟踪某个关键窗口元素的显示情况,而不用手工去检查。
17
功能自动化测试工具(QTP_9.2)完全使用手册
检查点的设置,我们可以在录制脚本的过程中设立,也可以在脚本录制完成后再设立。 QTP提供了以下检查点:
说明 检查对象的属性 范例 检查某个radio button是否被选取 图片检查点 表格检查点 网页检查点 检查图片的属性 检查表格的属性 检查网页的属性 检查图片的来源文件是否正确 检查表格内的字段内容是否正确 检查网页加载的时间或者网页是否含有不正确的链接 文字/文字区域检查点 检查网页上或者窗口上出现文字是否正确 图像检查点 截取网页或窗口的画面检查画面是否正确 数据库检查点 Accessiblity检查点 检查数据库的内容是否正确 检查数据库查询的值是否正确 检查订票后的是否出现订票成功的文字 检查网页是否如预期呈现 检查点类型 标准检查点 Identifies areas of a web site to check for section 508 comliancy XML检查点 检查XML文件的内容 XML档案检查点是用来检查特定的XML档案;XML应用程序检查点则是用来检查网页内所有使用的XML文件 下面,我们重点学习一下其中的标准检查点、图片检查点、文字检查点和表格检查点。
(1) 标准检查点:标准检查点是用来检查窗口中的控件对象(如文本框、按钮等)的,凡是存储到对象仓
库(Object Repository)中的对象它都能检查。其操作方法如下:
首先,在关键字视图中选择要检查的对象,然后选择菜单栏中的Insert—>Check Point—>Standard
Check Point,如图XX所示;或者直接在Active Screen上选择要检查的对象,右击鼠标,选择其中的Insert Stanard Check Point,如图所示。
18
功能自动化测试工具(QTP_9.2)完全使用手册
选择完毕后,QTP会弹出标准检查点属性对话框,如图XX所示。在该对话框中,我们可以根据
实际情况选择需要检查的属性,比如选择name属性,其值为login。那么在程序运行期间,QTP会根据这个属性来检查该按钮的实际值和预期一致。
在该页面中,还有其他一些属性设置,其含义如下
Configure Value:属性值,它有两个选项
Constant:属性为一个常量;
19
功能自动化测试工具(QTP_9.2)完全使用手册 Parameter:属性为一个可变的参数,可以自己设置
Checkpoin timeout:QTP在该检查点停留的最大时间,如果超过该事件,属性还和
预期不符,则系统会报错;
Insert statement:插入检查点的位置,一般系统的默认值为插入当前步骤之前;
标准点插入完毕后,我们可以在关键字视图和专家视图中进行查看,如图XX和图XX所示。
(2) 文字检查点:标准检查点可以检查窗口中的控件对象,那么对于没有存储到对象仓库中的文字和图片,
标准检查点是无法进行验证的。因此针对这一问题,QTP引入了图片检查点和文字检查点。
文字检查点的作用就是检查应用程序窗体上或者Web网页上的文字信息是否和预期相符,其操作
方法和标准检查点的方法类似;对于文字检查点的操作我们不做赘述(我们以select a flight页面中的depart标题信息中的frankfurt作为我们联系文字检查点的示例),我们重点学习一下文字检查点的一些属性。当我们在插入一个文字检查点后,系统将弹出如图XX所示的文字检查点对话框。
20
功能自动化测试工具(QTP_9.2)完全使用手册
在上图所示的界面中,展示出文字检查点的属性 Checked Text:检查被选择的文本。
Text Before:检查被选择文本之前的文本; Text After:检查被选择文本之后的文本; Constant:设置文字内容为一个具体的常量; Parameter:设置文本内容为一个可变的参数; Match Case:是否区分大小写; Ignore spaces:是否忽略空格;
Exact match:精确匹配,如果不选中该项,那实际结果中如果完全包括预期结果或者包含预期结
果的一部分也能通过;
Text not displayed:不显示的文字是否要检查;
Checkpoint timeout:QTP在该检查点停留的最大时间,如果超过该事件,属性还和预期不符,
则系统会报错;
Insert statement:插入检查点的位置,一般系统的默认值为插入当前步骤之前;
(3) 图片检查点:图片检查点的作用是检查程序运行时的某幅图片是否和预期相符。需要说明的是,如果
由于显卡、操作系统、分辨率的不同,有可能导致图像检查点的误差,这是就需要用户根据实际情况灵活应用。图片检查点的应用和文字检查点是相似的,在此我们不做详细介绍。
21
功能自动化测试工具(QTP_9.2)完全使用手册
(4) 表格检查点:表格检查点的作用是检查程序运行时某个表格是否和预期相符。和文字检查略不同的是,
文字检查点只能检查一个词语,而表格检查点可以检查一个表格(一个表格有多少元素,表格检查点就会设置几个检查元素)。我们以Book a flight中机票价格为例来学习表格检查点的设置:
进入关键字视图,选择book a flight,然后在Active Screen中选择第一个航班价格(270),
点击鼠标右键,选择Insert Standard Checkpoint,系统将一个对话框,这是系统默认选择的是WebElement:270,这是我们选择上一层的WebTable对象,如图XX所示。(当我们选择WebTable时,在Active Screen中,对应的表格也将突出显示)
点击上图中的OK按钮,系统将弹出如图XX所示的表格检查点
22
功能自动化测试工具(QTP_9.2)完全使用手册
系统默认是每个字段都会被勾选,表示所有字段都会做检查。我们可以根据实际情况,勾选要做
检查的字段。我们在此勾选第一个270,如图XX所示
23
功能自动化测试工具(QTP_9.2)完全使用手册
点击ok按钮,系统将完成表格检查点的设置。在关键字视图中也将出现相应的检查点,如图XX
所示
3.2 参数化
参数化是QTP中一个十分重要的功能。我们在日常测试过程中,经常碰到这样的情况,比如在订票时,我
们可能要输入100组不同的订票数据,最直接的解决方法就是根据这些不同的数据录制100组脚本,但是这样的工作量可想而知。在QTP中,通过引入参数化方法,将我们从这些庞大的工作中出来,我们可以录制一
24
功能自动化测试工具(QTP_9.2)完全使用手册
个脚本,通过参数化,建立这100组不同的数据,QTP在执行测试脚本时,就会分别使用这100组数据,执行100次新增订单的测试。
下面,我们以前面录制的订票脚本为例,来学习如何在QTP中使用参数化功能。在最初的脚本中,我们录
制的是从Frankfurt到London这组数据,并没有测试其他地点,因此我们在此选择将出发地点作为我们练习参数化的“战场”。
打开前面录制好的订票脚本,进入关键字视图中,将其全部展开,进入Find a flight—>fromport,
选择其中的Value列,点击其中的参数化图标,如图XX所示:
系统将弹出参数设置的对话框,如图XX所示:
在该对话框中,其各属性说明如下:
Constant:输入为一个常量; Parameter:输入参数化;
我们选择parameter选项,会看到如图XX所示的选项
25
功能自动化测试工具(QTP_9.2)完全使用手册
Data table:在数据表中设置参数
Environment:从系统环境变量中获取参数,如主机名称等;
Random number:系统产生一个随机数作为参数,随机数的范围可以进行设定 Name:参数名称
Location in data table:选择参数的使用范围;其中Global sheet是指该参数适用于全局。Current
action sheet(local)是指该参数仅适用当前的Action。
这里我们选择Parameter选项,选择其中的Data table,参数名设置为departure,其余都选用
默认选项,点击ok按钮后,我们会发现在关键字视图左下角中的Data table中出现一列名为depature的参数,其第一个值就是我们最开始录制脚本是的frankfurt,如图XX所示;
26
功能自动化测试工具(QTP_9.2)完全使用手册
下面,我们开始在数据表中输入参数。我们点击Data table中的departure列,在其第二行中输入
portland,第三行输入seattle;
这个时候,我们的参数化工作是否已经结束呢?不,我们是否还记得在前面讲检查点的时候,我们曾
经对frankfurt设置过文字检查点。如果我们对find a flight页面中的frankfurt进行了参数化,那么必将对后面的文字检查点产生影响。因此在此我们还要修正受到参数化影响的测试步骤。我们进入frankfurt这个文字检查点,进入该检查点的对话框,选择其中parmeter选项,并点击其parameter options选项,如图XX所示
27
功能自动化测试工具(QTP_9.2)完全使用手册
系统将开启一个对话窗口,我们在name属性中的下拉列表中选取我们设置的参数名departure,指定
这个文字检查点使用departure字段中的值,当成是检查点的预期值,如图XX所示。
28
功能自动化测试工具(QTP_9.2)完全使用手册
这样一个完整的参数化过程就结束了,我们可以运行一下参数化后的脚本,看是否能成功。其运行结
果如图XX所示。
29
功能自动化测试工具(QTP_9.2)完全使用手册
3.3 输出值
在前面学习参数化的过程中,我们是通过data table来设置不同的参数。其实我们还可以从应用程序输出数
据到data table,并且该数据还可以在后续阶段被使用。
我们还是以我们前面录制的飞机订票脚本作为我们学习输出值的范例。我们在学习参数化时,曾经将出发
地进行了参数化操作,细心的读者会发现对出发地进行参数化操作后,会出现如下一个问题,那就是不同的出发地,会导致在Book a Flight界面中的机票价格不同。如果我们对机票价格设置了文字检查点,那么由于出发地不同导致的机票价格不同,将会直接导致机票价格文字检查点不能通过验证,那么如何来解决这个问题呢?这个时候,就需要引入QTP中的输入值。其具体操作方法如下:
以前面我们学习参数化的脚本为基础,在其基础之上按照表格检查点设置步骤,在Book a flight 界面
中为第一个机票价格设置表格检查点;
针对这个脚本,我们尝试着运行一遍,看看结果如何?其最终结果如图XX所示
30
功能自动化测试工具(QTP_9.2)完全使用手册
产生错误的原因我们在前面已经分析过了,下面我们开始来分析如何解决这个错误。在Book a flight
页面中的机票是从Select a flight页面中读取过来的,因此我们的测试脚本应当从Select a flight页面中获取机票价格,从而去验证Book a flight页面上显示的机票价格。因此在关键字视图中,我们选择Select a flight,在Active Screen中选取270(注意不要包含$符号),然后点击鼠标右键,选择其中的“Insert Text Output”选项,开启如图XX所示的对话框。
31
功能自动化测试工具(QTP_9.2)完全使用手册
选择上图中的“Modify”按钮,弹出如图XX所示的对话框,修改其name为price。
接下来我们需要进行对Book a flight页面中表格检查点的预期值进行修正。在关键字视图中,选择
CheckPoint(\"Book a Flight: Mercury\"),点击鼠标右键,选择Checkpoint Properties,在弹出的对话框中选中第一个270所在的单元格,然后选择Parameter选项,并点击修改按钮,如图XX所示
32
功能自动化测试工具(QTP_9.2)完全使用手册
在弹出的Parameter Options对话框中,其name下拉选择price,如图XX所示
这时候回到Table Checkpoint Properties对话框,可以看到这个检查点的预期结果已经被参数化了,如
图XX所示
33
功能自动化测试工具(QTP_9.2)完全使用手册
将上述脚本执行,看看最终执行结果如何,其结果如图XX所示
34
功能自动化测试工具(QTP_9.2)完全使用手册
我们可以点击上图中的Run—time data table,可以产看到脚本运行过程中取到的输出值,如图XX所示
35
功能自动化测试工具(QTP_9.2)完全使用手册
3.4 对象仓库
在QTP中,有一个很重要的概念,这就是对象仓库(Object Repository)。所谓对象仓库,顾名思义,就是存储了所有的对象及其属性。在录制脚本的过程中,QTP会默认把所有用户访问过的页面和控件都记录并存储到对象仓库中。
我们可以选择Resources/ Repository选项,进入到对象仓库管理管理界面,如图XX所示。
36
功能自动化测试工具(QTP_9.2)完全使用手册
其中,左侧显示的是所有测试对象的列表,右侧是每一个对象对应的属性列表。在这个界面中我们可以为脚本添加新的对象,并对相应的属性进行增加或删除等维护操作。
QTP中引入对象仓库,其意义深远。相信所有接触过测试的人,都有这样的体会,那就是被测系统每一个新版本的推出,都伴随着系统功能的相应调整。QTP作为自动化功能测试工具,如何能在被测系统的不断变化中实现自动呢?对象仓库就是解决这一问题的“利器”。我们可以根据系统的实际情况,灵活利用对象仓库对被测系统的对象及对象的属性进行维护,从而实现快速高效地测试,达到一次录入脚本,多次重复使用的目的。这点在进行回归测试时尤为明显。
下面,我们来学习一下如何利用对象仓库。
属性维护:相对对象维护,属性维护的操作比较简单。我们只需要选择一个对象,然后点击右侧的
钮或者
按钮,进行相关属性的添加或删除操作。
按钮,QTP程序会最小化到任
按
对象维护:添加新的对象时,我们可以点击对象仓库对话框菜单栏中的
务栏,这时所选的或者点击的Windows对象将会自动添加到对象仓库中,如单击Windows左面左下角的“开始”菜单按钮,系统将会将WinButton对象添加到对象仓库中去,如图XX所示
37
功能自动化测试工具(QTP_9.2)完全使用手册
特别说明:如果要添加的对象需要进行一系列的操作(如系统登录等)才能显示出来,可以在操作的时候按住Ctrl键,然后进行相应的操作,知道我们需要的对象显示出来,再放开Ctrl键,捕获所添加的对象即可。
38
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务