飞机订票系统测试报告_第1页
飞机订票系统测试报告_第2页
飞机订票系统测试报告_第3页
飞机订票系统测试报告_第4页
飞机订票系统测试报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 飞机订票系统功能测试报告课题名称飞机订票系统功能测试报告系/专 业 班 级学 号学生姓名指导教师:第一章 QTP自动化测试介绍1.1概述 QTP是HP公司开发的功能自动化测试工具。相对于手工测试,QTP自动化测试比人工测试快得多,同时可以避免人工测试的错误,因此,随着测试技术的发展,自动化测试逐渐成为测试的一个重要测试工具。1.2测试介绍 本次课程的内容就是学习QTP自动化测试工具,以飞机订票系统为实例,通过飞机订票的过程,包括登陆、订票、删除等一系列功能操作,运用QTP自动化测试工具来进行具体测试操作,从而来了解并学习QTP自动化测试工具。 在使用QTP进行自动化测试时,所包含的几个步骤:

2、1、准备录制;2、创建对象库;3、创建函数和函数库;4、录制执行;5、强化测试脚本;6、调试脚本;7、在回归测试中运行测试;8、分析结果,报告问题。按照以上步骤,对飞机订票系统的各个功能进行自动测试,完成系统的测试工作。1.3 测试内容 对于飞机订票系统的自动化测试,首先要熟悉了解一下这个飞机订票系统的基本运行流程,从登陆到订票到查询、删除等一系列基本功能的操作,在对系统流程了解后,再开始对其中的一些功能进行测试工作。在对这个飞机订票系统,此次测试内容有登陆功能,其中登陆功能测试包含一个用户正确登陆、设置参数可以进行多个用户(正确和错误的)的登陆以及运用手工登陆的方法进行测试,在订票功能中,有

3、对订票是否成功的测试、设置检查点以及循环所有航班的测试,另外还有传真订单的录制,其中有录制签名和录制模式,除此之外还有与数据库的链接等一些简单的功能测试。1.4测试目标 本次课程主要目标就是了解熟悉并学习简单的自动化测试工具,能运用基本的测试工具,对系统进行简单的自动化测试。 对于QTP自动化测试的测试目标: 熟悉QTP自动化测试工具及其基本功能 掌握QTP自动化测试的基本测试步骤 运用QTP测试工具对系统进行简单的自动化测试 在QTP测试中,能写出基本的脚本语言对于飞机订票系统的测试目标: 测试登陆功能,包括单个用户能否正确登陆、多个用户的正确和错误是否能正确登陆,以及手工能否登陆的测试 订

4、票功能的测试,其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试 传真和删除订单的测试,在传真测试中,录制签名后,进行播放时签名是能否播放出来,对于订单的删除,进行脚本语句的编写,能否成功完成测试第二章 测试计划及测试环境搭建2.1测试原理分析 QTP主要采用的是GUI模拟人的操作。它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。例如,对于登陆功能中的用户名,在“用户名”输入框中输入“zhangtt”,其伪代码如下:WebEdit(“用户名”).Set“zhangtt”,下面据此分析

5、这个测试原理:首先,QTP会通过“用户名”这个名字找到对象库的对象名中查找;然后通过找到的对象名,找到对象名映射的属性包;接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那么QTP就会认为此控件为要找的控件;最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“zhangtt”赋予了控件。至于其他控件的识别和操作,基本原理和上面一样,另外有一些需手动添加一些对象,方可识别。在后面的具体例子中,会详细叙述,在此不做精细描述。2.2测试思想设计根据测试原理的分析以及QTP测试的基本步骤可以设计如图2

6、-2-1所示的测试思想流程图。该流程图使用的是Microsoft Visio 2003绘制。图2-2-1测试思想流程图2.3测试计划在此次课程的QTP自动化测试学习时,首先对QTP自动化测试工具进行了解,安装QTP自动化测试这个工具,同时注册及启动QTP测试软件,于此同时熟悉其基本的功能和操作,除此之外,熟悉飞机订票系统的基本流程,其登陆、订票、传真及删除订单等一些功能,于此同时,将两者相结合,开始运用QTP自动化测试工具对此飞机订票系统进行一系列的自动化测试工作。在测试过程中,设计包括以下几个方面:1、 登陆功能测试2、 订票功能测试3、 传真的录制与播放功能测试4、 删除订单的测试2.4测

