QTP实现自动化原理
QTP主要采用的是使用GUI模拟人的操作。它在模拟人的操作时会记录操作的对象及所做的操作和顺序,然后在回放时按记录顺序操作这些对象。而在这个模拟的过程中,最重要的莫过于界面对象(控件)的识别,那QTP是怎么做的呢?下面就举一个小例子来说明:比如我们要测试内网论坛http://172.16.1.3:8080/bbs/index.php用正确的用户名和密码是否能成功登录。登录界面如下:
测试步骤大概如下:
1. 要先识别用户名输入框、密码输入框、登录按钮控件
2. 在用户名输入框中输入正确的用户名
3. 在密码输入框中输入正确的密码
4. 点击登录按钮
5. 验证是否登录成功,要验证是否成功登录,那就得知道成功登录与失败登录的区别。成功登录后的页面如下:
我们可以通过验证红色框中的内容或验证绿色框中的内容来标识登录是否成功,然后记入测试报告。
以上只是一个小例子,从中可以看出识别对象是一个很重要的问题也是一个很困难的问题,毕竟现在的控件类型越来越多(包括第三方插件或自己开发或定义的控件)。那QTP是怎么来识别对象的呢,下面通过讲解QTP识别以上小例子中的控件的方法来说明一下:
首先,QTP是通过记录控件的属性来标识对象的(当然具体用哪一些属性,QTP是有默认的,也可以配置)。假设QTP使用“html tag”和“name”属性来识别对象,QTP是怎么处理的呢?请先看下图:
长篇巨著啊
期待Ing 希望写全点再放出来
虽然 说的仍然比较表面 期待着、、、 哇QTP的对象识别技术还是很牛的 应该属于说起来容易做起来难的那种
能了解一些就好了 对象是qtp的灵魂。。。
不知道有没有哪位仁兄开发过自动化测试工具?
期待分享 自动化的核心原理(除对象识别)--Windows消息机制(Windows平台)
个人观点,仅供参考!:)
[ 本帖最后由 lantianwei 于 2009-4-3 19:43 编辑 ] 对象识别是最主要的,应该是Micrsoft有些另外的API开放给Mercury的
纯是靠开放的这些API,如GetWindowsText、GetWindowsClass、FindWindow 、SendMessage、EnumChildWindows ...根本无法实现这么强大的功能 怎么没了啊!!!! 我还等着下篇呢
回复 7# 的帖子
我在学习QTP,录制用c ++builder编写的程序,出现了问题。其中录制脚本如下:Window("Login").WinObject("name").Type "haitao"
Window("Login").WinObject("password").Type "111"
但提示出错,无法识别winobject,我也映射了,但还是不行,请问该怎么办呢?非常感谢
页:
[1]