google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

[求助] QTP检查点脚本

QTP检查点脚本


第一种代码:

Dim flag
flag= Browser("增加客户名称").Dialog("Microsoft Internet Explorer").WinButton("确定").Check( CheckPoint("确定"))
If flag=empty or flag=null Then '网页报错
     msgbox flag & "空"
elseif flag=false then  '检查不通过
     msgbox flag & "假"
elseif flag=true then  '检查通过
     msgbox flag & "真"
End If


第二种代码:
Dim flag
flag= Browser("增加客户名称").Dialog("Microsoft Internet Explorer").WinButton("确定").Check( CheckPoint("确定"))
If  flag=false then  '检查不通过     
     msgbox flag & "假"
elseif  flag=empty or flag=null Then '网页报错
     msgbox flag & "空"     
elseif flag=true then  '检查通过
     msgbox flag & "真"
End If


问题现象:无论是用第一种代码还是用第二种代码,当检查点不通过时,脚本都走第一个 if 后的语句,并且返回值 flag的值还是正确的。即:第一段代码弹出的对话框内容是:False空
        第二段代码弹出的对话框内容是:False假

这是为什么呀?应该都走 false条件后的语句呀?而为什么不按照预想的去执行呢?求大侠帮帮忙呀!困扰了我好久的问题了!

[ 本帖最后由 youdi2008 于 2008-5-12 14:11 编辑 ]

TOP

贴个图上来看看,呵呵
我原来也有这样的问题,后来解决了
不过我的是参数传递的时候类型变了,强制转换下就好了

你先价格TRIM、CSTR试下看看
向着QTP自动化方向深入发展
欢迎QTP研究者一起交流,相互进步

TOP

这种问题,只要多放点断点,跟一下就知道了,没有走你预计的路线,那就肯定得到的值和你要比较的值还不能完全对上

TOP

补充贴图


不会贴图,看能否贴上去

TOP

同xiaonan的建议,设置端点,看flag的值,然后分析问题所在

TOP

提出一些个人看法仅供参考啊~,首先你对"确定"按钮做了检查点,那么返回的值有几个?只有true和false两个吧,你后面写的那个页面为空什么的也是属于false的情况,因此你分3个分支实际上就是错误的.另外if语句不能够写成"if flag=true"这样的形式,因为系统会自动将检查的结果附给flag,因此对于QTP来讲flag本身实际就已经带着检查结果了,所以只需要写成if flag then(系统会执行true的语句)
.....
else(系统会执行flase的语句)
.....
end if
像浮云一样的神.........

TOP

回复


首先感谢各位的回答!
我觉得我的问题描述已经能反应出来 flag返回值到底是什么了,“第一段代码弹出的对话框内容是:False空;   第二段代码弹出的对话框内容是:False假”也就是两段代码 flag的返回值都是 False,与预想的一致,与比较的值false也一致。但却没有按照预想的流程去走。
另外,zyx324,我加三个分支是因为软件还有报错的情况,也就是软件有问题,网页报错,这样flag的值不是false,也不是true,我监测的值是null 或empty(qtp版本不同而不同好像)

TOP

问题解决了!!


zte_boy,我按照你的说法试了试。现在好了,果然是这个问题!太感谢你了!也感谢参与我问题的所有人!看来还是QTP的一个小bug呀。

TOP

这绝对不是 QTP 的 Bug。根据你后面的代码( flag=empty or flag=null )来看 ,你不应该使用 WinButton("确定")对象的Check 方法,而应该使用 WinButton("确定")对象的 GetROProperty 方法来得到此对象的某个属性值,然后以此为条件进行判断。
实践是检验真理的唯一标准。

TOP

如果你对 QTP的检查点不是很了解,那么不要随便乱用它,更不要滥用它。功能再强大,如果你不会使用,那么对来说都是一种摆设。
实践是检验真理的唯一标准。

TOP

引用:
原帖由 youdi2008 于 2008-5-13 09:45 发表
首先感谢各位的回答!
我觉得我的问题描述已经能反应出来 flag返回值到底是什么了,“第一段代码弹出的对话框内容是:False空;   第二段代码弹出的对话框内容是:False假”也就是两段代码 flag的返回值都是 False, ...
flag= Browser("增加客户名称").Dialog("Microsoft Internet Explorer").WinButton("确定").Check( CheckPoint("确定"))

flag的值 是QTP 对WinButton("确定")对象的检查结果,它的值要么是 True ,要么是 False。难道它还可能有第三种情况?
实践是检验真理的唯一标准。

TOP

回复walker1020


再次所有回答我问题的人!更感谢walker1020对我问题实质的指出!原来是我用的方式不对而导致。我刚接触测试不到半年,QTP确实一点经验也没有,对QTP只是初步了解阶段,敬问高人有没有学习QTP的好的快速的方法呀?有不错的书或者资料帮忙推荐一下,虽然知道它自带的英语帮助最好,但实在没有耐心和勇气看它,进展也慢。别人有什么建议也尽可以提,真的从心里非常感激和感谢大家的参与!

TOP

walker1020 ,我理解你的意思是应该写成这样的:

Dim flag
dim strwinbutton
flag=Browser("增加客户名称").Dialog("Microsoft Internet Explorer").Exist
If flag   Then
        strwinbutton=Browser("增加客户名称").Dialog("Microsoft Internet Explorer").WinButton("确定").GetProperty("text")
else '网页报错
        msgbox "网页报错"
End If
msgbox strwinbutton

我是想得到弹出对话框的内容,这怎么写代码呀?我这样写就没意义了吧?

[ 本帖最后由 youdi2008 于 2008-5-15 14:28 编辑 ]

TOP

有意义的。你的点滴进步,对你来说,都非常有意义。
实践是检验真理的唯一标准。

TOP

谢谢!

TOP

 
当前时区 GMT+8, 现在时间是 2008-7-24 20:06Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