自动化测试实践QTP.docx
- 文档编号:1325648
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:35
- 大小:1.30MB
自动化测试实践QTP.docx
《自动化测试实践QTP.docx》由会员分享,可在线阅读,更多相关《自动化测试实践QTP.docx(35页珍藏版)》请在冰点文库上搜索。
自动化测试实践QTP
自动化测试实践
参考书籍《QTP自动化测试实践》
一、实践目的
●掌握QTP操作界面的组成
●掌握如何创建自动化测试用例
实验任务一QTP自动化实现飞机票的订购
步骤一:
脚本录制和回放
1、打开qtp自带的飞机订票应用程序,输入正确的用户名,密码点击登录。
2、打开QTP应用程序,勾选vb以及active插件
3、新建一个空测试,“blanktest”
4、录制系统用户登录后,完成一张机票的订购,该选项说明系统将录入用户的任何基于windows的应用程序操作。
5、保存录制脚本
6、运行录制过程,是否出现问题?
步骤二:
脚本编辑
1、在关键视图末尾插入新的测试步骤,清空订票数据。
具体插入方法,参看一下参考实例。
【提示:
如何插入】
如果想在打开登录界面并激活login窗口的测试步骤之后,在输入代理机构名的测试步骤之前,先单击”help”按钮查看帮助,则需要使用插入测试步骤的功能。
选择打开login窗体的步骤,单击右键,选择InsertStep
在Category中包含三个下拉选项:
TestObjects(测试对象)、UtilityObjects(工具对象)、Function。
选择TestObjects,点击红色框住的图标。
选中“help”按钮
对象间谍
实验任务二:
QTP基本功能体验
1、导出测试用例
在录制过程中,QTP为每一步操作自动生成操作文档,放到关键字视图的document列显示出来,在documentation列的列头单击鼠标成测试用例,用于指导手工测试的进行。
要求将之上的录制步骤导出测试用例。
录制脚本只是实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程,如增加多种类型的检查点功能,既可以让QTP检查一下在程序的某个特定位置或对话框中是否出现了需要的文字,还可以检查一个链接是否返回了正确的URL地址等,还可以通过参数化功能,使用多组不同的数据驱动整个测试过程。
2、插入检查点
前面我们只是实现了测试执行的自动化,没有实现测试验证的自动化,所以这并不是真正的自动化测试。
如果想要判断界面操作的结果是否正确,则需要利用QTP提供的检查点插入功能。
“检查点”是将指定属性的当前值与该属性的期望值进行比较的验证点,它让测试员可以根据验证点的结果来判断被测试的应用程序是否正常工作。
这能够确定网站或应用程序是否正常运行。
要求在之上的录制脚本中
●为订购界面插入一个文本检查点(可以检查特定的文本是否在界面上显示),检查窗体上是否出现“flightreservation”文字,查看ACTVIESCREEN视图—查看订购界面—右击InsertTextCheckPoint——指向界面上的文字对象
●插入一检查点,检查选择座位类型单选按钮是否被选中。
查看ACTVIESCREEN视图—查看座位类型选择界面—右击InsertStandardCheckPoint——指向界面上的文字对象
●在录制订票完成后,添加一数据库检查点(可以检查应用程序所连接的数据库的数据内容,如添加了某条记录后,使用数据库检查点检查记录是否被正确地添加到数据库指定表中),检查新加的记录是否被存储到了数据库中。
(1)、假设现机票订票系统的数据库如下:
在计算机硬盘上搜索flight32.mdb
121212
(2)、查看QTP在”KEYWORDVIew”关键字视图,查看步骤
在该步骤后,选择菜单Insert|CheckPoint|DataBaseCheckPoint,插入数据库检查检查点,实现如下配置
点击finish,出现如下图所示,将查询结果放置到DataTable中,点击ok。
测试预期查询结果集筛选结果是否为如下记录。
点击ok,关键视图插入一检查点
●删除mdb数据库中编号为11的记录,记住编号是否为11,依实际情况而定
●运行测试,查看结果,为使得结果得到正确的检测,在插入订单后设置一定的延时,避免检测动作早于信息写入。
设置方法:
切换至专家视图,插入如下代码。
如何让测试脚本执行时,不仅仅局限于测试录制或者编辑时的测试数据呢?
5、数据驱动测试
数据驱动测试:
把测试脚本中的测试数据提取出来,存储到外部文件或数据库中,在测试过程中,从文件动态读入测试数据。
数据驱动测试的一般步骤:
(1)、参数化测试步骤的数据,绑定到数据表格中的某个字段
(2)、编辑数据表格,在表格中编辑多行测试数据
【实践要求】
1、实现“输入终点“即Flyto的测试步骤的参数化过程
a)选择“FlyTo:
”所在的步骤行,单击Value列所在的单元格,如图所示
b)选中红色边框标识的图标,出现如下界面,选择Parameter
c)单击Ok按钮,在关键字视图中可看到Value的值已发生改变,这时关注DataTable视图,添加一条数据London,实现两次迭代。
d)测试运行。
[扩展]
思考:
实现订票日期,起始点以及航班的参数化
提示:
订购日期,起始点的参数化采用DataTable参数化
选择航班这个步骤的参数化有所不同,因为航班会跟随选择的起始点而变化,因此需要做特殊的处理。
【提示】可用RandomNumber来实现,在关键视图找到被参数化位置选择“#”符号。
实现如下随机配置。
(由于航班选择是通过ID读取,我们随机产生id值)
QTP学习
(二)测试web项目
摘要
◆了解自动化测试
◆认识自动化测试工具QTP
◆了解QTP的简单操作
◆完成脚本的录制
第一部分MercuryTours示范网站
MercuryTours示范网站是一个提供机票预订服务的网站,在本课程中,我们使用MI公司提供的MercuryTours示范网站作为演示QuickTest各个功能的例子程序。
1.在开始使用MercuryTours示范网站(Tours网站上注册一个使用者账号。
2.MercuryTours示范网站使用
要登录并使用MercuryTours示范网站必须使用注册账号。
在使用网站时,从[FlightFinder]网页开始,按照画面上的指示预订机票。
在BookaFlight网页,无需填写真实的旅客信息,信用卡卡号等标示为红色的字段中添加虚拟数据就可以了。
3.结束订票动作
完成订票动作后,在[FlightConfirmation]网页上点选[LOGOUT]按钮或是选择[SIGN-OFF]按钮。
4.关闭浏览器
现在知道如何使用MercuryTours示范网站,就可以开始使用QuickTest录制测试脚本了。
第二部分录制/执行测试脚本
当浏览网站或使用应用程序时,QuickTest会纪录你的操作步骤,并产生测试脚本。
当停止录制后,会看到QuickTest在KeywordView中以表格的方式显示测试脚本的操作步骤。
2.1录制前的准备
在录制脚本前,首先要确认以下几项:
⏹已经在MercuryTours示范网站上注册了一个新的使用者账号。
⏹在正式开始录制一个测试之前,关闭所有已经打开的IE窗口。
这是为了能够正常的进行录制,这一点要特别注意。
⏹关闭所有与测试不相关的程序窗口。
2.2录制测试脚本
2.2.1录制测试脚本
使用QuickTest录制一个测试脚本,在MercuryTours范例网站上预定一张从纽约(NewYork)到旧金山(SanFrancisco)的机票。
1.执行QuickTest并开启一个全新的测试脚本
⏹开启QuickTest,在“Add-inManager”窗口中选择“Web”选项,点击“OK”关闭“Add-inManager”窗口,进入QuickTestProfessional主窗口。
⏹如果QuickTestProfessional已经启动,检查“Help>AboutQuickTestProfessional”查看目前加载了那些add-ins。
如果没有加载“Web”,那么必须关闭并重新启动QuickTestProfessional,然后在“Add-inManager”窗口中选择“Web”。
⏹如果在执行QuickTestProfessional时没有开启“Add-inManager”则点击“Tool>Options”,在“General”标签页勾选“DisplayAdd-inManageronStartup”,在下次执行QuickTestProfessional时就会看到“Add-inManager”窗口了
2.开始录制测试脚本
选中“Test>Record”或者点选工具栏上的“Record”按钮。
打开“RecordandRunSettings”对话窗口:
在“Web”标签页选择“Openthefollowingbrowserwhenarecordorrunsessionbegins”
在“Type”下拉列表中选择“MicrosoftInternetExplorer”为浏览器的类型;在“Address”中添加“这样,在录制的时候,QuickTest会自动打开IE浏览器并连接到MercuryTours范例网站上。
点击“确定”按钮,开始录制了,将自动打开IE浏览器并连接到MercuryTours范例网站上。
3.登录MercuryTours网站
在用户名和密码输入注册时使用的账号和密码,点击“Sign-in”,进入“FlightFinder”网页。
4.输入订票数据
输入以下订票数据:
DepartingFrom:
NewYork
On:
May14
ArrivingIn:
SanFrancisco
Returning:
May28
ServiceClass:
Businessclass
其他字段保留默认值,点击“CONTINUE”按钮打开“SelectFlight”页面。
5.选择飞机航班
可以保存默认值,点击“CONTINUE”按钮打开“BookaFlight”页面。
6.输入必填字段(红色字段)
输入用户名和信用卡号码(信用卡可以输入虚构的号码,如8888-8888)。
点击网页下方的“SECUREPURCHASE”按钮,打开“FlightConfirmation”网页。
7.完成定制流程
查看订票数据,并选择“BACKTOHOME”回到MercuryTours网站首页。
8.停止录制
在QuickTest工具列上点击“Stop”按钮,停止录制。
到这里已经完成了预定从“纽约-旧金山”机票的动作,并且QuickTest已经录制了从按下“Record”按钮后到“Stop”按钮之间的所有操作。
9.保存脚本
选择“File>Save”或者点击工具栏上的“Save”按钮,开启“Save”对话窗口。
选择的路径,填写文件名,我们取名为Flight。
点击“保存”按钮进行保存。
通过以上九个步骤,我们录制了一个完整的测试脚本—预定从纽约到旧金山的机票。
2.3执行测试脚本
当运行录制好的测试脚本时,QuickTest会打开被测试程序,执行你在测试中录制的每一个操作。
测试运行结束后,QuickTest显示本次运行的结果。
接下来,我们执行在上一节中录制的Flight测试脚本。
1.在工具条上点击“Run”按钮,打开“Run”对话框:
2.4分析测试结果
在测试执行完成后,QuickTest会自动显示测试结果窗口,如下图所示:
第三部分建立检查点
创建4个检查点,分别是:
对象检查、网页检查、文字检查以及表格检查。
任务1:
添加一个检查点用以检查旅客填写机票订购信息的姓氏是否正确。
创建标准检查点:
1.打开Checkpoint测试脚本。
2.选择要建立检查点的网页
在QuickTest的视图树中展开“Action1>Welcome:
MercuryTours>BookaFlight:
Mercury”,由于输入使用者姓氏的测试步骤是“passFirst0”这个步骤,所以要选择这个步骤的下一个测试步骤,以便建立检查点。
如下图所示:
3.建立标准检查点
对“ActiveScreen”中的FirstName编辑框点击鼠标右键,显示插入选择点的类型。
选择“InsertStandardCheckpoint”选型,显示“ObjectSelection-CheckpointProperties”对话窗口:
确保当前的焦点定位在“WebEdit:
passFirst0”上,点击“OK”按钮,弹出如下的窗口,保留text属性,其他去掉。
任务2:
为BookaFlight:
Mercury”页面添加网页检查点
网页检查点会检查网页的链接以及图像的数量时候与当前录制时的数量一致。
网页检查点只能应用于Web页面中。
创建网页检查:
1.选择要建立检查点的网页
展开“Action1>Welcome:
MercuryTours”选择“BookaFlight:
Mercury”页面,在“ActiveScreen”会显示相应的页面。
2.建立网页检查点
在“ActiveScreen”上的任意地方点击鼠标右键,选取“InsertStandardCheckpoint”,开启“ObjectSelection-CheckpointProperties”对话窗口(由于选择的位置不同,对话窗口显示被选取的对象可能不一样)。
选择最上面的“Page:
BookaFlight:
Mercury”,并点击“OK”按钮确认,将打开“PageCheckpointProperties”对话框。
当执行测试时,QuickTest会检查网页的链接与图片的数量,以及加载的时间,如同对话窗口上方所显示的那样。
QuickTest页检查每一个链接的URL以及每一个图片的原始文件是否存在。
接受默认设定,点击“OK”。
QuickTest会在BookaFlight:
Mercury网页上加一个网页检查。
4.在工具栏上点击“Save”保存脚本。
任务3:
检查在“FlightConfirmation”网页中是否出现“NewYork”?
建立文字检查点:
1.确定要建立检查点的网页
展开“Action1>Welcome:
MercuryTours”选择“FlightConfirmation:
Mercury”页面,在“ActiveScreen”会显示相应的页面。
2.建立文字检查点
在“ActiveScreen”中选择在“Departing”下方的“NewYork”。
对选取的文字按下鼠标右键,并选取“InsertTextCheckpoint”打开“TextCheckpointProperties”对话窗口。
当“CheckedText”出现在下拉式清单中时,在“Constant”字段显示的就是选取的文字。
这也就是QuickTest在执行测试脚本时所要检查的文字。
3.点击“OK”关闭窗口。
QuickTest会在测试脚本上加上一个文字检查点,这个文字检查点会出现在“FlightConfirmation:
Mercury”网页下方。
4.在工具栏上点击“Save”保存脚本。
任务4:
添加一个表格检查点,检查“BookaFlight:
Mercury”网页上航班的价格。
通过添加表检查点,可以检查应用程序中显示的表的内容。
通过向测试或组件中添加表检查点,可以检查表的单元格中是否显示了指定的值。
对于ActiveX表,还可以检查表对象的属性。
要添加表检查点,可使用“检查点属性”对话框。
在上面我们已经添加了标准、网页、文字将查点,接下来我们在Checkpoint测试脚本中再添加一个表格检查点,检查“BookaFlight:
Mercury”网页上航班的价格。
创建表格检查点:
1.选取要建立检查点的网页
展开“Action1>Welcome:
MercuryTours”选择“BookaFlight:
Mercury”页面,在“ActiveScreen”会显示相应的页面。
2.建立表格检查点
在“ActiveScreen”中,在第一个航班的价钱上“270”上点击鼠标右键,选择“InsertStandardCheckpoint”打开“ObjectSelection-CheckpointProperties”对话窗口。
刚打开时选取的是“WebElement:
270”,这时要选择上一层的WebTable对象,在这个例子中选择“WebTable:
NewYorktoSanFrancisco”。
点击“OK”打开“TableCheckpointProperties”对话窗口,显示整个表格的内容。
预设每一个字段都会被选择,表示所有字段都会检查,可以对某个字段双击,取消检查字段,或者选择整个栏和列,执行选取或取消的动作。
在每个字段的列标题上双击,取消勾选的图标,然后再270字段处双击,这样执行时QuickTest只会对这个字段值作检查。
3.点击“OK”关闭对话框。
QuickTest会在测试脚本中,“BookaFlight:
Mercury”页面下加上一个表格检查点。
4.在工具栏上点击“Save”保存脚本。
任务5:
添加以可访问性检查点,确认所有图片是否设置ALT属性。
第四部分参数化(数据驱动)
在测试应用程序时,可能想检查对应用程序使用不同输入数据进行同一操作时,程序是否能正常的工作。
在这种情况下,你可以将这个操作重复录制多次,每次填入不同的数据,这种方法虽然能够解决问题,但实现起来太笨拙了。
QuickTest提供了一个更好的方法来解决这个问题——参数化测试脚本。
目的将数据从脚本中分离出来。
4.1参数化步骤和检查点中的值
录制或编辑测试或组件时,可以参数化步骤和检查点中的值。
可以参数化选定步骤的对象属性的值。
还可以参数化为该步骤定义的操作(方法或函数参数)的值。
通过参数化检查点属性的值,可以检查应用程序或网站如何基于不同的数据执行相同的操作。
例如,如果要测试MercuryTours示例网站,可以创建一个检查点,以便检查预订机票后该机票是否被正确预订。
假设您需要检查针对各种不同目的地所预订的航班是否正确。
可以为目的地信息添加一个数据表参数,而不是为每个目的地分别创建带有单独检查点的不同测试或组件。
对于测试或组件的每次循环,QuickTest都会针对不同目的地检查航班信息。
数据驱动测试的一般步骤
1)参数化测试步骤的数据,绑定到数据表格中的某个字段
2)编辑数据表格,在表格中编辑多行数据
3)设置迭代次数,选择数据行,运行测试脚本每次迭代中从中选择一行数据。
在QTP中,可以使用多种方式来对测试脚本进行参数化,数据表参数化,环境变量参数化,随机参数化。
为了简化测试脚本参数化的过程,QTP还提供“DataDriver”的功能,可自动检测脚本中可能需要进行参数化的变量。
实例演练:
参数化
在测试脚本中,纽约是个常数值,也就是说,每次执行测试脚本预定机票时,出发地点都纽约,现在,我们将测试脚本中的出发地点参数化,这样,执行测试脚本时就会以不同的出发地点去预定机票了。
1.首先,我们打开Checkpoint测试脚本,将脚本另存为“Parameter”,然后选择要参数化的文字:
在视图树中展开“Action1>Welcome:
MercuryTours>FindaFlight:
Mercury”。
2.在视图树中选择“fromPort”右边的“Value”字段,然后再点击参数化图标
,开启“ValueConfigurationOptions”对话窗口:
3.设置要参数化的属性,选择“Parameter”选择项,这样就可以用参数值来取代“NewYork”这个常数了,在参数中选择“DataTable”选项,这样这个参数就可以从QuickTest的DataTable中取得,将参数的名字改为“departure”。
4.点击“OK”确认,QuickTest会在DataTable中新增departure参数字段,并且插入了一行NewYork的值,NewYork会成为测试脚本执行使用的第一个值。
参数化以后可以看到树视图中的变化,在参数之前,这个测试步骤显示“fromPort…Select…NewYork”,现在,这个步骤变成了“fromPort…Select…DataTable("departure",dtGlobalSheet)”。
而且当点击Value字段时,Value字段会显示如图所示:
,表示此测试步骤已经被参数化,而且其值从DataTable中的departure字段中获得。
5.在departure字段中加入出发点资料,使QuickTest可以使用这些资料执行脚本。
在departure字段的第二行,第三行分别输入:
Portland、Seattle。
6.保存测试脚本。
4.3.2修正受到参数化影响的步骤
当测试步骤被参数化以后,有可能会影响到其它的测试步骤也要参数化,例如我们为了验证在“FlightConfirmation”网页中是否出现“NewYork”(第三章创建文字检查点),在网页上添加了一个文字检查点。
那么,就要对出发地的文字检查点作参数化,以符合对出发地点参数化的预期结果。
修正文字检查点,首先在树视图中,展开“Action1>Welcome:
MercuryTours>FlightConfirmation:
Mercury”页面,然后点击鼠标右键,选择“CheckpointProperties”,打开“TextCheckpointProperties”对话窗口:
在“CheckedText”的Constant字段中显示为“NewYork”,表示测试脚本在每次执行时,这个文字检查点的预期值都为“NewYork”。
我们选择Parameter,点击旁边的“ParameterOptions”按钮
,打开“ParameterOptions”对话窗口:
在参数类型选择框选择“DataTable”选项,在名字选择框选择“departure”选项,指明这个文字检查点使用departure字段中的值当成检查点的预期值。
点击“OK”关闭窗口,这样文字检查点也被参数化了。
4.3.3执行并分析使用参数的测试脚本
参数化测试脚本后,我们运行Parameter测试脚本。
QuickTest会使用DataTable中departure字段值,执行三次测试脚本。
执行测试脚本:
点击工具栏上的“Run”按钮,开启Run对话窗口,选取“Newrunresultsfolder”,其余为默认值,点击“OK”开始执行脚本。
当脚本运行结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动化 测试 实践 QTP
![提示](https://static.bingdoc.com/images/bang_tan.gif)