51Testing软件测试论坛

标题: 求助处理QTP点击出错 [打印本页]

作者: 鹭岛    时间: 2008-3-13 14:08
标题: 求助处理QTP点击出错
我在测试一个在线对话框
现在问题是当服务器等待话框人数达到一定程度(CPU持续在95%左右了),我使用QTP在客户端上,写入信息,然后点发送(重复执行此操作)

一个极大的问题是:虽然QTP脚本上写了点击“发送”这个控件,可经常运行持续10来分钟或者更久,几乎都会发生点错,也就是点到“发送”这个控件以外的控件了。
如何能除去这些点错控件的?请教高手(不能使用IF做判断,因为IF会耗很多的时候判断对话框是否存在,目前我们是为了与性能做对应操作的,所以不允许太多的等待时间)

SwfWindow("SwfWindow1").SwfTable("dgvChatingStatus").ClickCell abc,2'abc是个变量,由于等待用户很多,所以取其中一条数据,点击选种该数据
SwfWindow("SwfWindow1").SwfToolbar("tstMain").Press "开始对话"        '点击 《开始对话》按钮,会跳出一个对话框
SwfWindow("SwfWindow2").SwfEditor("tbxInput").object.text="aaa"     '这个是一个对话框,我往这个对话矿直接写如TEXT的值
SwfWindow("SwfWindow2").SwfObject("swfname:=panel2").SwfButton("regexpwndtitle:=发 送").WaitProperty "regexpwndtitle","发 送",1000000 '使用这个时间内是否出现发送这个控件,如果出现就直接点发送了,这个是因为当初会出现点错控件才写这个的,以为是由于速度太快控件还没出来,QTP才会点错控件。
SwfWindow("SwfWindow2").SwfObject("swfname:=panel2").SwfButton("regexpwndtitle:=发 送").Click  '这步就是会出错的地方了,持续一段时间后经常会点错控件,点到非“发送”控件上。

有没有办法判断是否点错,点错就点击错误对话框的“取消”,然后再点“发送”?
WaitProperty 这个方法能不能取得它所处理的真假值?
比如我使用0.1秒来判断是否点错的对话框出现了,不出现我就不执行操作,出现就执行取消?

出现错误后QTP执行指向点击“发送”那个

[ 本帖最后由 鹭岛 于 2008-3-13 14:15 编辑 ]
作者: higkoo    时间: 2008-3-14 09:12
标题: WaitProperty Method
可以尝试WaitProperty,程序太慢/不稳定,不适合用工具。
作者: 鹭岛    时间: 2008-3-14 15:25
程序不是慢,是快呀。。。。
就是运行这个过程也就只要2秒左右吧。。。
原本使用的是TYPE的输入,是键盘方式的输入,我修改成OBJECT了,直接附值属性后速度更快了,现在最关键的问题是QTP运行一段时间后(服务器端负载出现比较大的时候,而且有持续一段时间后)就会出现点错控件,也就是我明明写的是点“发送”  可QTP却将鼠标点击到其它控件上(而这些控件一点击就会出现一个BUTTON提示框的)
作者: walker1020    时间: 2008-3-14 23:51
点错了,是因为你的脚本没有达到预期的结果。还是考虑一下如何让 脚本不要点错吧
作者: 鹭岛    时间: 2008-3-17 12:36
原帖由 walker1020 于 2008-3-14 23:51 发表
点错了,是因为你的脚本没有达到预期的结果。还是考虑一下如何让 脚本不要点错吧

这个是一个NET的做的。
我尝试过,使用X,Y去定位这个控件,可我运行的时候竟然认不到这个控件,我都加了属性名的NAME值还有Y坐标了,可我单独使用NAME值就可以认到,Y坐标是不改变的,仅仅是指窗口的那个发送的Y坐标,就算移动窗口Y也不会改变,可惜就是定位不到

另外还有一个控件,我也使用属性去描述也一样不行,但使用录制就可以
作者: zht    时间: 2008-3-18 15:24
WaitProperty
作者: MarsNoNo    时间: 2008-3-19 17:34
真的,好像.net开发的东西就不是很好的支持QTP吧!
特别是一些UI上的元素,支持得很不好!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2