求助啊
本帖最后由 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时获取的是哪个值啊?哪个大虾帮我解答一下疑惑吧,在此先谢过了啊 怎么没有人回答呢哪个好心人救救我吧:'( 不加if结果应该是这样的。 菜单1 --菜单1.1 -- 菜单1--菜单1.2 你检查一下判读是不是有问题。 不加if结果应该是这样的。 菜单1 --菜单1.1 -- 菜单1--菜单1.2 你检查一下判读是不是有问题。 本帖最后由 liang599176117 于 2011-8-2 22:41 编辑
回复 3# 17800455
不好意思哦这几天工作比较忙没怎么来弄这个
首先感谢北极的雨好心来帮我解答 谢谢哦
然后我刚刚又仔细执行了下 在第一次赋值时执行到premenu=datatable.RawValue("Parameter1","Action1")之前的时候 premenu还是空的 执行完以后premenu的值成了菜单3耶不知道这是为什么哦而且第二次执行这个语句的时候premenu又等于mainmenu 了datatable.SetNextRow语句获取的是哪个下一行的值呀 不懂啊 不知道北极的雨可不可以解释下这二句语句具体是怎么执行的噢 谢谢哦
下面有我的具体调试图
执行mainmenu=datatable.RawValue("Parameter1","Global")
submenu=datatable.RawValue("Parameter2","Global") 这两句脚本时,数据表都是在第一行,然后用了datatable.SetPrevRow将上一行设置为当前行,刚执行时上一行是不存在的,默认值为空白,执行结束时会重新读取的,从空白行的前一行读取,不知道有没有错解释 回复 6# fengxinzi0151
在premenu=datatable.RawValue("Parameter1","Action1")之前premenu是为空的这我还能理解,毕竟还没赋值吗 可是为什么执行完赋值语句以后premenu是等于“菜单3”的哦难道datatable.SetNextRow获取上一行的值时默认为第一行的前一行就是表的最后一行 所以赋值成了菜单3了 不知道可不可以这样理解哦请各位朋友给点意见吧谢谢了 终于明白了我刚刚验证了一下 确实datatable.SetNextRow获取前一行时如果当前是第一行 那么获取前一行时是获取的数据表中的最后一行 好像数据表在QTP中是个循环的一样的 感谢6#给我的启示啊:handshake
页:
[1]