凤凰涅槃 浴火重生
同行概述QTP在项目中应用[0]
上一篇 /
下一篇 2010-10-28 10:17:23
/ 个人分类:TestFile
感谢 飞鱼的传说 的分享
以下为整理内容:
去年9月被抽调来做QTP,因为公司原来做QTP那位辞职了,那时候公司也才开始做,只有他一个,这位兄台写了一个框架,把对象的属性全存到数据库,利用表关联在脚本运行时动态建立对象结构识别对象,这个框架写得那叫一个天书,几乎没人能看懂。我一个人做了3,4个月,北美那边还有2个同事,才开始学QTP,所以不懂的问题也只有问她们,主要是看她们的代码,我们全是描述性编程,所有的操作全封装在Function里,看了她们的代码才知道原来vbs可以写得这么复杂。今年年初,来了2位高手,一个在HP干了3年,另外一个也是在上家公司带QTP团队的,公司开始砸钱了。这时候真正开始高速成长,我们公司系统前台是FLEX,加上后台service不是太稳定,同步是个大问题,所以脚本要考虑到这一点,必须在很多地方用不同的方式验证页面是否真正到达,现在我们做的就是维护一个自动化的API,所有的操作放到API里面,复杂的逻辑都写进Function里,在Action里直接添加检查点。现在想来做自动化最难的是什么,不是语言,不是QTP技术,而是解决问题的思路,当有的对象不能识别的时候这么绕过,当然最好找开发改,但是也需要想想办法绕过去,是否可用坐标,用坐标是否有偏差,是否可以通过TAB建从其他能识别的对象开始查找焦点,然后进行操作。
最后说说所谓的框架,经常听人谈论,但是把自动化做成功这个一点不重要,而是脚本的质量,是否跑不挂,错误信息打印是否完整利于查找问题等等,框架只是一个改进,例如QTP批量跑脚本自带的testbatchrunner不好用,我们就用vbs自己写了个自动化QTP自身的小程序,跑完把结果输出到指定的文件夹。
就说这么多
你如果把对象结构全写进function里,在Action里全是检查点,在每个脚本里关联functin library,对象更新了直接在function library里replace all就可以了,你用框架同样不可避免这样的问题
我们用到QTP的功能就是描述性编程去识别对象,场景恢复,虚拟对象,对象库都没用到,错误处理就是用的reportmanager对象在脚本里打印出错误信息,没进行更多的封装之类的,
收藏
举报
TAG: