|
本帖最后由 黑羽祭 于 2013-1-7 14:57 编辑
12月份,因为暂时没有分到开发任务,就兴趣研究了QTP,先是看了好多测试方面理论性的帖子,也收藏了不少。自己着手在官方上下载了QTP11,当然是试用的,但这不影响我们学习, 。
学习的时候一般用到:QTP11,记事本工具(遇到的问题及时记下来),截图工具。
安装完毕后,打开程序(按默认的选项打开)。
1,新建一个test
2,在Automation属性中选择Record and Run Settings
3,由于我们用到的demo是QTP自带的flight(在线购票系统),我们要在 windows app...选项卡下选择程序路径(如果开始录制输入用户名和密码无法登陆,报没有权限的错误,也可以通过代码加在你的脚本上,- SystemUtil.Run PathFinder.Locate("D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"),"",PathFinder.Locate("D:\Program Files\HP\QuickTest Professional\samples\flight\app"),"open" ' 打开程序
复制代码 就不用选择路径选择,选第一个选项即可)
,注意(QTP11在同菜单web选项卡中,有个默认的web在线航班,我们要选择Record.....这个选项卡,这样开开始录脚本的时候就不会弹出web,只会弹出flight的客户端登陆界面)
4,设置好后,在工具条下点击Record录像按钮,在用户名密码处输 mercury mercury 会登陆到机票订单明细页面 点击stop.停止录像。
5,我个人是在这步停了停,发现action中的密码是密文的,就在专家模式下修改,按照上一行登录名的 写法,改成Set("mercury"),点击回放也可以成功,在keword view模式下也是可以设置的,比如:参数化。
6,参数化脚本后这里需要对前台密码和登陆名的验证发送到测试报告中,这里用到 Reporter,Dialog(注:F1是个很好用的玩意,不懂的函数都可以去里面查一下,然后看的实例是怎么用的),以及把对添加到对象库中。(对象不能重名)- If Dialog("Login").Dialog("Flight Reservations").Exist(10) then
- '错误的用户名,密码无法登陆,动态捕获对象。
- Dim err_message
- err_message =Dialog("Login").Dialog("Flight Reservations").Static("Agent name must be at").GetROProperty("text") '捕获对象
- reporter.ReportEvent micFail,"登录验证error","错误信息是:"&err_message '后台输出错误信息
- Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
- Dialog("Login").WinButton("Cancel").Click
- else '捕捉不到登陆失败的弹窗
- reporter.ReportEvent micPass,"登录验证success","验证成功"
- '为了使其他脚本能够调用此脚本,注释掉成功后关闭程序的代码
- Window("Flight Reservation").Close
- end if
复制代码 7,重新回放脚本- SystemUtil.Run PathFinder.Locate("D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"),"",PathFinder.Locate("D:\Program Files\HP\QuickTest Professional\samples\flight\app"),"open" ' 打开程序
- Dialog("Login").WinEdit("Agent Name:").Set DataTable("userName", dtLocalSheet) ' 输入用户名
- Dialog("Login").WinEdit("Password:").Set DataTable("passWord", dtLocalSheet) ' 输入密码
- Dialog("Login").WinButton("OK").Click ' 点击OK
- If Dialog("Login").Dialog("Flight Reservations").Exist(10) then
- '错误的用户名,密码无法登陆,动态捕获对象。
- Dim err_message
- err_message =Dialog("Login").Dialog("Flight Reservations").Static("Agent name must be at").GetROProperty("text") '捕获对象
- reporter.ReportEvent micFail,"登录验证error","错误信息是:"&err_message '后台输出错误信息
- Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
- Dialog("Login").WinButton("Cancel").Click
- else '捕捉不到登陆失败的弹窗
- reporter.ReportEvent micPass,"登录验证success","验证成功"
- '为了使其他脚本能够调用此脚本,注释掉成功后关闭程序的代码
- Window("Flight Reservation").Close
- end if
复制代码 完成,查看测试报告和预期的一样。
此文章完全是个人总结,只是串了注意点。其中省略的部分细节比如如何控制action的迭代次数。记录问题,寻找答案,写总结,是个很好的学习方式和大家分享。希望志同道合的朋友一起努力。 |
评分
-
查看全部评分
|