51Testing软件测试论坛

标题: 参数化时有足够的参数,为什么还给报错说参数不够用呢? [打印本页]

作者: doubledegree    时间: 2010-10-20 15:57
标题: 参数化时有足够的参数,为什么还给报错说参数不够用呢?
是这样的,我的场景:模拟100个用户,用户登录放到vuser_init中,关键业务操作放到Action中,用户没有退出操作。
我就是想模拟这100个用户登录后不断在做关键业务操作。
用户参数化的时候,用户名取值方式:
select next row:Unique
Update value on:Each interation
when out of values:Abort Vuser

让这个场景运行20分钟,用户名参数化时有900个用户,如果按照我设置的场景,只有100个用户能登录系统,参数还剩下800个,在100个用户全部都加载上去之后,运行还不到20分钟的时候,开始报错:错误信息Error: Parameter 'UserName': No more unique values for this parameter in table 'Us.dat' [unique range is 1-8]. The Vuser is aborted according to "When Out Of Values" policy.
作者: 云层    时间: 2010-10-20 16:03
脚本跑一次不用多少时间,每个用户如果分9个的话,跑9次就用完了,
作者: skyzhu    时间: 2010-10-20 16:03
因为不够所以不够了
20分钟是100 vuser 一直在循环做的
才900个,每个vuser循环9次就满足了when out of values:Abort Vuser
当然挂掉了
作者: doubledegree    时间: 2010-10-20 16:08
skyzhu:你好,是在循环做,但是是这100个用户在循环做Action,而不是循环做登录,如果循环登录的话,那900个参数肯定不够啊。

我把用户登录放到init中了,只有100个用户登录上来了,然后这100个用户在循环做一个操作,在循环做Action的时候,就和登录没有关系了。用户的参数涉及不到呢。
作者: jj_ljw    时间: 2010-10-20 16:08
奇怪,放在init里面应该有100个数据就可以了,别的地方都设置正确吧
作者: doubledegree    时间: 2010-10-20 16:16
jj_ljw:你好,别的地方都设置正确,在跑压力的时候,除了报我设置的检查点没找到外,然后就是这个问题了。
作者: doubledegree    时间: 2010-10-20 16:19
是不是我没有退出造成的?我这些用户都不退出,否则我这些用户怎么退出呢?但是也不应该给我报错啊。
作者: skyzhu    时间: 2010-10-20 16:20
运行20分钟和 脚本action 迭代 不是一个概念
脚本如果运行结束,场景运行时间未到,会重新执行整个脚本
作者: jj_ljw    时间: 2010-10-20 16:24
回复 8# skyzhu


   那是不是有可能一次场景中init不只执行100次啊,可以这么理解吗
作者: mr.bee    时间: 2010-10-20 18:06
按照我的理解 你因该是希望得到unique+once的效果
作者: doubledegree    时间: 2010-10-21 15:57
mr.bee 版主你好:unique+once,是100个用户使用固定的参数,我只要有100个参数就够了,但是有一个问题:unique+Each iteration,所有vu按顺序取不同值,在循环结束后取下一个未被使用的值,我就模拟100个用户,都取不同的值才只用100个,这个用户登录又不是在action中,还要运行下一次循环,init在场景中只运行一次的,100对900个参数,那肯定是足够的,不应该给我报这个错误。
作者: doubledegree    时间: 2010-10-21 16:01
运行20分钟和 脚本action 迭代 不是一个概念
脚本如果运行结束,场景运行时间未到,会重新执行整个脚本
skyzhu 发表于 2010-10-20 16:20

脚本如果运行结束,场景运行时间未到,会重新执行整个脚本:这个说法是不对的,在设置的整个场景中,init只运行一次,end也只运行一次,只有action在不断的循环。如果你设置运行20分钟,那么一般运行时间都会超过这20分钟,因为要加载用户,和执行end。
作者: doubledegree    时间: 2010-10-21 16:03
回复  skyzhu


   那是不是有可能一次场景中init不只执行100次啊,可以这么理解吗
jj_ljw 发表于 2010-10-20 16:24


不能这么理解,我init中放的是登录,我模拟多少个用户,如果在运行时间内,我模拟的所有用户都执行完了,那么就将是登录了多少用户,肯定不会多余这个数据。
作者: skyzhu    时间: 2010-10-21 16:15
我说的整个是指所有的action,没包括init

版主已经告诉你问题了
Update value on:Each interation
你的值更新是根据interation来的,所以执行完一次会自动换新的

另外。。。只要是设置过的参数,不管在代码里有没有用到过,都会按规则去换参数,没了就出错
这个应该更接近你问的
作者: doubledegree    时间: 2010-10-21 16:28
我说的整个是指所有的action,没包括init

版主已经告诉你问题了
Update value on:Each interation
你 ...
skyzhu 发表于 2010-10-21 16:15

哦,那我明白了,我的username虽然没在action中,但是只要是设置过的参数,都会按照规则去更换参数值,这么说我就很清楚了,谢谢版主和skyzhu,还有各位帮助我的战友们。
作者: cjp110212    时间: 2010-10-23 16:38
因为不够,所以不够
作者: msnshow    时间: 2010-10-24 21:18
LR的这个问题,还真算是个BUG,当你用唯一时,即使真正运行的时候没有用到这个参数都一样会报参数不够
作者: caiw0418    时间: 2010-11-23 14:30
No more unique values for this parameter
一样的错误
学习了 .
但如果改成  unique  once呢




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