51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1728|回复: 7
打印 上一主题 下一主题

[原创] 求助啊

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-7-28 22:52:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liang599176117 于 2011-7-28 22:55 编辑

我是一个测试新手,在自学QTP中,今天在编写QTP脚本时遇到一个问题,很纠结,不知道怎么来的,哪个高手帮我解答一下吧,小生真的感激不尽啊,我的测试内容如下,
测试脚本是:
Dim mainmenu,submenu,premenu
mainmenu=datatable.RawValue("Parameter1","Action1")         
submenu=datatable.RawValue("Parameter2","Action1")                 
datatable.SetPrevRow
premenu=datatable.RawValue("Parameter1","Action1")
datatable.SetNextRow
If premenu=mainmenu Then
   print   "创建子菜单:"&submenu
else
   print   "创建菜单:"&mainmenu
   print   "创建子菜单:"&submenu
End If
数据表结构是(数据表名为Action1):
Parameter1     Parameter2
菜单1                    菜单1-1
菜单1                    菜单1-2
菜单2                    菜单2-1
菜单2                    菜单2-2
菜单3                    菜单3-1
菜单3                    菜单3-2
为什么运行出来是:
创建菜单:菜单1
创建子菜单:菜单1-1
创建子菜单:子菜单1-2
创建菜单:菜单2
创建子菜单:2-1
让我很纠结的是,在第一次执行if判断语句时,premenu应该是等于mainmenu的啊,为什么调试的时候把断点设在premenu赋值语句后时结果premenu是等于“”的呢?还有我有一个疑问就是第一次执行datatable.SetPrevRow和datatable.GetPrevRow时获取的是哪个值啊?哪个大虾帮我解答一下疑惑吧,在此先谢过了啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-7-29 22:19:22 | 只看该作者
怎么没有人回答呢  哪个好心人  救救我吧
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    3#
    发表于 2011-7-30 22:31:06 | 只看该作者
    不加if  结果应该是这样的。 菜单1 --菜单1.1   --    菜单1--菜单1.2   你检查一下判读是不是有问题。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
    发表于 2011-7-30 22:31:18 | 只看该作者
    不加if  结果应该是这样的。 菜单1 --菜单1.1   --    菜单1--菜单1.2   你检查一下判读是不是有问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2011-8-2 22:32:18 | 只看该作者
    本帖最后由 liang599176117 于 2011-8-2 22:41 编辑

    回复 3# 17800455
    不好意思哦  这几天工作比较忙  没怎么来弄这个  
    首先感谢北极的雨好心来帮我解答    谢谢哦
    然后我刚刚又仔细执行了下     在第一次赋值时  执行到premenu=datatable.RawValue("Parameter1","Action1")之前的时候   premenu还是空的   执行完以后premenu的值成了菜单3耶  不知道这是为什么哦  而且第二次执行这个语句的时候premenu又等于mainmenu 了  datatable.SetNextRow语句获取的是哪个下一行的值呀   不懂啊    不知道北极的雨可不可以解释下这二句语句具体是怎么执行的噢   谢谢哦
    下面有我的具体调试图
            

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-8-3 15:26:05 | 只看该作者
    执行mainmenu=datatable.RawValue("Parameter1","Global")         
    submenu=datatable.RawValue("Parameter2","Global")         这两句脚本时,数据表都是在第一行,然后用了datatable.SetPrevRow将上一行设置为当前行,刚执行时上一行是不存在的,默认值为空白,执行结束时会重新读取的,从空白行的前一行读取,不知道有没有错解释
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2011-8-3 22:13:10 | 只看该作者
    回复 6# fengxinzi0151
    在premenu=datatable.RawValue("Parameter1","Action1")之前premenu是为空的这我还能理解,毕竟还没赋值吗 可是为什么执行完赋值语句以后premenu是等于“菜单3”的哦  难道datatable.SetNextRow获取上一行的值时默认为第一行的前一行就是表的最后一行   所以赋值成了菜单3了   不知道可不可以这样理解哦  请各位朋友给点意见吧  谢谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2011-8-3 22:37:09 | 只看该作者
    终于明白了  我刚刚验证了一下   确实datatable.SetNextRow获取前一行时  如果当前是第一行 那么获取前一行时是获取的数据表中的最后一行   好像数据表在QTP中是个循环的一样的   感谢6#给我的启示啊
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 17:36 , Processed in 0.070510 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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