只要玩过QTP或者从事过自动化测试的人来说,都应该知道工具不是万能的,在实际测试中,由于应用系统的多样性,完全依靠录制回放方式,不可能全部适用,往往出现的问题就是正常录制完成,但是回放的时候错误不断,当然导致错误的原因有很多,有些情况可以改变QTP的设置解决问题,但是还有很多情况往往靠改变工具的设置是解决不了问题的,这就需要我们学会变通,巧妙地绕开问题,达到测试目的。中国农业银行个人网银系统的登陆密码输入就是很好的一个例子,有兴趣的朋友可以亲自试试,地址是:https://easyabc.95599.cn/SlfRegPer/netBank/zh_CN/entrance/**n.aspx。
当点击“登陆密码”输入框后,就会弹出一个密码键盘让你通过它输入密码,细心的朋友肯定会发现,每一次弹出的密码键盘,上面的数字排序是不一样的,也就是说这样的方式会导致我们QTP工具录制的脚本肯定不能回放,我们通过QTP的 Object spy工具可以知道这个密码键盘其实是张图片,图片上面显示着数字,大家可能会问既然是张图片为什么点数据所在的区域就能输入对应的数字呢,其实这个很简单写网页的人在数字所在区域加了map元素,当你点击数字区域时其实是点击在MAP对象上的(在QTP里会把MAP元素识别为WebArea对象)你点击了那个MAP元素,当然它就知道会产生什么数字了,但对于我们QTP工具来讲,不可能知道图片上那个区域对应那个数字,似乎这样看起来我们好像没法自动化了,其实不然,我们可以稍微变通一下,完全可以不用管这个密码键盘,我们照样可以输入密码,实现方法如下:
把密码输入框的对象添加到对象库后,直接调用对象的setAttribute方法就可以了
|