Rss订阅IQuickTest(关于如何订阅?)
作者:zzxxbb112
时间:2011/6/10版权所有,侵权必究。
出处:http://blog.csdn.net/zzxxbb112
在自动化测试过程中,经常会遇到一些容器对象,而QTP本身又无法对其容器对象的子对象识别,导致自动化无法继续进行下去。对于这样的问题在CS程序当中遇到的非常之多,比如有些treeview的子节点。当然最好的解决方式是进行套件的开发或者插件的扩展,但是有些时候此类对象出现的频率很低,数量也不是很多,那其实根本没必要去花费那么大的精力去特地开发这样一套套件或者插件扩展。来看一下具体的实例:
实例说明:以飞机订票的登录界面为例,假设ok按钮无法被QTP抓取到,完成对OK按钮的点击。
1. 首先抓去Dialog父窗口对象到对象库中,
2. 执行以下脚本
l = -1
t= -1
r = -1
b = -1
hwnd = Dialog("Login").GetROProperty("HWND")
window_x = Dialog("Login").GetROProperty("x")
window_y = Dialog("Login").GetROProperty("Y")
Succeeded = TextUtil.GetTextLocation( "OK",hwnd,l,t,r,b)
If Not Succeeded Then
MsgBox "Text not found"
else
x = window_x +(l+r) / 2
y = window_y +(t+b) / 2
Set dr = CreateObject("Mercury.DeviceReplay")
dr.MouseClick x, y,LEFT_MOUSE_BUTTON
End If
|
分析:
执行过程中,QTP会自动点击OK按钮,在此脚本中使用到GetTextLocation函数,此函数的作用主要是通过给出的文本查找出当前句柄对应窗口下的文本坐标,注意此处的坐标是窗口内部的相对坐标,并不是屏幕的绝对坐标。因此还需要加上父窗口的相对坐标才是相对于整个屏幕上的相对坐标。提取到相对坐标后即可使用隐藏组件DeviceReplay来进行点击(拖拽)操作。
扩展:
RegisterUserFunc "Dialog","ClickByText","ClickByText"
Dialog("Login").ClickByText "OK"
Function ClickByText(Object,textStr)
l = -1
t= -1
r = -1
b = -1
hwnd = Object.GetROProperty("HWND")
window_x = Object.GetROProperty("x")
window_y = Object.GetROProperty("Y")
Succeeded = TextUtil.GetTextLocation( textStr,hwnd,l,t,r,b)
If Not Succeeded Then
MsgBox "Text not found"
else
x = window_x +(l+r) / 2
y = window_y +(t+b) / 2
Set dr = CreateObject("Mercury.DeviceReplay")
dr.MouseClick x, y,LEFT_MOUSE_BUTTON
End If
End Function
|
分析:
通过抽离技术把测试封装对象全部抽离出来,替换成object,并通过RegisterUserFunc强制注入到Dialog中,下次就可以直接使用此方法了。
小提示:
其实QTP本身还提供了一个方法,同样可以实现以上脚本的效果,但是此方法被QTP隐藏着并没有被公开,方法名为ClickOnText. 有兴趣的可以试试:Dialog("Login").ClickOnText "OK" ,只需要一句话,同样可以实现。
总结:
此项技术的原理主要是通过对于平时处理一些项目中少量的黑容器对象时能够起到非常大的作用。需要注意的是以上两种方式都是通过OCR的光学进行识别,因此某些时候可能识别不是很精确,这一点需要记住。
版权声明:
1、本人对此系列讲座享有全部的版权。任何人转载或引用以上任何资料,一律必须以超链接形式注明出处。
2、未经本人书面许可,严禁任何出版社或个人出版本BLOG内任何内容。否则,永久追究法律责任(zzxxbb112、二零一一年六月声明)。
分享到:
相关推荐
软件测试自动化-QTP系列讲座;详细讲解了QTP的使用,并有论坛可提问
iQuickTest 领先技术研究 作者 zzxxbb112 我把他目前写的52期做了打包总结。
软件测试实验3-QTP初级使用实验报告.docx软件测试实验3-QTP初级使用实验报告.docx软件测试实验3-QTP初级使用实验报告.docx软件测试实验3-QTP初级使用实验报告.docx软件测试实验3-QTP初级使用实验报告.docx软件测试...
当你在回放QTP的时候,你是否有注意过QTP在回放的时候鼠标是没有运动的有些朋友肯定会问,既然是CLICK点击为什么鼠标...鼠标跟踪 Event模式就是我们平时默认用的模式,也就是事件,其实QTP的click方法只是触发了对象的C
当你在回放QTP的时候,你是否有注意过QTP在回放的时候鼠标是没有运动的有些朋友肯定会问,既然是CLICK点击为...-鼠标跟踪 Event模式就是我们平时默认用的模式,也就是事件,其实QTP的click方法只是触发了对象的CLICK
第30讲-QTP自动化测试总结 第30讲-QTP自动化测试总结 第30讲-QTP自动化测试总结
首先介绍一下AutoIt: AutoItv3是用以编写并生成具有BASIC语言风格的脚本程序的免费软件,它被设计用来在WindowsGUI(用户界面)中进行自动操作。通过它可以组合使用模拟键击、鼠标移动和窗口/控件操作等来实现自动化...
软件测试自动化工具QTP学习 关于QTP的原理及使用方法的具体介绍
第28篇-QTP自动化测试用例设计第28篇-QTP自动化测试用例设计
第30篇-QTP自动化测试技术总结第30篇-QTP自动化测试技术总结
软件测试自动化工具QTP资料总结 关于QTP的实用总结
1 自动化测试的实践-应用QTP测试框架.pptx
轻量级自动化测试框架-QTP Based.ppt
8、自动化测试工具-QTP(下)
轻量级自动化测试框架-QTP Based
QTP是quicktest Professional的简称...自动化测试同时涵盖各种各样的测试种类,常见的有以下几种:功能(黑盒/白盒)自动化测试、性能测试、压力测试、GUI测试、安全性测试,它们都可以由测试自动化技术来代替手工测试
自动化测试qtp详解
自动化测试的实践-应用QTP测试框架,自动化,qtp。