环境:QTP 8.2 (由于近段时间在忙其他的东西,一直没有时间在重新好好学习QTP,不知道9.5版本的QTP能否识别WM模拟器呢)
目标:WM模拟器GUI界面
问题:无论安装什么组件,QTP无法识别模拟器内组件(当然,Robot也不行),所有录制只能使用“坐标大法”。但是在回放时,出现click步骤实效的问题,即正常回放但是不对坐标点进行点击操作(随即出现,与测试PC无关)。
解决方法:
1.对click步骤进行检查
Object.click x,y
wairt times
Do while object.check(checkpoint())=ture
Object click x,y
Loop
其中times根据实际情况而定,可能是1秒,也可能是0.5秒。
虽然这样作规避了click丢失的问题,但是带来了两个新的问题:脚本代码过于庞大/运行周期过长。
2.录制完成后,将其中的click改成dblclick,意外发现“click问题”解决了,同时也有新问题出现:比如dblclick一个界面x,y处的buttonA,如果在下一个界面相同位置有一个buttonB ,结果在回放这个双击步骤时,得到的输出:有时是只点击了buttonA,有时却连buttonB也一同点击了...
3.于是将1和2进行了简单的组合,录制完一个脚本后,先将所有的click改成dblclick,再回放几次(偶一般回放10次左右),然后找出有问题的dblclick,把它们改称1种描述的click检查。
注意事项:
1.在设置位图检测点时,应该注意以下几点:
a、 检测点具有代表性,能够代表步骤成功后的特殊效果;
b、 设置检测点时,尽量采用较小的图片作为检测点,较大的图片可能会出现意料之外的情况:比如设置检测点时,数据比较少,图片内某些部分是空白的,但是在回放脚本循环运行几次后,实际图片内的相同位置出现一些其他的信息,可能会导致检查的失败。
c、 设置检查点时,选择的图片最好不要包括以下信息:
• 鼠标图标
• 高亮或未高亮的数据信息,比如在电话本界面点击一条信息后,此条信息会变亮
• 操作后会变化的文字信息,比如下拉框选项
2,根据自己的机器反应速度不同设置不同的等待时间。
等待时间的设置可以更高效和稳定的完成测试回放。比如:从主界面切换到电话本界面,等待时间设置为1秒或0.5秒就可以完成,而且不会出现下一个步骤已经执行,界面还未切换成功的问题。
总的来说,这个方法还是比较繁琐,不知道大家有没有更好的方法,能让QTP识别类似于WM模拟器这样的窗口?