本实验参照实验指导书,以及下面链接博客完成,由于初次使用QTP,难免有讲解不清,可与下面链接一起参考:
https://www.cnblogs.com/xiezhidong/p/6784684.html
实验四 功能测试工具 QTP 的使用
1.实验要求
一、熟悉QTP 软件的安装,以及简单使用。
二、掌握以下几种方法:
1.录制测试脚本:教导你如何录制测试脚本,并且对测试脚本Keyword View做个介绍。
2.录制并分析测试脚本:示范如何执行测试脚本以及检视测试脚本的执行结果。
3.建立检查点:说明如何建立在测试脚本中检查点以验证网站上的信息是你预期的。
4.参数化:示范如何透过参数化,让你可以在测试脚本中使用多组资料执行测试脚本。
5.建立输出值:教导你如何将网页上的数据,输出到参数中。
- 实验步骤
2.0 QTP 安装
参考QTP(自动化功能测试工具).pdf或是实验文件包里的.txt文件指导,这里我不再给出具体安装步骤。
2.1 注册与登陆
登陆http://newtours.demoaut.com/注册一个账号,这里我注册的用户名密码如下;
用户名:**********
密码:gdcp
注册完成后,登陆,跑一遍订机票的流程。操作比较简单,这里就不给出截图了。
2.2测试脚本
2.2.1 录制测试脚本
目的:录制一个测试脚本,在范例网站上预订一张从纽约到旧金山的机票
步骤:
1 打开QTP ,加载web控件,新建一个测试工程
2 开始录制
3 打开范例网站,输入用户名和密码登录后,预订相应机票
4 结束录制。
5 将测试脚本保存为“实验1”。
2.2.2 执行测试脚本
设置运行选项。点击“Tool>Options”打开设置选项对话框,选择“Run”标签页, 在工具条上点击“Run”按钮,打开“Run”对话框:询问要将本次的测试运行结果保存到何处。选择“New Run results folder”单选按钮,设定好存放路径(在这使用预设的测试结果名称)。点击“OK”按钮开始执行测试。
测试结果如下:
2.3建立检查点
掌握了如何录制、执行测试脚本以及查看测试结果。只是实现了测试执行的自动化,没有实现测试验证的自动化,所以这并不是真正的自动化测试。在这一章我们学习如何在测试脚本中设置检查点,以验证执行结果的真确性。
“检查点”是将指定属性的当前值与该属性的期望值进行比较的验证点。这能够确定网站或应用程序是否正常运行。当添加检查点时, QuickTest 会将检查点添加到关键字视图中的当前行并在专家视图中添加一条“检查检查点”语句。运行测试或组件时, QuickTest 会将检查点的期望结果与当前结果进行比较。如果结果不匹配,检查点就会失败。可以在“测试结果”窗口中查看检查点的结果
2.3.1 建立四个检查点
打开实验1的工程文件,另存为实验2
1.在QuickTest的视图树中展开“Action1>Welcome: Mercury Tours>Book a Flight: Mercury ”,由于输入使用者姓氏的测试步骤是 “passFirst0”这个步骤,所以要选择这个步骤的下一个测试步骤,以便建立检查点。
对“Active Screen”中的First Name 编辑框点击鼠标右键,显示插入选择点的类型。
2.网页检查点会检查网页的链接以及图像的数量时候与当前录制时的数量一致。网页检查点只能应用于Web页面中。 创建网页检查:
展开“Action1>Welcome: Mercury Tours”选择“Book a Flight: Mercury”页面,在“Active Screen”会显示相应的页面
在“Active Screen”上的任意地方点击鼠标右键,选取“Insert Standard Checkpoint”,开启“Object Selection-Checkpoint Properties”对话窗口(由于选择的位置不同,对话窗口显示被选取的对象可能不一样)。
3.建立一个文字检查点,检查在“Flight Confirmation”网页中是否出现“New York”?
展开“Action1>Welcome: Mercury Tours”选择“Flight Confirmation: Mercury”页面,在“Active Screen”会显示相应的页面
在“Active Screen”中选择在“Departing”下方的“New York”。对选取的文字按下鼠标右键,并选取“Insert Text Checkpoint”打开“Text Checkpoint Properties”对话窗口。
通过添加表检查点,可以检查应用程序中显示的表的内容。通过向测试或组件中添加表检查点,可以检查表的单元格中是否显示了指定的值。对于 ActiveX 表,还可以检查表对 象的属性。要添加表检查点,可使用“检查点属性”对话框。
在上面我们已经添加了标准、网页、文字将查点,接下来我们在Checkpoint测试脚本中再添加一个表格检查点,检查“Book a Flight: Mercury”网页上航班的价格:
展开“Action1>Welcome: Mercury Tours”选择“Book a Flight: Mercury”页面,在“Active Screen”会显示相应的页面。
4.建立表格检查点 在“Active Screen”中,在第一个航班的价钱上“270”上点击鼠标右键,选择“Insert Standard Checkpoint”打开“Object Selection-Checkpoint Properties”对话窗口。
执行并分析使用检查点的测试脚本
分析结果如下:
2.3.1 检查对象的错误尝试
打开实验1,另存为实验2A,
试着输入一个测试脚本中不同的字符串,将工程保存为实验2A
passFirstO建立一个检查点,输入字符“hhhh”,将看到测试错误报告如下图所示:
2.3.2 检查网页的错误尝试
打开实验1,另存为实验2B,
尝试将网页检查点的链接数改为15,看看运行测试脚本是否能通过。
错误报告如图:
2.3.3 检查文字的错误尝试
打开实验1,另存为实验2C
将文字检查点改为new york12,保存测试脚本后运行,看是否能运行通过。
不能通过的话,请你找出该实验的运行报告
错误报告如下:
2.3.4检查表格的错误尝试
打开实验1,另存为实验2D
将表格检查点改为275,保存测试脚本后运行,看是否能运行通过。
不能通过的话,请你找出该实验的运行报告查看
运行报告如下:
2.4 参数化
在测试应用程序时,可能想检查对应用程序使用不同输入数据进行同一操作时,程序是否能正常的工作。在这种情况下,你可以将这个操作重复录制多次,每次填入不同的数据,这种方法虽然能够解决问题,但实现起来太笨拙了。QuickTest提供了一个更好的方法来解决这个问题——参数化测试脚本。参数化测试脚本包括数据输入的参数化和检测点的参数化。
使用 QuickTest 可以通过将固定值替换为参数,扩展基本测试或组件的范围。该过程(称为参数化)大大提高了测试或组件的功能和灵活性。
2.4.1 使用数据表参数
将实验2文件另存为实验4。
在测试脚本中,纽约是个常数值,也就是说,每次执行测试脚本预定机票时,出发地点都纽约,现在,我们将测试脚本中的出发地点参数化,这样,执行测试
脚本时就会以不同的出发地点去预定机票了。
选择要参数化的文字:在视图树中展开“Action1>Welcome: Mercury Tours>Find a Flight: Mercury ”在视图树中选择“fromPort”右边的“Value”字段,然后再点击参数化图标.设置要参数化的属性,选择“Parameter”选择项,这样就可以用参数值来取代“New York”这个常数了,在参数中选择“Data Table”选项,这样这个参数就可以从QuickTest的Data Table中取得,将参数的名字改为“departure”。
点击“OK”确认。参数化以后可以看到树视图中的变化,在参数之前,这个测试步骤显示“foomPost …Select… New York”,现在,这个步骤变成了“foomPost …Select… Data Table("departure",dtGlobalSheet)”。而且当点击Value字段时,Value字段会显示如图所示:
QuickTest会在Data Table中新增departure参数字段,并且插入了一行New York的值,New York 会成为测试脚本执行使用的第一个值。
在departure字段中加入出发点资料,使QuickTest可以使用这些资料执行脚本,在departure字段的第二行,第三行分别输入:Portland 、Seattle
2.4.2 修正受到参数化影响的检查点
当测试步骤被参数化以后,可能会影响到其他的测试步骤也要参数化,例如我们为了验证 “Flight Confirmation”网页中是否出现“New York ”,(文字检查点),在网页上添加了一个文字检查点。那么,就要对出发地的文字检查点做参数化,以符合对出发地点参数化的预期效果。
在“Checked Text”的Constant字段中显示为“New York”,表示测试脚本在每次执行时,这个文字检查点的预期值都为“New York”。我们选择Parameter:
2.4.3 执行并分析使用参数的测试脚本
最后,虽然每次执行时,文字检查点的结果是通过的,但是第二次与第三次的执行结果仍然为失败。这是因为出发地点的改变,造成在表格检查点中的机票价钱等改变,导致表格检查点失败。
2.5 输出值
通过 QuickTest 可以检索测试或组件中的值,并将这些值作为输出值存储。此后,就可以检索这些值,并在运行会话的不同阶段使用该值作为输入.
2.5.1在脚本中建立输出值
在实验4中,因为在表格检查点中机票价钱的预期结果,并没有随着出发地点的改变而变动,导致第二、第三次的执行结果是失败的。
将实验4复制为实验3,现在,我们从“Select a Flight: Mercury ”网页上取得机票价钱,并且已取得的机票价钱更新表格检查点的预期结果,这样一来,测试脚本就可以利用在“Select a Flight: Mercury”网页上取得的机票价钱去验证“Book a Flight: Mercury”上显示的机票价钱。
在树视图中,展开“Welcome: Mercury Tours”并且点击“Select a Flight: Mercury”网页,在Active Screen窗口会显示相应的页面。在 Active Screen窗口中选取框住270,然后点击鼠标右键,选择“Insert Text Output”,打开“Text Output Value Properties”对话窗口:
在“Text Output Value Properties”对话窗口中点击“Modify”按钮,打开“Output Options”对话窗口,在名字字段显示Select_a_Flight_MercuryOutput_Text_out,将其改成depart_flight_price ,接受其它默认值,点击“OK”确认,QuickTest会在Data Table中加入depart_flight_price字段。
2.5.2修正表格检查点的预期值
在树视图中,展开“Welcome: Mercury Tours >Book a Flight: Mercury”,在“Checkpoint"New York to San Francisco"”上点击鼠标右键,选择“Checkpoint Properties”,打开“Table Checkpoint Properties”对话窗口。
选中第三行,第三列(被勾选的字段),在“Configure value”中选择“Parameter”然后点击“Parameter Options”按钮,打开“Parameter Options”对话窗口:
在窗口的名字下拉列表中选择depart_flight_price。
2.5.3 执行并分析使用输出值的测试脚本
结果如下:
3.实验中遇到的问题
在QTP的安装环节十分不顺利,执行QTP10.0的**文件时显示安装成功,但License Manager里面却没有Iservrc文件,上网百度却不知从何问起,最后发现,QTP**文件下载mgn-mqt82.exe在c盘Program Files(86)中需要以管理员身份运行,找到问题所在后,安装过程就顺利多了。
最开始实验时,点击录制脚本,弹出网站,却发现在网页上的一系列操作,都没有被记录。也就是说从录制开始到结束,没有录到任何东西,这个问题也是让我百思不得其解,一直以为是安装过程中有东西没有配好,以至于把软件卸载重装了几遍,但问题依然没有解决。最后突然想到是不是浏览器的问题呢,然后开始在浏览器上下功夫,一通操作仍然没有结果。最后终于在将测试网站http://newtours.demoaut.com/添加为受信任站点后,成功解决问题。
执行测试结果的过程很漫长,应该是浏览器的原因,另外,有时候第一次执行会失败,多执行几次才会成功。