QTP—Windows程序测试

继上一篇QTP—Web测试后,这一篇将主要讲windows程序的测试。很多在软件测试之功能测试—QTP—Web测试中讲的就不再赘述,大体差不多。

首先打开QTP的时候,不要勾选插件,直接启动即可进行windows程序测试,如果打开的时候没有这个界面,可以先打开QTP,在工具->选项->常规中,勾选在启动时显示插件管理器,重新启动QTP即可。

一、录制脚本与检查点

录制脚本的过程还是一样的,点击录制,打开程序,操作程序,停止录制,关闭程序,回放脚本。插入检查点,运行脚本,查看运行结果。这里使用QTP自带的windows程序,X:\Program Files (x86)\HP\Unified Functional Testing\samples\flight\app\flight4b.exe,在录制->设置中可以修改录制的设置,程序用户名长度大于4即可,密码是mercury,不区分大小写。

检查点又有:

  • 标准检查点:检查对象的属性信息是否正确,如某个复选框是否被选中
  • 文本检查点:检查程序中的文字信息是否正确
  • 文本域检查点:检查程序中的文字信息(部分文字或相对位置)是否正确
  • 图像检查点:将网页或者窗口上的一部分区域以图像的形式捕获下来,然后判断画面是否正确,如检查一个网页或者网页的一部分是否像预期的那样显示出来
  • 数据库检查点:检查数据库的内容是否正确,如检查数据库的查询值是否正确

我这里插入了两个检查点:一个是检查login按钮属性,一个是检查航班结果属性。

二、参数化

这里测试一个完整的订票过程参数化,即一堆登录数据,用户名密码不正确的退出,不订票,用户名密码正确的进入订票流程,然后迭代数据表中的数据,知道数据全部测试完毕。

1. 测试数据及设置运行

首先在Global表或action1的local表中写要测试的数据,注意:这里可以用Global表,也可以用action1的表,如果用action1的表,脚本中迭代测试的时候需要自己写for循环脚本,循环执行测试,使用Global表时,只需右键项目,设置好就可以逐行测试。

下图是我设计的测试数据:第一行和第三行是正确的,其他的都是不能登录的。

2. 编辑脚本

在上一步录制完成的基础上修改脚本,脚本中有详细的注释。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Set WshShell = CreateObject("WScript.Shell")

If Not Dialog("Login").Exist Then '如果程序退出了再打开它

Set oExec = WshShell.Exec("D:\Program Files (x86)\HP\Unified Functional Testing\samples\flight\app\flight4b.exe")

End if

Dialog("Login").WinEdit("Agent Name:").Set DataTable("name", dtLocalSheet) ' 从表中读取用户名
Dialog("Login").WinEdit("Agent Name:").Type micTab ' tab到密码

Dialog("Login").WinEdit("Password:").SetSecure DataTable("password", dtLocalSheet) ' 从表中读取密码

Dialog("Login").WinButton("OK").Click ' 点击登录

If Dialog("Login").Dialog("Flight Reservations").Exist Then ' 登录失败
reporter.ReportEvent 0,"登录功能测试","登录失败!" ' 输出一个报告
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click ' 退出程序

Else ' 登录成功 购票
reporter.ReportEvent 0,"登录功能测试","登录成功!"
Window("Flight Reservation").WinObject("Date of Flight:").Type "051416"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "12345"
Window("Flight Reservation").WinRadioButton("First").Set
Window("Flight Reservation").WinEdit("Tickets:").SetSelection 0,1
Window("Flight Reservation").WinEdit("Tickets:").Set "3"
Window("Flight Reservation").WinButton("Insert Order").Click

Window("Flight Reservation").WinMenu("Menu").Select "File;Exit" ' 退出程序

End if

3.脚本运行结果

坚持原创技术分享,您的支持将鼓励我继续创作!