QTP飞机订票测试实例QTP飞机订票测试实例.docx
《QTP飞机订票测试实例QTP飞机订票测试实例.docx》由会员分享,可在线阅读,更多相关《QTP飞机订票测试实例QTP飞机订票测试实例.docx(24页珍藏版)》请在冰豆网上搜索。
QTP飞机订票测试实例QTP飞机订票测试实例
特点与基本操作
QTP特点
使用QuickTest可以加速整个测试的过程,并且建置完新版本的应用程序或网站后,可以重复使用测试脚本进行测试。
以QuickTest执行测试,就与人工测试一样。
QuickTest会仿真鼠标的动作与键盘的输入,不过QuickTest比人工测试快乐很多。
QuickTest自动化的好处有:
快速:
QuickTest执行测试比人工测试速度快多了。
可靠:
QuickTest每一次的测试都可以正确的执行相同的动作,可以避免人工的错误。
可重复:
QuickTest可以重复执行相同的测试。
可程序化:
QuickTest可以以程序的方式,撰写复杂的测试脚本,以带出隐藏在应用程序中的信息。
广泛性:
QuickTest可以建立广泛的测试脚本,涵盖应用程序的所有功能。
可再使用:
QuickTest可以重复使用测试脚本,即使应用程序的使用接都已经改变。
基本操作
第一步:
点击QTP的执行文件,
第二步:
第一步完成后会出现上图的对画框,然后点击”OK”,如图(1-2-1);
图(1-2-1)
第三步:
选择“Tutorial”选项,如图(1-2-2);
图(1-2-2)
第四步:
关闭右上角的对话框,选择左上角的“Record”选项,如图(1-2-3);
图(1-2-3)
第五步:
QTP会有对两个方向的测试,一个是对web的测试,一个是对具体软件程序的测试。
如果选择对web测试,在上图制定输入地方网址,点击确定:
如果是对软件程序的测试,选择“WindowsApplication”选项,如图(1-2-4);
图(1-2-4)
第六步:
选择“+”按钮选择要执行程序的文件,如图(1-2-5);
图(1-2-5)
第七部:
在“application”中选择你要执行程序的文件,然后点击“OK”按钮,如图(1-2-6);
图(1-2-6)
第八步:
点击“确定”,你就会对该系统执行测试,()如图(1-2-7);
图(1-2-7)
2.功能测试
登陆测试
2.1.1测试用例设计
针对登录模块的输入条件:
用户名和密码,有以下几种情况:
1.当用户什么也没输入,直接点OK按钮,是否提示请输入用户名;
2.当用户输入正确的用户名,没输入密码,直接点击OK按钮,是否提示请输入密码;
3.对密码进行验证看是否设置输入密码的长度;
4.当输入正确的用户名和密码时,点击OK按钮是否进入操作界面;
对登陆模块进行测试时,尽可能全面的测试登陆功能的正常和异常情况:
只要用户名大于或等于4个字符,密码是“mercury”,即可登陆。
为了测试异常登陆,准备了异常登陆的测试数据,系统会弹出如下表(2-1-1)所示的提示信息。
测试数据
应用程序弹出的异常提示
用户名
密码
空
空
空
错误
空
Mercury
as
空
as
Mercury
as
错误
mercury
空
mercury
错误
mercury
mercury
正常登陆,启动应用程序
表(2-1-1)
根据上面的分析,设计了如下表(2-1-2)的测试用例:
ID
输入条件
预期输出
实际输出
用户名
密码
001
空
空
提示:
输入用户名
提示:
输入用户名
002
空
asdff
提示:
输入用户名
提示:
输入用户名
003
空
mercury
提示:
输入用户名
提示:
输入用户名
004
As
空
提示:
用户名长度少于4位
提示:
用户名长度少于4位
005
as
Adder
提示:
用户名长度少于4位
提示:
用户名长度少于4位
006
as
Mercury
提示:
用户名长度少于4位
提示:
用户名长度少于4位
007
Mercury
空
提示:
输入密码
提示:
输入密码
008
Mercury
As
提示:
密码错误
提示:
密码错误
009
Mercury
Mercury
登录成功
登录成功
010
Asdfg
Mercury
登录成功
登录成功
表(2-1-2)
2.1.2录制与测试过
第一步:
用QTP自动打开FlightReservation系统的登陆界面,输入用户名和密码,确定当前的操作,将订票系统打开,登陆界面如图(2-1-1);
图(2-1-1)
第二步:
在QTP主界面中单击“Record”,在登陆界面的文本框中,输入正确的用户名和密码,单击“OK”按钮,进入飞机订票系统界面。
在QTP主界面,单击“Stop”按钮,结束当前的录制,如图(2-1-2);
图(2-1-2)
录制的脚本为:
Dialog("Login").WinEdit("AgentName:
").Set"mercury"
Dialog("Login").WinEdit("Password:
").Set"4e90f6999223c7a146a382b12b9daa065cd86dac"
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").Activate
Window("FlightReservation").Close
第三步:
在ExpertView中更改KeywordView中,将密码更改为明文,同时在文本中中添加判断语句,脚本如下:
"C:
\ProgramFiles\HP\QuickTestProfessional\samples\flight\app\"
Dialog("Login").WinEdit("AgentName:
").SetDataTable("usename",dtLocalSheet)
Dialog("Login").WinEdit("Password:
").SetDataTable("password",dtLocalSheet)
Dialog("Login").WinButton("OK").Click
IfDialog("Login").Dialog("FlightReservations").Exist(5)Then
Dimerr_message
err_message=Dialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").GetROProperty("text")
"登录失败","错误信息是:
"&err_message
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click
Else
micPass,"登陆成功","登陆成功"
Window("FlightReservation").Close
EndIf
第四步:
在QTP主界面的工具栏中单击“Run”按钮,回访脚本,测试报告的结果如下图(2-1-3);
图(2-1-3)
2.1.3测试结果
通过运用QTP对飞机订票系统的测试,将已设计好的测试用例添加到QTP中,通过脚本的参数化设置,对测试用例进行自动化循环测试,如下图(2-1-4);
图(2-1-4)
QTP对测试用例的自动化测试后,分别将可以登陆成功和不能登陆成功的测试用例进行测试,运行结果如图(2-1-5);
图(2-1-5)
可以登录飞机订票系统的测试用例,QTP在测试后会显示登陆成功,如下图(2-1-6);
图(2-1-6)
不可以登录飞机订票系统的测试用例,QTP在测试后会显示登录失败,并且会说明错误的信息,如下图(2-1-7);
图(2-1-7)
2.1.4测试脚本
"C:
\ProgramFiles\MercuryInteractive\QuickTestProfessional\samples\flight\app\4a","","C:
\ProgramFiles\MercuryInteractive\QuickTestProfessional\samples\flight\app","open"
Dialog("Login").WinEdit("AgentName:
").SetDataTable("usename",dtLocalSheet)
Dialog("Login").WinEdit("Password:
").SetDataTable("password",dtLocalSheet)
Dialog("Login").WinButton("OK").Click
IfDialog("Login").Dialog("FlightReservations").Exist(5)Then
Dimerr_message
err_message=Dialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").GetROProperty("text")
micFail,"登录失败","错误信息是:
"&err_message
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click
Else
micPass,"登陆成功","登陆成功"
Window("FlightReservation").Close
EndIf
订票测试
2.2.1订票功能
订票实例的前提是登录订票系统的成功,该实例是在订票系统中进行订票操作:
输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票按钮,完成订票功能。
2.2.2测试用例设计
测试编号
输入
预期结果
实际结果
001
空
在Fly中选择一个地点,弹出警告信息
不能为空的警告
002
09/01/10
在Fly中选择一个地点,弹出警告信息
日期要在今天之后
003
13/10/13
在Fly中选择一个地点,弹出警告信息
月份要小于13
004
10/32/13
在Fly中选择一个地点,弹出警告信息
天要在1-31之间
005
11/31/13
在Fly中选择一个地点,弹出警告信息
天要在1-30之间
006
10/23/13
正确
007
空
在Flyto中选择一个地点,弹出警告信息
Ff不能为空的警告
008
LosAngeles
正确
成功
009
空
Flights按钮不可用
成功
010
Denver
Flights按钮可用
成功
011
单击,选择6696航班
在窗口显示航班信息
出发点为LosAngeles,目的地为Denver
012
在Ff中改选Paris
清空航班信息,Flights按钮不可用,Ft自动清空
成功
013
zhangs,1,Economy
Price:
Total:
出发点为LosAngeles,目的地为Denver,选择6696航班
014
zhang,2,Economy
Price:
Total:
成功
2.2.3录制与测试过程
第一步:
录制脚本,选择“Record”如图(2-2-1);
图(2-2-1)
第二步:
在AgentNname和Password中都输入Mercury点击“OK”按钮,如图(2-2-2);
图(2-2-2)
第三步:
输入飞机的时间、出发地、目的地,然后选择“Flights”选择航班,如图(2-2-3);
图(2-2-3)
第四步:
选择要乘坐飞机的航班,然后点击确定,如图(2-2-4);
图(2-2-4)
第五步:
输入顾客的姓名、票数、票的类型、点击“insert”,如图(2-2-5);
图(2-2-5)
第六步:
点击“Stop”结束录制过程,脚本录制成功,如图(2-2-6);
图(2-2-6)
第七步:
在容易出错的点上右击鼠标,选择“InsertStandardCheckpoint”,如图(2-2-7);
图(2-2-7)
第八步:
点击“确定”,如图(2-2-8);
图(2-2-8)
脚本(截图),图(2-2-9);
图(2-2-9)
2.2.4测试结果
在外面将飞机订票系统里的数据删除,点击“Run”运行脚本,如图(2-2-10);
图(2-2-10)
执行QTP生成的脚本,结果如图(2-2-11);
图(2-2-11)
2.2.5测试脚本
Dialog("Login").WinEdit("AgentName:
").Type"M"
Dialog("Login").WinEdit("AgentName:
").Set"Mercury"Dialog("Login").WinEdit("Password:
").Type"M"
Dialog("Login").WinEdit("Password:
").SetSecure"4da14eea230673a188a059df360a208f53f741b0"
Dialog("Login").WinEdit("Password:
").TypemicReturn
Window("FlightReservation").WinObject("DateofFlight:
").Type"101011"
Window("FlightReservation").WinComboBox("FlyFrom:
").Select"London"
Window("FlightReservation").WinComboBox("FlyTo:
").Select"Paris"
Window("FlightReservation").WinButton("FLIGHT").Click
Window("FlightReservation").Dialog("FlightsTable").WinList("From").Select"12582LON08:
00AMPAR10:
00AMAF$"
Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").CheckCheckPoint("OK")
Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").Click
Window("FlightReservation").WinEdit("CustomerName:
").Set"zhang"
Window("FlightReservation").WinButton("Insert").Click
Window("FlightReservation").Close
传真订单
2.3.1传真订单实例
传真订单实例是传真订票成功的订单,在传真订单中,需要输入传真号、确定是否输入签名等。
选择打开存在的订单,传真订单是设置前面是汉字“田”,预览传真,开始传真。
2.3.2录制与测试过程
打开飞机订票系统,在系统的File中打开OpenOrder,会出现OpenOrder对话框,有顾客姓名、日期、航班等选项,如下图(2-3-1);
图(2-3-1)
输入顾客的姓名,即可查询到顾客订购的机票信息,如下图(2-3-2);
图(2-3-2)
打开File下的FaxOrder,可以生成传真,填写FaxNumber,输入086-010-1234,同时设置签名为“田”字。
此时,录制签名之前,需要改变录制模式,录制模式修改为“AnalogRecording”,修改后再录制签名,签名录制完后,再切换到“Recording”模式,发送传真,完成录制,如下图(2-3-3);
图(2-3-3)
在传单的录制过程中,还要添加对象,添加FlightReservation对象,飞机航班的FlightsTable对象,如下图(2-3-4);
图(2-3-4)
添加对象完成后,选择“AllObjectTypes”,如下图(2-3-5);
图(2-3-5)
在“AllObjectRespositories“的对话框里,可以看到添加进去的所有对象,如下图(2-3-6);
图(2-3-6)
2.3.3测试结果
在添加完所有的对象后,录制的脚本才可以运行,同时也能在回放中看到缩写的签名,运行结果如图(2-3-7);
图(2-3-7)
2.3.4测试脚本
Window("FlightReservation").Activate
Window("FlightReservation").WinMenu("Menu").Select"File;OpenOrder..."
Window("FlightReservation").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"
Window("FlightReservation").Dialog("OpenOrder").WinEdit("Edit").Set"as"
Window("Window").Click580,380
Window("Snagit编辑器").WinObject("Snagit编辑器").Click965,10
Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").Click
Window("Window").Click658,424
Window("Snagit编辑器").WinObject("Snagit编辑器").Click967,16
Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").Click
Window("FlightReservation").WinMenu("Menu").Select"File;FaxOrder..."
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("FaxNumber:
").Type"04"
Window("FlightReservation").Dialog("FaxOrderNo.11").Drag233,206
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("Fax").Drop229,240
Window("FlightReservation").Dialog("FaxOrderNo.11").Drag229,218
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("Fax").Drop288,244
Window("FlightReservation").Dialog("FaxOrderNo.11").Drag251,238
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("Fax").Drop274,230
Window("FlightReservation").Dialog("FaxOrderNo.11").Drag262,223
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("Fax").Drop258,238
Window("FlightReservation").Dialog("FaxOrderNo.11").Drag242,254
Window("FlightReservation").Dialog("FaxOrderNo.11").WinObject("Fax").Drop282,242
Window("FlightReservation").Dialog("FaxOrderNo.11").WinCheckBox("SendSignaturewithorder").Set"ON"
Window("Window").Click650,347
Window("Snagit编辑器").WinObject("Snagit编辑器").Click957,12
Window("FlightReservation").Dialog("FaxOrderNo.11").WinButton("Send").Click
Window("FlightReservation").WinButton("UpdateOrder").Click
Window("FlightReservation").Minimize
Window("FlightReservation").Restore
Window("FlightReservation").Close
删除订单
2.4.1删除订单实例
飞机订票成功后,也可以对订单进行删除。
在FlightReservation中提前订购好的订单挑出来,用QTP录制删除订单的过程,且欲删除订单必须确认订单有效,根据用户名查询订单,删除订单。
2.4.2录制与测试过程
首先打开飞机订票系统,同时打开QTP进行录制,在File中打开OpenOrder,若输入顾客的姓名正确,此时会跳出顾客飞机航班的订票情况,并添加到对象库中,如下图(2-4-1);
图(2-4-1)
在File中打开OpenOrder,在CustomerName中输入一个错误的顾客姓名,此时会弹出一个顾客姓名错误的提示框,在QTP中添加此对象,如下图(2-4-2);
图(2-4-2)
除了要添加FlightReservation和OpenOrder对象,还要添加SearchRelults对象,如下图(2-4-3);
图(2-4-3)
最后添加确认删除的对话框,如下图(2-4-4);
图(2-4-4)
在所有的对象都添加到对象库中,在AllObjectRepositories会显示所有的对象,如图(2-4-5);
图(2-4-5)
2.4.3测试结果
完成对象添加的操作,就可以开始修改脚本了,添加了判断订单查询对话框是否存在,如果存在则循环管操作订单存在的列表,随机选择一个订单,确定删除该订单,运行结果如下图(2-4-6);
图(2-4