7、试环境搭建一、QTP自动化测试的安装:1. 双击QTP的安装文件“setup.exe”,弹出如图2-4-1所示的安装界面,图2-4-1 QTP安装界面在其中选择“QuickTest Professional 安装程序”,则进入安装程序中,然后按照系统提示,依次安装,最终安装成功,如图2-4-2所示图2-4-2 安装成功界面二、QTP自动化测试工具的注册与启动1、注册: 双击打开安装好的QTP 自动化测试工具,则会弹出如图2-4-2所示的注册信息提示:图:2-4-2 注册提示在此点击“Install License”进行注册,其中在选择注册号时,其方法是:将GetLicense.exe注册机放到

8、安装目录(默认 C:Program FilesMercury InteractiveQuickTest Professional)并运行它,注册机将生成一个注册文件,该文件在C:Program FilesCommon FilesMercury InteractiveLicense Manager。用记事本打开名字为lservrc的文件,复制“第一行中含#之前的所有字符”。如图2-4-3所示:图:2-4-3 注册界面然后依次点击“下一步”即可完成注册。 注册完成后,双击打开“QuickTest Professional”即可启动。第三章 测试用例设计及执行3.1登陆功能的测试(一)登录功能的测试

9、用例设计测试用例ID场景Agent NamePassword动作预期结果实际结果001用户名和密码正确zhangttmercury点击“OK” 登录成功成功登录002用户名正确,密码不填zhangtt点击“OK”登录失败003用户名不填,密码填写mercury点击“OK”登陆失败004用户名正确,密码错误zhangttwrong点击“OK”登陆失败(二)登陆功能的测试执行单个用户的登录,一个用户登录的自动化测试是采用录制与播放的方式进行测试的,其录制脚本语言为:Dialog(Login).ActivateDialog(Login).WinEdit(Agent Name:).Set zhangt

10、tDialog(Login).WinEdit(Password:).SetSecure4e9398ddaab6f473e43f8529bdcc123f19Dialog(Login).WinButton(OK).ClickWindow(Flight Reservation).ActivateWindow(Flight Reservation).Close多个用户的登陆,多个用户登陆时,测试了用户名、密码正确和错误以及用户名密码不填的情况,对此测试时,进行了参数化设置以及信息的捕捉,在此同时还需要将自动登陆更改为手工登陆,具体测试操作如下:注:为了能看到密码值,在此先将密码设置为明文的,其操作为:

11、将Password动作改为“set”,并将密码修改为明文“mercury”第一步:进行参数化设置:在值后点击按钮,则弹出参数化设置界面,在此进行参数化设置,如图3-1-1所示:其用户名和密码的参数化设置均是一致采用此种方法的图3-1-1 参数化设置界面第二步:在设置好的参数表格中填写测试数据(有用户名密码正确的情况,也有错误的或不存在的均进行测试)第三步:添加脚本语言,其程序为:If Dialog(Login).Dialog(Flight Reservations).Exist(5) Then Dim err_message err_message = Dialog(Login).Dialog

12、(Flight Reservations).Static(Agent name must be at).GetROProperty(text) Reporter.ReportEvent micFail,登陆失败,错误信息是:&err_message Dialog(Login).Dialog(Flight Reservations).WinButton(确定).Click Dialog(Login).WinButton(cancle).ClickElse Reporter.ReportEvent micPass,登陆验证,登陆成功 Window(Flight Reservation).Close

13、End If第四步:捕捉动态信息,添加识别对象,其方法是,在菜单中点击“”按钮,弹出添加对象的窗口如图3-1-2所示,图3-1-2 识别对象窗口在“Object Repository”窗口中,单击“Add Objects to Local”添加所需识别的对象,如图3-1-3所示:以此来一一添加所需识别的对象图3-1-3 添加识别对象第五步:添加手动登陆的代码,程序为:SystemUtil.Run PathFinder.Locate(C:ProgramFilesMercuryInteractiveQuickTestProfessionalsamplesflightappflight4a.exe)

14、,PathFinder.Locate(C:ProgramFilesMercuryInteractiveQuickTestProfessionalsamplesflightapp),open第六步:将运行行数修改为运行所有添加的数据,其操作是右击“Action”选择“”弹出运行行数界面,选择“Run on all rows”,如图3-1-4所示:图3-1-4 修改运行行数界面第七步:测试运行,运行结果如图3-1-4所示:图3-1-4 测试运行结果3.2 订票功能的测试(一)判断订票是否成功的测试首先录制订票过程,将其订票程序录制出来,录制完成后点击“stop”,停止录制,要判断订票是否成功的方法

