51Testing软件测试论坛

标题: 参数化的问题!(急)(已解决) [打印本页]

作者: alfa_23    时间: 2007-5-18 10:39
标题: 参数化的问题!(急)(已解决)
我参数化一个登陆操作,USRE和PASSWORD,里面每列参数值都有5个,然后我虚拟5用户操作,报错说insufficient records for param 'User' in table to provide the Vuser with unique data,意思就说我的参数值不够,怎么可能呢,我有5个参数值,而且就5个用户,而且每个用户只有一个iteration.我查了论坛上很多帖子,但是还没得到有效的解决方法.请高人指教!

[ 本帖最后由 alfa_23 于 2007-5-18 12:58 编辑 ]
作者: alfa_23    时间: 2007-5-18 10:53
自己顶
作者: rickyzhu    时间: 2007-5-18 10:56
你迭代几次?

参数策略设置有问题,你是每次迭代就更新吧,所以会出现这种情况。
作者: alfa_23    时间: 2007-5-18 11:03
迭代一次啊,这时参数化截图
作者: alfa_23    时间: 2007-5-18 11:11
版主,帮忙看看,在线等哈!谢谢
作者: just_cici    时间: 2007-5-18 11:25
你的参数化设置不对,用的是By number,当然只取第一个值啦
作者: yuanlj    时间: 2007-5-18 11:34
你是在Virtuel里面设置的还是在controller里面设置的?运行脚本用的是哪个?
会不会是因为你在virtuel里面设置了,而在controller里面运行的?
作者: yuanlj    时间: 2007-5-18 11:35
by number是第一列呀,又不是第一行
作者: alfa_23    时间: 2007-5-18 11:42
原帖由 yuanlj 于 2007-5-18 11:34 发表
你是在Virtuel里面设置的还是在controller里面设置的?运行脚本用的是哪个?
会不会是因为你在virtuel里面设置了,而在controller里面运行的?


参数化的只能在virtuel里面设置,模拟几个用户不是只能在controller里面运行吗?!!
Run- Time setting 到是可以在virtuel和controller设置的,而且我里面设置的迭代次数都是1
作者: alfa_23    时间: 2007-5-18 11:44
原帖由 just_cici 于 2007-5-18 11:25 发表
你的参数化设置不对,用的是By number,当然只取第一个值啦

by number 是选择列,应该这个设置没错把!
作者: alfa_23    时间: 2007-5-18 12:02
急.....啊.........
作者: yuanlj    时间: 2007-5-18 12:03
把那个select next row 的值换一下,如采用Sequential ,不用Unique,行不行?另外按照你先前的设置在少于5个用户,比如说4个用户,1个用户时,是否可以运行成功?
作者: tequila    时间: 2007-5-18 12:06
其实是block size的问题,你看最下面的选项,不要选择自动分配block size,选择为每个用户分配1个值试试,应该没问题的
作者: alfa_23    时间: 2007-5-18 12:07
我试过了.1个用户的时候可以成功,两个就不行了
如采用Sequential ,不用Unique的话,执行的时候会不会一个个按顺序去取参数啊?
作者: tequila    时间: 2007-5-18 12:22
如采用Sequential的话,每个vuser都会取第一个值,如果你想用不同的用户的话,只能选Unique
还是改block size的设置吧
作者: alfa_23    时间: 2007-5-18 12:28
block size值的设置依据甚么? 几个用户我就设置为几(我现在5个虚拟用户,我的值就设置成5?)
作者: just_cici    时间: 2007-5-18 12:31
By number是按编号,不是按列
如果是按列,那和By Name有什么区别(即你为你的参数取的名User/PassWd),那是按列啊
你先试试
作者: tequila    时间: 2007-5-18 12:42
block size就是为每个vuser保留的参数的个数,像你5个vuser,5个数据,那block size就只能设成1
如果你有500个参数,1-100给第一个vuser,101-200给第二个vuser。。。。。。,那个就设成100

[ 本帖最后由 tequila 于 2007-5-18 12:48 编辑 ]
作者: tequila    时间: 2007-5-18 12:45
原帖由 just_cici 于 2007-5-18 12:31 发表
By number是按编号,不是按列
如果是按列,那和By Name有什么区别(即你为你的参数取的名User/PassWd),那是按列啊
你先试试


你的理解是有问题的,by Number就是按列选取,跟By Name只是不同的方式,效果是一样的
作者: alfa_23    时间: 2007-5-18 12:57
我把block size值设置成1,然后运行就可以了!
非常感谢大家的帮助, 特别感谢tequila,谢谢!
作者: tequila    时间: 2007-5-18 13:10
呵呵,不用客气
作者: yuanlj    时间: 2007-5-18 13:29
还是tequila 说得对,只是我有点不明白,配置为自动时为什么会出错呢?
作者: just_cici    时间: 2007-5-18 13:59
原帖由 tequila 于 2007-5-18 12:45 发表


你的理解是有问题的,by Number就是按列选取,跟By Name只是不同的方式,效果是一样的


啊,原来这样啊,我原来都理解错了......太菜了,惭愧!
作者: dee    时间: 2007-5-18 17:07
原来如此~
作者: reniaL    时间: 2007-5-18 20:20
虽然在脚本里面指定了迭代1次,但在用controller模拟并发的时候,实际的迭代次数是由你的运行时间决定的,一般都不只1次,在controller运行完之后查看VU,可以知道每个VU真正的迭代次数~

如果想要每个VU指定一个参数的话,“Update value on”应该选“Once”吧~
作者: tequila    时间: 2007-5-18 21:06
原帖由 yuanlj 于 2007-5-18 13:29 发表
还是tequila 说得对,只是我有点不明白,配置为自动时为什么会出错呢?


配置为自动时,block size默认有一个最小值,好像是5,具体值记不太清了。这时5个vuser最少需要25个参数,这就是为什么一个vuser能通过,但两个就不行了。
作者: alfa_23    时间: 2007-5-19 12:51
原来如此,明白了
作者: bingbingyang11    时间: 2007-5-22 16:56
学习了
作者: silvertree    时间: 2007-5-22 18:24
晕,我用LR自带的MECRURYTOUR例子试了一把,设置一切按照楼主的,BLOCK SIZE选择自动或设为1,居然都没问题。
作者: zys3497    时间: 2007-5-23 00:21
标题: 鼓励
我刚学会用LR录制脚本,要学习的路还很长啊
作者: threel80    时间: 2007-5-23 15:25
问题解决了吗?参数设置的'when out of values'选择'continue in a cyclic manner'试试




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