飞机订票系统测试报告.docx
- 文档编号:29725666
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:28
- 大小:909.68KB
飞机订票系统测试报告.docx
《飞机订票系统测试报告.docx》由会员分享,可在线阅读,更多相关《飞机订票系统测试报告.docx(28页珍藏版)》请在冰豆网上搜索。
飞机订票系统测试报告
飞机订票系统功能测试报告
课题名称
飞机订票系统功能测试报告
系/专业
班级
学号
学生姓名
指导教师:
第一章QTP自动化测试介绍
1.1概述
QTP是HP公司开发的功能自动化测试工具。
相对于手工测试,QTP自动化测试比人工测试快得多,同时可以避免人工测试的错误,因此,随着测试技术的发展,自动化测试逐渐成为测试的一个重要测试工具。
1.2测试介绍
本次课程的内容就是学习QTP自动化测试工具,以飞机订票系统为实例,通过飞机订票的过程,包括登陆、订票、删除等一系列功能操作,运用QTP自动化测试工具来进行具体测试操作,从而来了解并学习QTP自动化测试工具。
在使用QTP进行自动化测试时,所包含的几个步骤:
1、准备录制;2、创建对象库;3、创建函数和函数库;4、录制执行;5、强化测试脚本;6、调试脚本;7、在回归测试中运行测试;8、分析结果,报告问题。
按照以上步骤,对飞机订票系统的各个功能进行自动测试,完成系统的测试工作。
1.3测试内容
对于飞机订票系统的自动化测试,首先要熟悉了解一下这个飞机订票系统的基本运行流程,从登陆到订票到查询、删除等一系列基本功能的操作,在对系统流程了解后,再开始对其中的一些功能进行测试工作。
在对这个飞机订票系统,此次测试内容有登陆功能,其中登陆功能测试包含一个用户正确登陆、设置参数可以进行多个用户(正确和错误的)的登陆以及运用手工登陆的方法进行测试,在订票功能中,有对订票是否成功的测试、设置检查点以及循环所有航班的测试,另外还有传真订单的录制,其中有录制签名和录制模式,除此之外还有与数据库的链接等一些简单的功能测试。
1.4测试目标
本次课程主要目标就是了解熟悉并学习简单的自动化测试工具,能运用基本的测试工具,对系统进行简单的自动化测试。
对于QTP自动化测试的测试目标:
Ø熟悉QTP自动化测试工具及其基本功能
Ø掌握QTP自动化测试的基本测试步骤
Ø运用QTP测试工具对系统进行简单的自动化测试
Ø在QTP测试中,能写出基本的脚本语言
对于飞机订票系统的测试目标:
Ø测试登陆功能,包括单个用户能否正确登陆、多个用户的正确和错误是否能正确登陆,以及手工能否登陆的测试
Ø订票功能的测试,其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试
Ø传真和删除订单的测试,在传真测试中,录制签名后,进行播放时签名是能否播放出来,对于订单的删除,进行脚本语句的编写,能否成功完成测试
第二章测试计划及测试环境搭建
2.1测试原理分析
QTP主要采用的是GUI模拟人的操作。
它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。
而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。
例如,对于登陆功能中的用户名,在“用户名”输入框中输入“zhangtt”,其伪代码如下:
WebEdit(“用户名”).Set“zhangtt”,下面据此分析这个测试原理:
首先,QTP会通过“用户名”这个名字找到对象库的对象名中查找;
然后通过找到的对象名,找到对象名映射的属性包;
接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那么QTP就会认为此控件为要找的控件;
最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“zhangtt”赋予了控件。
至于其他控件的识别和操作,基本原理和上面一样,另外有一些需手动添加一些对象,方可识别。
在后面的具体例子中,会详细叙述,在此不做精细描述。
2.2测试思想设计
根据测试原理的分析以及QTP测试的基本步骤可以设计如图2-2-1所示的测试思想流程图。
该流程图使用的是MicrosoftVisio2003绘制。
图2-2-1测试思想流程图
2.3测试计划
在此次课程的QTP自动化测试学习时,首先对QTP自动化测试工具进行了解,安装QTP自动化测试这个工具,同时注册及启动QTP测试软件,于此同时熟悉其基本的功能和操作,除此之外,熟悉飞机订票系统的基本流程,其登陆、订票、传真及删除订单等一些功能,于此同时,将两者相结合,开始运用QTP自动化测试工具对此飞机订票系统进行一系列的自动化测试工作。
在测试过程中,设计包括以下几个方面:
1、登陆功能测试
2、订票功能测试
3、传真的录制与播放功能测试
4、删除订单的测试
2.4测试环境搭建
一、QTP自动化测试的安装:
1.双击QTP的安装文件“setup.exe”,弹出如图2-4-1所示的安装界面,
图2-4-1QTP安装界面
在其中选择“QuickTestProfessional安装程序”,则进入安装程序中,然后按照系统提示,依次安装,最终安装成功,如图2-4-2所示
图2-4-2安装成功界面
二、QTP自动化测试工具的注册与启动
1、注册:
双击打开安装好的QTP自动化测试工具,则会弹出如图2-4-2所示的注册信息提示:
图:
2-4-2注册提示
在此点击“InstallLicense”进行注册,其中在选择注册号时,其方法是:
将GetLicense.exe注册机放到安装目录(默认C:
\ProgramFiles\MercuryInteractive\QuickTestProfessional)并运行它,注册机将生成一个注册文件,该文件在C:
\ProgramFiles\CommonFiles\MercuryInteractive\LicenseManager。
用记事本打开名字为lservrc的文件,复制“第一行中含#之前的所有字符”。
如图2-4-3所示:
图:
2-4-3注册界面
然后依次点击“下一步”即可完成注册。
注册完成后,双击打开“QuickTestProfessional”即可启动。
第三章测试用例设计及执行
3.1登陆功能的测试
(一)登录功能的测试用例设计
测试用例ID
场景
AgentName
Password
动作
预期结果
实际结果
001
用户名和密码正确
zhangtt
mercury
点击“OK”
登录成功
成功登录
002
用户名正确,密码不填
zhangtt
点击“OK”
登录失败
003
用户名不填,密码填写
mercury
点击“OK”
登陆失败
004
用户名正确,密码错误
zhangtt
wrong
点击“OK”
登陆失败
(二)登陆功能的测试执行
①单个用户的登录,一个用户登录的自动化测试是采用录制与播放的方式进行测试的,其录制脚本语言为:
Dialog("Login").Activate
Dialog("Login").WinEdit("AgentName:
").Set"zhangtt"
Dialog("Login").WinEdit("Password:
").SetSecure
"4e9398ddaab6f473e43f8529bdc308515c123f19"
Dialog("Login").WinButton("OK").Click
Window("FlightReservation").Activate
Window("FlightReservation").Close
②多个用户的登陆,多个用户登陆时,测试了用户名、密码正确和错误以及用户名密码不填的情况,对此测试时,进行了参数化设置以及信息的捕捉,在此同时还需要将自动登陆更改为手工登陆,具体测试操作如下:
注:
为了能看到密码值,在此先将密码设置为明文的,其操作为:
将Password动作改为“set”,并将密码修改为明文“mercury”
第一步:
进行参数化设置:
在值后点击
按钮,则弹出参数化设置界面,在此进行参数化设置,如图3-1-1所示:
其用户名和密码的参数化设置均是一致采用此种方法的
图3-1-1参数化设置界面
第二步:
在设置好的参数表格中填写测试数据(有用户名密码正确的情况,也有错误的或不存在的均进行测试)
第三步:
添加脚本语言,其程序为:
IfDialog("Login").Dialog("FlightReservations").Exist(5)Then
Dimerr_message
err_message=Dialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").GetROProperty("text")
Reporter.ReportEventmicFail,"登陆失败","错误信息是:
"&err_message
Dialog("Login").Dialog("FlightReservations").WinButton("确定").Click
Dialog("Login").WinButton("cancle").Click
Else
Reporter.ReportEventmicPass,"登陆验证","登陆成功"
Window("FlightReservation").Close
EndIf
第四步:
捕捉动态信息,添加识别对象,其方法是,在菜单中点击“
”按钮,弹出添加对象的窗口如图3-1-2所示,
图3-1-2识别对象窗口
在“ObjectRepository”窗口中,单击“AddObjectstoLocal”添加所需识别的对象,如图3-1-3所示:
以此来一一添加所需识别的对象
图3-1-3添加识别对象
第五步:
添加手动登陆的代码,程序为:
SystemUtil.RunPathFinder.Locate("C:
\ProgramFiles\MercuryInteractive\QuickTestProfessional\samples\flight\app\flight4a.exe"),"",PathFinder.Locate("C:
\ProgramFiles\MercuryInteractive\QuickTestProfessional\samples\flight\app"),"open"
第六步:
将运行行数修改为运行所有添加的数据,其操作是右击“Action”选择“
”弹出运行行数界面,选择“Runonallrows”,如图3-1-4所示:
图3-1-4修改运行行数界面
第七步:
测试运行,运行结果如图3-1-4所示:
图3-1-4测试运行结果
3.2订票功能的测试
(一)判断订票是否成功的测试
首先录制订票过程,将其订票程序录制出来,录制完成后点击“stop”,停止录制,要判断订票是否成功的方法有两个,一种是结合对象识别器编写脚本实现,另外一种是添加检查点实现,在此,选用添加检查点的方法进行测试。
添加检查点:
在采用添加检查点的方式判断订票是否成功时也有两种方式,在这里采用了通过ActiveScreen设置检查点,其步骤如下:
在ExpertView视图中,选择激活开始订票代码行:
Window("FlightReservation").Activate在ActiveScreen中,可见该代码的录制时,开始订票的快照,如图3-2-1所示
图3-2-1激活开始订票的快照界面
然后在快照上,用鼠标右键单击要检查的对象,如在OrderNo后右键单击一下,弹出按钮对象的右键快捷菜单,选择“InsertStandardCheckpoint…”进行该检查点的添加,在打开的“CheckpointProperties”对话框中,选择该对象的enabled属性,设置值为“True”,选中“Aftercurrentstep”单选项,单击“OK”按钮,如图3-2-2所示
图3-2-2“CheckpointProperties”对话框
继续为其添加一个动态属性值的标准检查点,在此按钮后依然右键单击一下,在弹出的按钮对象快捷键里选择“InsetOutputValue…”命令,从而来进行检查点的添加,在弹出的“OutputValuesProperties”对话框中,去掉enabled属性、选择text属性,如图3-2-3所示
图:
3-2-3“OutputValuesProperties”对话框
再点击“Modify”按钮,弹出“OutputOptions”对话框,在对话框中设置Name值,并选择“Currentactionsheet(local)”单选框,如图3-2-4所示
图3-2-4“OutputOptions”对话框
点击“OK”按钮,再选择“Aftercurrentstep”单选项,点击“OK”,
按钮,这样,就为“OrderNo”按钮添加
添加了一个检查点。
此时,回到脚本语言,会发现,多了两句程序,这两句语言就是刚刚添加检查点自动生成的脚本语言,这就是所设置的检查点,其代码为:
Window("FlightReservation").WinEdit("OrderNo:
").CheckCheckPoint("OrderNo:
")
Window("FlightReservation").WinEdit("OrderNo:
").OutputCheckPoint("OrderNo:
_2")
在添加完检查点后,还需要添加判断订票是否成功的脚本程序,其代码为:
DimUpdate_Order_Enable
Update_Order_Enable=Window("FlightReservation").WinButton("UpdateOrder").GetROProperty("enabled")
IfUpdate_Order_Enable=trueThen
Reporter.ReportEventmicPass,"订票成功","根据Update_Order按钮判断订票成功"
else
Reporter.ReportEventmicFail,"订票失败","根据Update_Order按钮判断订票失败"
EndIf
判断订票是否成功的脚本语言添加完后,则可运行测试,其测试结果如图3-2-5所示:
图3-2-5判断订票是否成功的测试运行结果
(二)循环所有航班测试
循环所有航班的思想是:
使用循环语句,遍历起始地和目的地的WinComboBox对象,航班WinList的对象,每个存在的可行性组合作为一组航班,直到所有的对象遍历完毕,则航班循环完毕。
起始地和目的的都是WinComboBox对象,航班是一个WinList对象,如图3-2-6所示
图3-2-6WinComboBox对象和WinList的对象
因此,获取起始地、目的地和航班的数量的脚本为:
Str_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:
").GetItem(i)
Str_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:
").GetItem(j)
Str_From=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItem(k)
获取起始地、目的地和航班的信息脚本为:
IntNumber_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:
").GetItemsCount'IntNumber_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:
").GetItemsCount
所有循环航班测试的脚本语言为:
DimIntNumber_FlyFrom,IntNumber_FlyTo,IntNumber_From
DimStr_FlyFrom,Str_FlyTo,Str_From
DimFlyFrom_Count,FlyTo_Count,From_Count
FlyFrom_Count=0
FlyTo_Count=0
From_Count=0
Window("FlightReservation").Activate
IntNumber_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:
").GetItemsCount
IntNumber_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:
").GetItemsCount
Fori=0toIntNumber_FlyFrom-1
Forj=0toIntNumber_FlyTo-1
Window("FlightReservation").Activate
Window("FlightReservation").WinMenu("Menu").Select"File;NewOrder"
Window("FlightReservation").WinObject("DateofFlight:
").Type"121212"
Str_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:
").GetItem(i)Window("FlightReservation").WinComboBox("FlyFrom:
").SelectStr_FlyFrom
Str_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:
").GetItem(j)
Window("FlightReservation").WinComboBox("FlyTo:
").SelectStr_FlyTo
Window("FlightReservation").WinButton("FLIGHT").Click
IntNumber_From=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItemsCount
Fork=0toIntNumber_From-1
Str_From=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItem(k)
Window("FlightReservation").Dialog("FlightsTable").WinList("From").SelectStr_From
Reporter.ReportEventmicPass,"起始地:
"&Str_FlyFrom&"目的地:
"&Str_FlyTo&"航次:
"&Str_From,Str_FlyFrom&Str_FlyTo&Str_From
Window("FlightReservation").Dialog("FlightsTable").WinButton("OK").Click
Window("FlightReservation").WinEdit("Name:
").Set"tianyanqin"
Window("FlightReservation").WinEdit("Tickets:
").Set"2"
Window("FlightReservation").WinRadioButton("First").Set
Window("FlightReservation").WinButton("InsertOrder").Click
Window("FlightReservation").Activate
'Window("FlightReservation").WinEdit("OrderNo:
").OutputCheckPoint("OrderNo:
")
'Window("FlightReservation").WinEdit("OrderNo:
").CheckCheckPoint("OrderNo:
_2")
Window("FlightReservation").Activate
Window("FlightReservation").WinMenu("Menu").Select"File;NewOrder"
Window("FlightReservation").WinObject("DateofFlight:
").Type"121212"'
Str_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:
").GetItem(i)
Window("FlightReservation").WinComboBox("FlyFrom:
").SelectStr_FlyFrom
Str_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:
").GetItem(j)
Window("FlightReservation").WinComboBox("FlyTo:
").SelectStr_FlyTo
Window("FlightReservation").WinButton("FLIGHT").Click'
Next
From_Count=IntNumber_From
Reporter.ReportEventmicPass,"起始地:
"&Str_FlyFrom&"目的地:
"&Str_FlyTo&"航班次数:
"&From_Count,Str_FlyFrom&Str_FlyTo&From_Count
Window("FlightReservation").Dialog("FlightsTable").WinButton("Cancel").Click
FlyTo_Count=FlyTo_Count+From_Count
Next
'Reporter.ReportEventmicPass,"起始地:
"&Str_FlyFrom&"航班次数:
"&From_Count,Str_FlyFrom&FlyTo_Count
FlyFrom_Count=FlyFrom_Count+FlyTo_Count
Next
Reporter.ReportEventmicPass,"所有的航班次数:
"&FlyFrom_Count,FlyFrom_Count
根据以上测试脚本程序,循环所有航班测试结果为如图3-2-7
图3-2-7循环所有航班测试运行结果界面
3.3传真和删除订单的测试与执行
(一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞机 订票 系统 测试报告
![提示](https://static.bdocx.com/images/bang_tan.gif)