使用QTP软件对飞机票订票系统进行测试
用于软件测试的结课作业
- 实验步骤
1.QTP测试技术简介
QTP是Quick Test Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输出数据等。
1.1基本功能
HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。如图(1-1)
图(1-1)
2.功能测试
2.1.1登录功能
用户需要输入用户名应大于或者等于四个字符,输入密码为“mercury”即可登录该飞机订票系统。
针对登录模块的输入条件:用户名和密码,有以下几种情况:
1. 当用户什么也没输入,直接点OK按钮,是否提示请输入用户名;
2. 当用户输入正确的用户名,没输入密码,直接点击OK按钮,是否提示请输入密码;
3. 对密码进行验证看是否设置输入密码的长度;
4. 当输入正确的用户名和密码时,点击OK按钮是否进入操作界面;
根据上面的分析,设计了如下表(2-1-2)的测试用例:
因此根据以上的分析,设计下列测试用例测试系统功能。
ID | 输入条件 | 预期输出 | 实际输出 | |
用户名 | 密码 | |||
001 | 空 | 空 | 提示:输入用户名 | 提示:输入用户名 |
002 | 空 | Zhang | 提示:输入用户名 | 提示:输入用户名 |
003 | 空 | mercury | 提示:输入用户名 | 提示:输入用户名 |
004 | zha | 空 | 提示:用户名长度少于4位 | 提示:用户名长度少于4位 |
005 | zha | Baihao | 提示:用户名长度少于4位 | 提示:用户名长度少于4位 |
006 | zha | Mercury | 提示:用户名长度少于4位 | 提示:用户名长度少于4位 |
007 | Mercury | 空 | 提示:输入密码 | 提示:输入密码 |
008 | Mercury | Zhang | 提示:密码错误 | 提示:密码错误 |
009 | Mercury | Mercury | 登录成功 | 登录成功 |
010 | zhang | Mercury | 登录成功 | 登录成功 |
1.2.2录制与测试过程
第一步:用QTP自动打开Flight Reservation系统的登陆界面,输入用户名和密码,确定当前的操作,将订票系统打开,登陆界面如图(2-1-1);
图(2-1-1)
第二步:在QTP主界面中单击“Record”,在登陆界面的文本框中,输入正确的用户名和密码,单击“OK”按钮,进入飞机订票系统界面。在QTP主界面,单击“Stop”按钮,结束当前的录制,如图(2-1-2)
图(2-1-2)
录制的脚本为:
Dialog("Login").WinEdit("Agent Name:").Set "zhang"
Dialog("Login").WinEdit("Password:").Set "636b53c7a146a382b12b9daa065cd86181"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Activate
Window("Flight Reservation").Close
第三步:在Expert View中更改Keyword View中,将密码更改为明文,同时在用户名字位置文本中添加检查点,脚本如下:
1: Dialoa(Loain").WinEdit("Agent Name:".Check CheckPoint("Agent Name:")
2: Dialog("Login").WinEdit("Agent Nam Set'zhang"
3: Dialog("Login") WinEdit("Password.SetSecure "636b5cb878f8a2a38c53d9f5389f0b0374254ac
4: Dialoa("Loain").WinButton("OK").Click
5: Window("Flight Reservation").Close
图(2-1-3)
2.2 订票测试
2.2.1 订票功能
订票实例的前提是登录订票系统的成功,该实例是在订票系统中进行订票操作:输入航班日期、选择起飞地、选择目的地、选择航班、输入顾客姓名、输入票的张数、选择航班级别、单击订票按钮,完成订票功能。
2.2.2 测试用例设计
测试编号 | 输入 | 预期结果 | 实际结果 |
001 | 空 | 选择Fly From中的地点,弹出警告 |
|
002 | 13/01/22 | 月份不合法,弹出警告信息 | |
003 | 10/36/22 | Day不合法,弹出警告信息 |
|
004 | 10/12/20 | 时间没有在当天的后面,弹出警告 |
|
005 | 11/07/22 | 正确 | |
006 | Fly From 为空 | Fly To不可选,弹出警告 | |
Fly From和Fly To 有一个为空,或都为空 | 航班按钮不可选择 | ||
008 | Fly From选择Paris | 正确 | |
009 | Fly To 选择London | Flights按钮可用 | 成功 |
010 | 单机选择10583航班 | 在窗口显示航班信息 | 出发点为Paris,目的地为London,选择10583航班 |
011 | 在Fly From中改选 LosAngeles | 清空航班信息,Flights按钮不可用 | Flights按钮不可用 |
012 | 输入名字、票数和等级:yilian,1,Business | Price:$346.94 Total:$346.94 | 成功 |
2.2.3录制与测试过程
第一步:录制脚本,选择“Record”如图(2-2-1);
(2-2-1)
第二步:在Agent Nnamesh输入名字,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)
第七步:在容易出错的点上右击鼠标,选择“Insert Standard Checkpoint”,如图(2-2-7);
图(2-2-7)
第八步:点击“确定”,如图(2-2-8);
图(2-2-8)
脚本(截图),图(2-2-9);
图(2-2-9)
2.3传真订单
2.3.1传真订单实例
传真订单实例是传真订票成功的订单,在传真订单中,需要输入传真号、确定是否输入签名等。选择打开存在的订单,传真订单是设置前面是汉字“田”,预览传真,开始传真。
2.3.2录制与测试过程
打开飞机订票系统,在系统的File中打开Open Order,会出现Open Order对话框,有顾客姓名、日期、航班等选项,如下图(2-3-1);
图(2-3-1)
输入顾客的姓名,即可查询到顾客订购的机票信息,如下图(2-3-2);
图(2-3-2)
打开File下的Fax Order,可以生成传真,填写Fax Number,输入086-010-1234,同时设置签名为“田”字。此时,录制签名之前,需要改变录制模式,录制模式修改为“Analog Recording”,修改后再录制签名,签名录制完后,再切换到“Recording”模式,发送传真,完成录制,如下图(2-3-3);
图(2-3-3)
在传单的录制过程中,还要添加对象,添加Flight Reservation对象,飞机航班的Flights Table对象,如下图(2-3-4);
图(2-3-4)
添加对象完成后,选择“All Object Types”,如下图(2-3-5);
图(2-3-5)
在“All Object Respositories“的对话框里,可以看到添加进去的所有对象,如下图(2-3-6);
图(2-3-6)
2.4删除订单
2.4.1删除订单实例
飞机订票成功后,也可以对订单进行删除。在Flight Reservation中提前订购好的订单挑出来,用QTP录制删除订单的过程,且欲删除订单必须确认订单有效,根据用户名查询订单,删除订单。
2.4.2录制与测试过程
首先打开飞机订票系统,同时打开QTP进行录制,在File中打开Open Order,若输入顾客的姓名正确,此时会跳出顾客飞机航班的订票情况,并添加到对象库中,如下图(2-4-1);
图(2-4-1)
在File中打开Open Order,在Customer Name中输入一个错误的顾客姓名,此时会弹出一个顾客姓名错误的提示框,在QTP中添加此对象,如下图(2-4-2);
图(2-4-2)
最后添加确认删除的对话框,如下图(2-4-4);
图(2-4-4)
在所有的对象都添加到对象库中,在All Object Repositories会显示所有的对象,如图(2-4-5);
图(2-4-5)
- 实验结果及其分析
1订单测试结果
通过运用QTP对飞机订票系统的测试,将已设计好的测试用例添加到QTP中,通过脚本的参数化设置,对测试用例进行自动化循环测试,如下图(1-1);
图(1-1)
QTP对测试用例的自动化测试后,分别将可以登陆成功和不能登陆成功的测试用例进行测试,运行结果如图(1-2);
图(1-2)
可以登录飞机订票系统的测试用例,QTP在测试后会显示登陆成功,如下图(1-3);
图(1-3)
不可以登录飞机订票系统的测试用例,QTP在测试后会显示登录失败,并且会说明错误的信息,如下图(1-4);
1.1 测试脚本
2 订单测试结果
执行QTP生成的脚本,结果如图(2-1);
图(2-1)
2.2测试脚本
SystemUtil Run"C \Proaram Files(x86)\samples\flight\app\light4a.exe"
Dialog("Login").WinEdit("Agent Name:")Set"zhang”
Dialog("Login").WinEdit("Password:").SetSecure"636ba7e21e486292e9a8291ab222bf69281a2a08"Dialog("Login”).WinButton("OK").Click
Window("Flight Reservation").WinObject("Date of Flight).Type "112022"
Window("Flight Reservation”.WinComboBox("Fly From:).Select"Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:" Select"London"
Window("Flight Reservation").WinButton("FLIG TMClick
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select"13130FRA 01:24 PM LON 02Window("Flight Reservation").Dialog("Flights Table”).WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set"zhangbaihao"
Window("Flight Reservation").WinRadioButton("Business").Set
Window("Flight Reservation").WinButton("lnsert Order").Click
Window("Flight Reservation").Close
3 传真测试结果
在添加完所有的对象后,录制的脚本才可以运行,同时也能在回放中看到缩写的签名,运行结果如图(2-3-7);
3.1测试脚本
SystemUtil.Run"C:\Program Files(x86)\samples\flight\app\flight4a.exe"
Dialog("Login").WinEdit("Agent Name:".Set'zhang"
Dialog("Login) WinEdit('Password:").SetSecure "636cd70a06fbcbaa6465117d25b41f4b8fec4dce"Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu”) Select"File:Open Order.
Window("Fliaht Reservation).Dialog("Open Order").WinCheckBox("Customer Name").Set "ON”Window("Flight Reservation").Dialog("Open Order")WinEdit("Edit").Set"zhang"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window"Fliaht Reservation") Dialog(Open Order) Dialog("Search Results").WinButton("OK").Click Window("Flight Reservation").WinMenu("Menu").Select"File:Fax Order.."
Window("Flight Reservation").Dialog("Fax Order No.11”).WinObject("Fax Number").Type"12345678911Desktop.RunAnalog"Track1"
Window("Flight Reservation").Dialog("Fax Order No. 11”).Activate
Window("Flight Reservation").Dialog('Fax Order No.11").WinButton("Send').Click
Window("Flight Reservation").Activate
Window("Flight Reservation").Close
4 删除订单测试结果
完成对象添加的操作,就可以开始修改脚本了,添加了判断订单查询对话框是否存在,如果存在则循环管操作订单存在的列表,随机选择一个订单,确定删除该订单,运行结果如下图(4-1);
图(4-1)
4.2测试脚本
Dim IntNumber_SearchResults,Str_SearchResults
Dim Delete_OrderNo
Window("Flight Reservation").Activate
Window("FlightReservation").WinMenu("Menu").Select"File;Open Order..."
Window("FlightReservation").Dialog("Open Order").WinCheckBox("Customer Name").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "tianyanqin"
Window("FlightReservation").Dialog("Open Order").WinButton("OK").Click
While Window("Flight Reservation").Dialog("Open Order").Dialog("Search Results").Exist(5)
Intnumber_SearchResults = Window("Flight Reservation").Dialog("Open Order").Dialog("Search Results").WinList("Flight No.").GetItemsCount
Str_SearchResults = Window("Flight Reservation").Dialog("Open Order").Dialog("SearchResults").WinList("Flight No.").GetItem(RandomNumber(0,IntNumber_SearchResults-1))
Window("Flight Reservation").Dialog("Open Order").Dialog("Search Results").WinList("Flight No.").Select Str_SearchResults
Window("Flight Reservation").Dialog("Open Order").Dialog("Search Results").WinButton("OK").Click
Window("Flight Reservation").Activate
Delete_Order = Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
Window("Flight Reservation").WinButton("Delete Order").Click
Window("FlightReservation").Dialog("Flight Reservations").WinButton("是(Y)").Click
Window("Flight Reservation").Activate
Reporter.ReportEvent micPass,"删除的订单号是:"&Delete_OrderNo,"删除的订单是:"&Str_SearchResults
Window("Flight Reservation").Activate
Window("Flight Reservation").WinMenu("Menu").Select"File;Open Order..."
Window("FlightReservation").Dialog("Open Order").WinCheckBox("Customer Name").Set"ON"
Window("FlightReservation").Dialog("Open Order").WinEdit("Edit").Set"tianyanqin"
Window("FlightReservation").Dialog("Open Order").WinButton("OK").Click
Wend
Window("Flight Reservation").Dialog("Open Order").Dialog("Flight Reservations").WinButton("确定").Click
Window("FlightReservation").Dialog("Open Order").WinButton("Cancel").Click
Reporter.ReportEvent micPass,"订单删除成功","
- 参考文献
- 田艳琴著,《QTP从实践到精通》,电子工业出版社,2010版
- 陈能计著,《QTP自动糊测试进阶》,电子工业出版社,2010版
- 张斌著,《精通QTP与自动化测试框架设计实践》,人民邮电出版社,2010版
- 黄文高著,《QTP自动化测试与框架模型设计》,机械工业出版社,2011版
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)