• 实验步骤

1.QTP测试技术简介

       QTPQuick 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,"订单删除成功","

  • 参考文献
  1. 田艳琴著,《QTP从实践到精通》,电子工业出版社,2010版
  2. 陈能计著,《QTP自动糊测试进阶》,电子工业出版社,2010版
  3. 张斌著,《精通QTP与自动化测试框架设计实践》,人民邮电出版社,2010版
  4. 黄文高著,《QTP自动化测试与框架模型设计》,机械工业出版社,2011版
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