15、有两个,一种是结合对象识别器编写脚本实现,另外一种是添加检查点实现,在此,选用添加检查点的方法进行测试。添加检查点: 在采用添加检查点的方式判断订票是否成功时也有两种方式,在这里采用了通过 Active Screen 设置检查点,其步骤如下: 在Expert View 视图中,选择激活开始订票代码行:Window(Flight Reservation).Activate 在Active Screen中,可见该代码的录制时,开始订票的快照,如图3-2-1所示图3-2-1 激活开始订票的快照界面然后在快照上,用鼠标右键单击要检查的对象,如在Order No 后右键单击一下,弹出按钮对象的右键快捷菜

16、单,选择“Insert Standard Checkpoint”进行该检查点的添加,在打开的“Checkpoint Properties”对话框中,选择该对象的enabled属性,设置值为“True”,选中“After current step”单选项,单击“OK”按钮,如图3-2-2所示图 3-2-2 “Checkpoint Properties”对话框继续为其添加一个动态属性值的标准检查点,在此按钮后依然右键单击一下,在弹出的按钮对象快捷键里选择“Inset Output Value”命令,从而来进行检查点的添加,在弹出的“Output Values Properties”对话框中,去掉e

17、nabled属性、选择text属性,如图3-2-3所示图:3-2-3 “Output Values Properties”对话框再点击“Modify”按钮,弹出“Output Options”对话框,在对话框中设置Name值,并选择“Current action sheet(local)”单选框,如图3-2-4所示图3-2-4 “Output Options”对话框点击“OK”按钮,再选择“After current step”单选项,点击“OK”,按钮,这样,就为“Order No”按钮添加添加了一个检查点。此时,回到脚本语言,会发现,多了两句程序,这两句语言就是刚刚添加检查点自动生成的脚本

18、语言,这就是所设置的检查点,其代码为:Window(Flight Reservation).WinEdit(Order No:).Check CheckPoint(Order No:)Window(Flight Reservation).WinEdit(Order No:).Output CheckPoint(Order No:_2)在添加完检查点后,还需要添加判断订票是否成功的脚本程序,其代码为:Dim Update_Order_EnableUpdate_Order_Enable=Window(FlightReservation).WinButton(UpdateOrder).GetROPr

19、operty(enabled)If Update_Order_Enable = true ThenReporter.ReportEvent micPass,订票成功,根据Update_Order按钮判断订票成功else Reporter.ReportEvent micFail,订票失败,根据Update_Order按钮判断订票失败End If判断订票是否成功的脚本语言添加完后,则可运行测试,其测试结果如图3-2-5所示:图 3-2-5 判断订票是否成功的测试运行结果(二)循环所有航班测试 循环所有航班的思想是:使用循环语句,遍历起始地和目的地的WinComboBox对象,航班WinList的对

20、象,每个存在的可行性组合作为一组航班,直到所有的对象遍历完毕,则航班循环完毕。起始地和目的的都是WinComboBox 对象,航班是一个WinList 对象,如图3-2-6所示 图3-2-6 WinComboBox对象和WinList的对象因此,获取起始地、目的地和航班的数量的脚本为:Str_FlyFrom = Window(Flight Reservation).WinComboBox(Fly From:).GetItem(i)Str_FlyTo = Window(Flight Reservation).WinComboBox(Fly To:).GetItem(j)Str_From = Wi

21、ndow(Flight Reservation).Dialog(Flights Table).WinList(From).GetItem(k)获取起始地、目的地和航班的信息脚本为:IntNumber_FlyFrom=Window(FlightReservation).WinComboBox(Fly From:).GetItemsCount IntNumber_FlyTo = Window(Flight Reservation).WinComboBox(Fly To:).GetItemsCount所有循环航班测试的脚本语言为:Dim IntNumber_FlyFrom,IntNumber_Fly

22、To,IntNumber_FromDim Str_FlyFrom,Str_FlyTo, Str_FromDim FlyFrom_Count, FlyTo_Count, From_CountFlyFrom_Count = 0FlyTo_Count = 0From_Count = 0Window(Flight Reservation).Activate IntNumber_FlyFrom=Window(FlightReservation).WinComboBox(Fly From:).GetItemsCount IntNumber_FlyTo = Window(Flight Reservation

23、).WinComboBox(Fly To:).GetItemsCount For i =0 to IntNumber_FlyFrom-1For j = 0 to IntNumber_FlyTo -1 Window(Flight Reservation).Activate Window(Flight Reservation).WinMenu(Menu).Select File;New Order Window(Flight Reservation).WinObject(Date of Flight:).Type Str_FlyFrom = Window(Flight Reservation).W

24、inComboBox(Fly From:).GetItem(i) Window(Flight Reservation).WinComboBox(Fly From:).Select Str_FlyFrom Str_FlyTo = Window(Flight Reservation).WinComboBox(Fly To:).GetItem(j) Window(Flight Reservation).WinComboBox(Fly To:).Select Str_FlyTo Window(Flight Reservation).WinButton(FLIGHT).Click IntNumber_F

