- 2.17 MB
- 30页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸《软件测试》课程项目库学生作品项目名称飞机订票系统功能测试院系计算机与软件学院专业软件技术(测试)班级软件0931学号0902343214学生姓名张婷婷
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸摘要以一个飞行订票网站为测试背景,使用QTP对该系统进行了功能测试,规划测试计划、搭建测试环境、设计及执行测试用例以及进行测试总结,建立了一个完整的网上飞行订票系统的功能测试方案。关键词:飞行订票系统;功能测试;缺陷
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸目录第一章QTP自动化测试介绍……………………………………………….11.1概述……………………………………………………………………..11.2测试介绍………………………………………………………………..11.3测试内容……………………………………………………………….11.4测试目标………………………………………………………………..1第二章测试计划及测试环境搭建………………………………………….32.1测试原理分析…………………………………………………………..32.2测试思想设计…………………………………………………………..32.3测试计划………………………………………………………………..42.4测试环境搭建…………………………………………………………..5第三章测试用例设计及执行……………………………………………….83.1登陆功能的测试………………………………………………………..83.2订票功能的测试………………………………………………………113.3传真和删除订单的测试与执行……………………………………...17第四章测试总结…………………………………………………………...224.1测试问题及问题解决………………………………………………...224.2测试结果分析…………………………………………………………234.3测试小结……………………………………………………………...25参考文献…………………………………………………………………….27
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸第一章QTP自动化测试介绍1.1概述QTP是HP公司开发的功能自动化测试工具。相对于手工测试,QTP自动化测试比人工测试快得多,同时可以避免人工测试的错误,因此,随着测试技术的发展,自动化测试逐渐成为测试的一个重要测试工具。1.2测试介绍本次课程的内容就是学习QTP自动化测试工具,以飞机订票系统为实例,通过飞机订票的过程,包括登陆、订票、删除等一系列功能操作,运用QTP自动化测试工具来进行具体测试操作,从而来了解并学习QTP自动化测试工具。在使用QTP进行自动化测试时,所包含的几个步骤:1、准备录制;2、创建对象库;3、创建函数和函数库;4、录制执行;5、强化测试脚本;6、调试脚本;7、在回归测试中运行测试;8、分析结果,报告问题。按照以上步骤,对飞机订票系统的各个功能进行自动测试,完成系统的测试工作。1.3测试内容对于飞机订票系统的自动化测试,首先要熟悉了解一下这个飞机订票系统的基本运行流程,从登陆到订票到查询、删除等一系列基本功能的操作,在对系统流程了解后,再开始对其中的一些功能进行测试工作。在对这个飞机订票系统,此次测试内容有登陆功能,其中登陆功能测试包含一个用户正确登陆、设置参数可以进行多个用户(正确和错误的)的登陆以及运用手工登陆的方法进行测试,在订票功能中,有对订票是否成功的测试、设置检查点以及循环所有航班的测试,另外还有传真订单的录制,其中有录制签名和录制模式,除此之外还有与数据库的链接等一些简单的功能测试。1.4测试目标本次课程主要目标就是了解熟悉并学习简单的自动化测试工具,能运用基本的测试工具,对系统进行简单的自动化测试。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸对于飞机订票系统的测试目标:Ø测试登陆功能,包括单个用户能否正确登陆、多个用户的正确和错误是否能正确登陆,以及手工能否登陆的测试Ø订票功能的测试,其中有判断订票是否成功、添加检查点及循环所有航班能否成功测试Ø传真和删除订单的测试,在传真测试中,录制签名后,进行播放时签名是能否播放出来,对于订单的删除,进行脚本语句的编写,能否成功完成测试共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸第二章测试计划及测试环境搭2.1测试原理分析QTP主要采用的是GUI模拟人的操作。它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别。例如,对于登陆功能中的用户名,在“用户名”输入框中输入“zhangtt”,其伪代码如下:WebEdit(“用户名”).Set“zhangtt”,下面据此分析这个测试原理:首先,QTP会通过“用户名”这个名字找到对象库的对象名中查找;然后通过找到的对象名,找到对象名映射的属性包;接着QTP就会通过这个属性包来匹配页面上的控件的属性,如果在页面上找到一个唯一与此属性包匹配的控件,那么QTP就会认为此控件为要找的控件;最后QTP根据“WebEdit”来确定控件的类型,并调用QTP对于此类控件内置的操作方法“Set”把“zhangtt”赋予了控件。至于其他控件的识别和操作,基本原理和上面一样,另外有一些需手动添加一些对象,方可识别。在后面的具体例子中,会详细叙述,在此就不在做精细描述了。2.2测试思想设计在对此次自动化测试进行了解,并对测试系统进行了基本的熟悉,在进行测试之前,根据测试原理的分析以及QTP测试的基本步骤,结合此次测试的基本要求和飞机订票系统的功能特征,可以设计如图2-2-1所示的测试思想流程图。该流程图使用的是MicrosoftVisio2003绘制而成。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-2-1测试思想流程图2.3测试计划在此次课程的QTP自动化测试学习时,首先对QTP自动化测试工具进行了解,安装QTP自动化测试这个工具,同时注册及启动QTP测试软件,于此同时熟悉其基本的功能和操作,除此之外,熟悉飞机订票系统的基本流程,其登陆、订票、传真及删除订单等一些功能,于此同时,将两者相结合,开始运用QTP自动化测试工具对此飞机订票系统进行一系列的自动化测试工作。在测试过程中,设计包括以下几个方面:1、登陆功能测试2、订票功能测试共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸1、传真的录制与播放功能测试2、删除订单的测试2.4测试环境搭建操作系统:Windowsxp语言:中文用户登陆:zhangtt软件:QuickTestProfessional9.2其他软件需求:MicrosoftVisio2003和MicrosoftWord2003一、QTP自动化测试的安装:1、双击QTP的安装文件“setup.exe”,弹出如图2-4-1所示的安装界面,图2-4-1QTP安装界面在其中选择“QuickTestProfessional安装程序”,则进入安装程序中,然后按照系统提示,依次安装,最终安装成功,如图2-4-2所示共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-4-2安装成功界面二、QTP自动化测试工具的注册与启动1、注册:双击打开安装好的QTP自动化测试工具,则会弹出如图2-4-2所示的注册信息提示:图2-4-2注册提示在此点击“InstallLicense”进行注册,其中在选择注册号时,其方法是:将GetLicense.exe注册机放到安装目录(默认C:ProgramFilesMercuryInteractiveQuickTestProfessional)并运行它,注册机将生成一个注册文件,该文件在C:ProgramFilesCommonFilesMercuryInteractiveLicenseManager。用记事本打开名字为lservrc的文件,复制“第一行中含#之前的所有字符”。如图2-4-3所示:共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图2-4-3注册界面然后依次点击“下一步”即可完成注册。注册完成后,双击打开“QuickTestProfessional”即可启动。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸第三章测试用例设计及执行3.1登陆功能的测试(一)登录功能的测试用例设计根据登陆功能的分析,设计其测试用例,如下表3-1-1所示:表3-1-1登陆功能的设计用例测试用例ID场景AgentNamePassword预期结果实际结果001用户名和密码正确zhangttmercury登陆成功成功登陆002密码不填Zhangtt登陆失败登陆失败003用户名不填Mercury登陆失败登陆失败004密码错误zhangttwrong登陆失败登陆失败(二)登陆功能的测试执行①单个用户的登录,一个用户登录的自动化测试是采用录制与播放的方式进行测试的,其录制脚本语言为:Dialog("Login").ActivateDialog("Login").WinEdit("AgentName:").Set"zhangtt"Dialog("Login").WinEdit("Password:").SetSecure"4e9398ddaab6f473e43f8529bdc308515c123f19"Dialog("Login").WinButton("OK").ClickWindow("FlightReservation").ActivateWindow("FlightReservation").Close②多个用户的登陆,多个用户登陆时,测试了用户名、密码正确和错误以及用户名密码不填的情况,对此测试时,进行了参数化设置以及信息的捕捉,在此共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸同时还需要将自动登陆更改为手工登陆,具体测试操作如下:注:为了能看到密码值,在此先将密码设置为明文的,其操作为:将Password动作改为“set”,并将密码修改为明文“mercury”第一步:进行参数化设置:在值后点击按钮,则弹出参数化设置界面,在此进行参数化设置,如图3-1-1所示:其用户名和密码的参数化设置均是一致采用此种方法图3-1-1参数化设置界面第二步:在设置好的参数表格中填写测试数据(有用户名密码正确的情况,也有错误的或不存在的均进行测试)第三步:添加脚本语言,其程序为:IfDialog("Login").Dialog("FlightReservations").Exist(5)ThenDimerr_messageerr_message=Dialog("Login").Dialog("FlightReservations").Static("Agentnamemustbeat").GetROProperty("text")Reporter.ReportEventmicFail,"登陆失败","错误信息是:"&err_messageDialog("Login").Dialog("FlightReservations").WinButton("确定").ClickDialog("Login").WinButton("cancle").ClickElseReporter.ReportEventmicPass,"登陆验证","登陆成功"Window("FlightReservation").CloseEndIf第四步:捕捉动态信息,添加识别对象,其方法是,在菜单中点击“”共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸按钮,弹出添加对象的窗口如图3-1-2所示,图3-1-2识别对象窗口在“ObjectRepository”窗口中,单击“AddObjectstoLocal”添加所需识别的对象,如图3-1-3所示:以此来一一添加所需识别的对象图3-1-3添加识别对象第五步:添加手动登陆的脚本语言,其程序为:SystemUtil.RunPathFinder.Locate("C:ProgramFilesMercuryInteractiveQuickTestProfessionalsamplesflightappflight4a.exe"),"",PathFinder.Locate("C:ProgramFilesMercuryInteractiveQuickTestProfessionalsamplesflightapp"),"open"第六步:将运行行数修改为运行所有添加的数据,其操作是右击“Action”选择“”弹出运行行数界面,选择“Runonallrows”,其界面,如图3-1-4所示:共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-1-4修改运行行数界面第七步:测试运行,运行结果如图3-1-4所示:图3-1-4测试运行结果3.2订票功能的测试(一)判断订票是否成功的测试首先录制订票过程,将其订票程序录制出来,录制完成后点击“stop”,停止录制,要判断订票是否成功的方法有两个,一种是结合对象识别器编写脚本实现,另外一种是添加检查点实现,在此,选用添加检查点的方法进行测试。添加检查点:共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸在采用添加检查点的方式判断订票是否成功时也有两种方式,在这里采用了通过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”对话框共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸继续为其添加一个动态属性值的标准检查点,在此按钮后依然右键单击一下,在弹出的按钮对象快捷键里选择“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”按钮添加添加了一个检查点。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸此时,回到脚本语言,会发现,多了两句程序,这两句语言就是刚刚添加检查点自动生成的脚本语言,这就是所设置的检查点,其代码为:Window("FlightReservation").WinEdit("OrderNo:").CheckCheckPoint("OrderNo:")Window("FlightReservation").WinEdit("OrderNo:").OutputCheckPoint("OrderNo:_2")在添加完检查点后,还需要添加判断订票是否成功的脚本程序,其代码为:DimUpdate_Order_EnableUpdate_Order_Enable=Window("FlightReservation").WinButton("UpdateOrder").GetROProperty("enabled")IfUpdate_Order_Enable=trueThenReporter.ReportEventmicPass,"订票成功","根据Update_Order按钮判断订票成功"elseReporter.ReportEventmicFail,"订票失败","根据Update_Order按钮判断订票失败"EndIf判断订票是否成功的脚本语言添加完后,则可运行测试,其测试结果如图3-2-5所示:图3-2-5判断订票是否成功的测试运行结果(二)循环所有航班测试循环所有航班的思想是:使用循环语句,遍历起始地和目的地的WinComboBox对象,航班WinList的对象,每个存在的可行性组合作为一组航班,直到所有的对象遍历完毕,则航班循环完毕。起始地和目的的都是WinComboBox对象,航班是一个WinList对象,如图3-2-6所示共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图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_FromDimStr_FlyFrom,Str_FlyTo,Str_FromDimFlyFrom_Count,FlyTo_Count,From_CountFlyFrom_Count=0FlyTo_Count=0From_Count=0Window("FlightReservation").ActivateIntNumber_FlyFrom=Window("FlightReservation").WinComboBox("FlyFrom:").GetItemsCountIntNumber_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:").GetItemsCountFori=0toIntNumber_FlyFrom-1Forj=0toIntNumber_FlyTo-1Window("FlightReservation").ActivateWindow("FlightReservation").WinMenu("Menu").Select"File;NewOrder"Window("FlightReservation").WinObject("DateofFlight:").Type"121212"Str_FlyFrom=Window("Flight共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Reservation").WinComboBox("FlyFrom:").GetItem(i)Window("FlightReservation").WinComboBox("FlyFrom:").SelectStr_FlyFromStr_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:").GetItem(j)Window("FlightReservation").WinComboBox("FlyTo:").SelectStr_FlyToWindow("FlightReservation").WinButton("FLIGHT").ClickIntNumber_From=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItemsCountFork=0toIntNumber_From-1Str_From=Window("FlightReservation").Dialog("FlightsTable").WinList("From").GetItem(k)Window("FlightReservation").Dialog("FlightsTable").WinList("From").SelectStr_FromReporter.ReportEventmicPass,"起始地:"&Str_FlyFrom&"目的地:"&Str_FlyTo&"航次:"&Str_From,Str_FlyFrom&Str_FlyTo&Str_FromWindow("FlightReservation").Dialog("FlightsTable").WinButton("OK").ClickWindow("FlightReservation").WinEdit("Name:").Set"tianyanqin"Window("FlightReservation").WinEdit("Tickets:").Set"2"Window("FlightReservation").WinRadioButton("First").SetWindow("FlightReservation").WinButton("InsertOrder").ClickWindow("FlightReservation").Activate"Window("FlightReservation").WinEdit("OrderNo:").OutputCheckPoint("OrderNo:")"Window("FlightReservation").WinEdit("OrderNo:").CheckCheckPoint("OrderNo:_2")Window("FlightReservation").ActivateWindow("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_FlyFromStr_FlyTo=Window("FlightReservation").WinComboBox("FlyTo:").GetItem(j)Window("FlightReservation").WinComboBox("FlyTo:").SelectStr_FlyToWindow("FlightReservation").WinButton("FLIGHT").Click"Next共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸From_Count=IntNumber_FromReporter.ReportEventmicPass,"起始地:"&Str_FlyFrom&"目的地:"&Str_FlyTo&"航班次数:"&From_Count,Str_FlyFrom&Str_FlyTo&From_CountWindow("FlightReservation").Dialog("FlightsTable").WinButton("Cancel").ClickFlyTo_Count=FlyTo_Count+From_CountNext"Reporter.ReportEventmicPass,"起始地:"&Str_FlyFrom&"航班次数:"&From_Count,Str_FlyFrom&FlyTo_CountFlyFrom_Count=FlyFrom_Count+FlyTo_CountNextReporter.ReportEventmicPass,"所有的航班次数:"&FlyFrom_Count,FlyFrom_Count根据以上测试脚本程序,循环所有航班测试结果为如图3-2-7所示图3-2-7循环所有航班测试运行结果界面3.3传真和删除订单的测试与执行(一)传真功能的测试与执行在传真功能这一模块中,主要是传真订单的录制,通过录制来实现的。在这里,传真的录制过程为:“NewOrder”——“OpenOrder”——“FaxOrder”第一步“NewOrder”,打开“FlightReservation”界面,选择菜单中的共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸“File”选项,选择“NewOrder”,则开始新建一个订单,其操作界面如图3-3-1所示:图3-3-1新建一个订单的界面第二步:创建一个订单后,继续选择菜单中的“File”选项,选择“OpenOrder”,打开所建的订单,搜寻所要传真的用户名,其界面如图3-3-2所示:图3-3-2“OpenOrder”界面第三步:将所选择的订单进行发送,选择菜单栏“File”选项,选择“FaxOrder”进行订单发送,在传真时,有一个签名,在进行签名时,需要进行一个设置,在播放时方可看见签名,在签名前,先点击“”按钮,弹出如图3-3-3所示界面,点击“StartAnalogRecord”按钮,在进行签名录制共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-3-3进行签名设置的界面在签名录制完后,点击“PreviewFax”按钮,进行传真预览,其界面如图3-3-4所示:图3-3-4传真预览界面最后在此界面上点击“Send”按钮,则订单发送成功。(二)删除订单的测试与执行订单的删除,采用的是循环测试的方法,依次逐个删除所有订单,下面是订单删除的脚本程序:DimIntNumber_SearchResults,Str_SearchResultsDimDelete_OrderNoWindow("FlightReservation").ActivateWindow("FlightReservation").WinMenu("Menu").Select"File;OpenOrder..."Window("FlightReservation").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation").Dialog("OpenOrder").WinEdit("Edit").Set"zhangtt"Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").ClickWhileWindow("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").Exist(5)IntNumber_SearchResults=Window("FlightReservation").Dialog("Open共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸Order").Dialog("SearchResults").WinList("FlightNo.").GetItemsCountStr_SearchResults=Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinList("FlightNo.").GetItem(RandomNumber(0,IntNumber_SearchResults-1))Window("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinList("FlightNo.").SelectStr_SearchResultsWindow("FlightReservation").Dialog("OpenOrder").Dialog("SearchResults").WinButton("OK").ClickWindow("FlightReservation").ActivateDelete_OrderNo=Window("FlightReservation").WinEdit("OrderNo:").GetROProperty("text")Window("FlightReservation").WinButton("DeleteOrder").ClickWindow("FlightReservation").ActivateWindow("FlightReservation").Dialog("FlightReservations").WinButton("是(Y)").ClickWindow("FlightReservation").ActivateReporter.ReportEventmicPass,"删除定单号是:"&Delete_orderno,"删除的定单是:"&Str_SearchResultsWindow("FlightReservation").ActivateWindow("FlightReservation").WinMenu("Menu").Select"File;OpenOrder..."Window("FlightReservation").Dialog("OpenOrder").WinCheckBox("CustomerName").Set"ON"Window("FlightReservation").Dialog("OpenOrder").WinEdit("Edit").Set"zhangtt"Window("FlightReservation").Dialog("OpenOrder").WinButton("OK").ClickWendWindow("FlightReservation").Dialog("OpenOrder").Dialog("FlightReservations").WinButton("确定").ClickWindow("FlightReservation").Dialog("OpenOrder").WinButton("Cancel").ClickReporter.ReportEventmicPass,"删除定单成功:","定单查询不到,删除成功或者本身没有订单"除了有删除订单的脚本语言外,在删除订单前,必须还要有订单存在,即需要首先创建订单,另外,在删除订单时,是将所创建的订单进行删除,当最后一个订单删除掉了时,就没有订单了,所有需要将空订单的对象添加进去,方可正常运行到结束。至于对象的添加,在上面已经进行了叙述,在此就不再赘述。最终,其测试运行结果如图3-3-5所示:共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸图3-3-5删除订单测试结果共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸第四章测试总结4.1测试问题及问题解决针对以上的测试内容,在测试过程中,出现了一些问题,下面对以上测试问题进行总结并解决其问题(一)登陆功能的测试问题:在动态提示信息脚本实例中,设置的是当存在动态提示信息,也就是登陆飞机订票应用程序失败时,弹出提示信息,确定提示信息后,并未“Cancle”(取消)该应用程序。这导致循环参数时,脚本又启动了飞机订票应用程序,这样,当前界面存在两个飞机订票应用程序的初始界面,此时QTP遇到了难题,它不知道该选择哪个应用程序继续工作,因此在脚本中要添加取消这个未退出的应用程序登陆界面的操作。问题解决:取消未退出的应用程序登陆界面,其中在取消未退出的应用程序登陆界面的核心思想是:当登陆失败时,首先确定动态提示信息,然后取消“Login”界面。要取消应用程序,首先是要让QTP识别出登陆界面的所有对象,即进行对象的添加,在这里即是进行登陆界面对象的识别,其如图4-1-1所示:图4-1-1对象识别的登录界面(二)传真功能的测试问题:在进行订票的传真测试运行时,出现一下几个问题,第一、发送的订单不存在或没有订单,此时,无法进行传真;第二、传真发送时,没有打开订单,进行订单搜索,不知道发送的哪一个订单;第三、在播放录制传真时,签名不存在,无法看到录制时的签名共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸问题解决:在传真时,首先录制订单,然后还需要打开订单,搜索所要传真的订单,最后进行传真,在发送传真时,在签名前,需修改录制模式,单击按钮,切换到“AnalogRecording”录制模式即可。(三)删除订单功能的测试问题:在删除订单功能测试时,出现几个问题:没有订单,无法进行删除操作;删除到最后一个订单了后,没有订单了,测试运行卡在那里,无法停止。问题解决:在进行删除订单操作之前,首先进行订单的查询,看是否有订单存在,可以进行删除;当删除到最后一个订单后,无法查询到订单了,需将查询不到订单的对象添加到仓库中,系统识别出来即可正确终止测试运行。需添加的查询不到订单的对象的信息提示,如图4-1-2所示:图4-1-2订单查询识别提示对话框4.2测试结果分析(一)登陆功能的测试结果分析单个用户登陆的测试,直接是通过录制和播放来实现的,这个较为简单,也没有太大的什么问题,在此也就不再叙述了。多个用户登陆功能的测试,其中包括了用户、密码正确的登陆;用户不存在的登陆;密码不存在的登陆。1、正确的成功登陆,其测试运行结果,如图4-2-1所示;图4-2-1正确的成功登陆结果用户名和密码均填写且正确时,测试方可成功通过,其测试运行结果即为“Passed”,表示此登陆为成功登陆,且测试也通过了。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸2、不填写用户名的登陆,测试运行结果,如图4-2-2所示:图4-2-2没有用户名登陆的测试结果当没有用户名进行登陆时,经过测试运行,此时是失败登陆的,结果为“Failed”同时提示“登陆失败”的信息,并且测试还列出错误信息是:Pleaseenteragentname即是没有输入用户的错误。3、没有密码的登陆,其测试运行结果,如图4-2-3所示:图4-2-3没有密码登陆的测试结果在登陆时,没有输入密码进行登陆时,经过其测试运行后,显示失败登陆的,结果为“Failed”,提示“登陆失败”,且列出了错误信息:Pleaseenterpassword即是需输入密码方可登陆。(二)订票功能的测试结果及分析订票功能中一个是通过直接录制订票过程,播放所录制的订票内容,其测试运行比较简单,也没有什么较大问题,测试运行能直接进行,在此,也就不再做详尽的解说,另外一个是判断订票是否成功,通过测试运行,其测试运行结果,如图4-2-4所示:图4-2-4判断订票是否成功的测试运行结果通过测试运行,可见,测试结果是订票成功的,其结果是“Passed”,在这里最主要的就是显示的Details,其显示为“根据Update_Order按钮判断订票成功”,即是此判断订票是否成功是根据Update_Order按钮来判断的,充分显示了其判断的可靠性,同时也说明测试运行正确性。(三)删除订单功能的测试结果及分析共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸订单删除功能的测试,是通过对所添加的订单进行删除,通过删除功能的测试运行,其结果如图4-2-5所示:图4-2-5删除订单的测试运行结果由测试运行结果即可见,此次测试运行是成功的,同时,由上图可详细得知,删除订单的所有具体内容,能清楚的明了所删除订单的所有信息,通过测试运行即可发现,此次删除订单是成功运行了。4.3测试小结通过本次设计让我对QuickTestProfessional测试流程和测试设计思想和测试计划制定有了更深刻的理解,同时进一步掌握了QTP测试原理。使用QTP的目的是想用它来执行重复的手动,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。录制的时候,QTP将操作过的所有对象都记录下来,保存在对象库objectrepository中,记录的形式是一个逻辑名加上若干识别属性。运行脚本时,QTP分析该脚本要执行那个对象的操作,然后根据该语句中的逻辑名,在对象库中查找该对象的详细记录,然后在运行的真实披头散发软件中按图索骥,找到需要操作的对象,把语句规定的操作施加在该对象上.施加的主要动作就是把操作的相关消息时间放入到该对象窗口的消息循环队列中。所以,一个完整的脚本测试应该包括两部分,一个是测试脚本的代码,一个是对象库。通过本次设计让我更加深刻的领会了自动化测试技术的内涵,同时掌握了QTP工具的使用。对QTP测试流程更加熟练,同时在测试时编写测试用例同样让我掌握了用例设计的方法和步骤。还有对QTP测试使用时遇到的各种问题通过各种方法一一解决。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸总的来说通过本次课程设计提高了分析问题,解决问题和动手操作能力,同时也提高了创新能力,是一次很有价值,很有用的实验,为今后学习打下了更加牢固的基础。共27页第27页
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊项目报告纸参考文献[1]柳胜.《软件自动化测试框架设计与实践》.北京:人民邮电出版社,2009.11[2]陈能技.《QTP自动化测试实践》.北京:电子工业出版社,2008.6[3]http://bbs.51testing.com/viewthread.php?tid=162777&page=1QTP视频教程[4]田艳琴.《QTP从实践到精通》.北京:电子工业出版社,2010.4[5]E测工作室.《QTP项目应用与进阶》.上海:化学工业出版社,2009.9共27页第27页'
您可能关注的文档
- 娃娃鱼养殖项目报告书
- 浙江大学本科教学工作水平评估特色项目报告
- 关于我校建设运动场的项目报告
- 四川荆竹居住小区农迁房工程项目报告
- xx移动用户手机上网感知提升项目报告
- 花艺与茶道项目报告
- 建设项目环境影响评价报告书:一个医院人民医院内科病房楼项目项目报告书报批稿
- 某国道高速公路项目报告
- 天津xxx大街项目报告
- 工程项目报告管理规定
- 成都世联策划顾问项目报告
- 建省营运车辆二级维护竣工检视项目报告单
- 一个报废汽车回收项目报告书
- 智能小车项目报告
- 职业技术学院商务流通系毕业项目报告(1) - 副本
- 3 大学生科技创新基金项目报告3
- 安徽省禾裕黄酒有限公司年产3万吨黄酒系列产品项目报告书
- 中药饮片加工及医药物流中心建设项目报告