51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4953|回复: 14
打印 上一主题 下一主题

[原创] QTP检查点脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-12 14:07:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一种代码:

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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-12 14:15:19 | 只看该作者
贴个图上来看看,呵呵
我原来也有这样的问题,后来解决了
不过我的是参数传递的时候类型变了,强制转换下就好了

你先价格TRIM、CSTR试下看看
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-12 16:17:17 | 只看该作者
这种问题,只要多放点断点,跟一下就知道了,没有走你预计的路线,那就肯定得到的值和你要比较的值还不能完全对上
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-5-12 16:53:10 | 只看该作者

补充贴图

不会贴图,看能否贴上去
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-12 17:12:46 | 只看该作者
同xiaonan的建议,设置端点,看flag的值,然后分析问题所在
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2015-4-20 22:32
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

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

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2008-5-13 09:45:26 | 只看该作者

    回复

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

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-5-13 09:58:26 | 只看该作者

    问题解决了!!

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

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2008-5-13 21:57:39 | 只看该作者
    这绝对不是 QTP 的 Bug。根据你后面的代码( flag=empty or flag=null )来看 ,你不应该使用 WinButton("确定")对象的Check 方法,而应该使用 WinButton("确定")对象的 GetROProperty 方法来得到此对象的某个属性值,然后以此为条件进行判断。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
    发表于 2008-5-13 22:00:07 | 只看该作者
    如果你对 QTP的检查点不是很了解,那么不要随便乱用它,更不要滥用它。功能再强大,如果你不会使用,那么对来说都是一种摆设。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2008-5-13 22:08:51 | 只看该作者
    原帖由 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。难道它还可能有第三种情况?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2008-5-15 11:16:12 | 只看该作者

    回复walker1020

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

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2008-5-15 14:00:19 | 只看该作者
    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 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    14#
    发表于 2008-5-16 00:14:49 | 只看该作者
    有意义的。你的点滴进步,对你来说,都非常有意义。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2008-5-16 10:12:39 | 只看该作者
    谢谢!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-20 19:48 , Processed in 0.099120 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表