25、rom=Window(FlightReservation).Dialog(FlightsTable).WinList(From).GetItemsCount For k = 0 to IntNumber_From -1Str_From=Window(FlightReservation).Dialog(FlightsTable).WinList(From).GetItem(k) Window(Flight Reservation).Dialog(Flights Table).WinList(From).Select Str_From Reporter.ReportEvent micPass,起始

26、地:&Str_FlyFrom& 目的地:&Str_FlyTo& 航次:&Str_From ,Str_FlyFrom&Str_FlyTo&Str_From Window(Flight Reservation).Dialog(Flights Table).WinButton(OK).Click Window(Flight Reservation).WinEdit(Name:).Set tianyanqin Window(Flight Reservation).WinEdit(Tickets:).Set 2 Window(Flight Reservation).WinRadioButton(Firs

27、t).Set Window(Flight Reservation).WinButton(Insert Order).Click Window(Flight Reservation).Activate Window(Flight Reservation).WinEdit(Order No:).Output CheckPoint(Order No:) Window(Flight Reservation).WinEdit(OrderNo:).Check CheckPoint(OrderNo:_2) Window(Flight Reservation).Activate Window(Flight R

28、eservation).WinMenu(Menu).Select File;New Order Window(Flight Reservation).WinObject(Date of Flight:).Type Str_FlyFrom=Window(FlightReservation).WinComboBox(FlyFrom:).GetItem(i) Window(Flight Reservation).WinComboBox(Fly From:).Select Str_FlyFrom Str_FlyTo= Window(Flight Reservation).WinComboBox(Fly

29、 To:).GetItem(j) Window(Flight Reservation).WinComboBox(Fly To:).Select Str_FlyTo Window(Flight Reservation).WinButton(FLIGHT).Click Next From_Count =IntNumber_From Reporter.ReportEvent micPass,起始地:&Str_FlyFrom& 目的地:&Str_FlyTo& 航班次数:&From_Count ,Str_FlyFrom&Str_FlyTo&From_Count Window(Flight Reserva

30、tion).Dialog(Flights Table).WinButton(Cancel).Click FlyTo_Count = FlyTo_Count + From_Count Next Reporter.ReportEvent micPass,起始地:&Str_FlyFrom& 航班次数:&From_Count ,Str_FlyFrom&FlyTo_Count FlyFrom_Count=FlyFrom_Count+FlyTo_CountNextReporter.ReportEvent micPass,所有的航班次数:&FlyFrom_Count ,FlyFrom_Count 根据以上测

31、试脚本程序,循环所有航班测试结果为如图3-2-7图3-2-7 循环所有航班测试运行结果界面3.3 传真和删除订单的测试与执行(一)传真功能的测试与执行在传真功能这一模块中,主要是传真订单的录制,通过录制来实现的。在这里,传真的录制过程为:“New Order”“Open Order”“Fax Order”第一步“New Order”,打开“Flight Reservation”界面,选择菜单中的“File”选项,选择“New Order”,则开始新建一个订单,其操作界面如图3-3-1所示:图3-3-1 新建一个订单的界面第二步:创建一个订单后,继续选择菜单中的“File”选项,选择“Open

32、Order”,打开所建的订单,搜寻所要传真的用户名,其界面如图3-3-2所示:图 3-3-2 “Open Order”界面第三步:将所选择的订单进行发送,选择菜单栏“File”选项,选择“Fax Order”进行订单发送,在传真时,有一个签名,在进行签名时,需要进行一个设置,在播放时方可看见签名,在签名前,先点击“”按钮,弹出如图3-3-3所示界面,点击“Start Analog Record”按钮,在进行签名录制图 3-3-3 进行签名设置的界面在签名录制完后,点击“Preview Fax”按钮,进行传真预览,其界面如图3-3-4所示:图 3-3-4 传真预览界面最后在此界面上点击“Send

33、”按钮,则订单发送成功。(二)删除订单的测试与执行订单的删除,采用的是循环测试的方法,依次逐个删除所有订单,下面是订单删除的脚本程序:Dim IntNumber_SearchResults,Str_SearchResultsDim Delete_OrderNoWindow(Flight Reservation).ActivateWindow(Flight Reservation).WinMenu(Menu).Select File;Open Order.Window(Flight Reservation).Dialog(Open Order).WinCheckBox(Customer Name

34、).Set ONWindow(Flight Reservation).Dialog(Open Order).WinEdit(Edit).Set zhangttWindow(Flight Reservation).Dialog(Open Order).WinButton(OK).ClickWhile Window(Flight Reservation).Dialog(Open Order).Dialog(Search Results).Exist(5)IntNumber_SearchResults= Window(Flight Reservation).Dialog(Open Order).Di

35、alog(Search Results).WinList(Flight No.).GetItemsCountStr_SearchResults=Window(Flight Reservation).Dialog(Open Order).Dialog(Search Results).WinList(Flight No.).GetItem(RandomNumber(0,IntNumber_SearchResults-1)Window(Flight Reservation).Dialog(Open Order).Dialog(Search Results).WinList(Flight No.).S

36、elect Str_SearchResultsWindow(Flight Reservation).Dialog(Open Order).Dialog(Search Results).WinButton(OK).ClickWindow(Flight Reservation).ActivateDelete_OrderNo=Window(Flight Reservation).WinEdit(Order No:).GetROProperty(text) Window(Flight Reservation).WinButton(Delete Order).ClickWindow(Flight Res

37、ervation).ActivateWindow(Flight Reservation).Dialog(Flight Reservations).WinButton(是(Y).ClickWindow(Flight Reservation).Activate Reporter.ReportEvent micPass,删除定单号是:& Delete_orderno,删除的定单是:&Str_SearchResults Window(Flight Reservation).Activate Window(Flight Reservation).WinMenu(Menu).Select File;Ope

38、n Order.Window(Flight Reservation).Dialog(Open Order).WinCheckBox(Customer Name).Set ONWindow(Flight Reservation).Dialog(Open Order).WinEdit(Edit).Set zhangttWindow(Flight Reservation).Dialog(Open Order).WinButton(OK).ClickWendWindow(Flight Reservation).Dialog(Open Order).Dialog(Flight Reservations)

39、.WinButton(确定).ClickWindow(Flight Reservation).Dialog(Open Order).WinButton(Cancel).ClickReporter.ReportEvent micPass,删除定单成功:,定单查询不到,删除成功或者本身没有订单除了有删除订单的脚本语言外,在删除订单前,必须还要有订单存在,即需要首先创建订单,另外,在删除订单时,是将所创建的订单进行删除,当最后一个订单删除掉了时,就没有订单了,所有需要将空订单的对象添加进去,方可正常运行到结束。至于对象的添加,在上面已经进行了叙述,在此就不再赘述。最终,其测试运行结果如图3-3-5所

40、示:图 3-3-5 删除订单测试结果第四章 测试总结4.1 测试问题及问题解决 针对以上的测试内容,在测试过程中,出现了一些问题,下面对以上测试问题进行总结并解决其问题登陆功能的测试问题:在动态提示信息脚本实例中,设置的是当存在动态提示信息,也就是登陆飞机订票应用程序失败时,弹出提示信息,确定提示信息后,并未“Cancle”(取消)该应用程序。这导致循环参数时,脚本又启动了飞机订票应用程序,这样,当前界面存在两个飞机订票应用程序的初始界面,此时QTP遇到了难题,它不知道该选择哪个应用程序继续工作,因此在脚本中要添加取消这个未退出的应用程序登陆界面的操作。 问题解决:取消未退出的应用程序登陆界面

41、取消未退出的应用程序登陆界面的核心思想是:当登陆失败时,首先确定动态提示信息,然后取消“Login”界面。要取消应用程序,首先是要让QTP识别出登陆界面的所有对象,即进行对象的添加,在这里即是进行登陆界面对象的识别,其如图4-1-1所示:图 4-1-1 登陆界面的识别4.2测试问题总结在整个系统测试执行期间,我们能够高效地及时解决测试组人员提出的各种缺陷,在一定程度上较好地保证了测试执行的效率。但是在整个软件测试活动中还是暴露了一些问题,表现在:1 测试执行时间相对较少,测试通过标准要求较低;2 很多检查性功能代码没实现,注册和修改注册信息标准不一等3 测试执行人员对管理平台不够熟悉,使用时效

42、率偏低;4 测试执行人员对系统了解不透彻,测试执行时存在理解偏差,导致提交无效缺陷;测试用例标识号测试用例名称用例状态测试结果备注前台部分C_002,C_003,C_004,C_005注册新用户已执行测试通过于修改注册信息校验标准不一,少了联系方式,邮编的校验,另外我认为邮编应该和地址对应,地址应该只能是中文的C_006, C_007登录系统已执行测试通过C_008,C_009,B_001, B_002,B_003,B_00,4 ,B_005, B_006购物车管理已执行测试通过这部分系统还有一点缺陷,购物数量没有判定,没有库存等C_010,C_011订单管理已执行测试通过C_012,C_013,C_014顾客留言已执行测试通过C_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论