51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4550|回复: 17
打印 上一主题 下一主题

[原创] 参数化时有足够的参数,为什么还给报错说参数不够用呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-10-20 15:57:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是这样的,我的场景:模拟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.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-10-20 16:03:37 | 只看该作者
脚本跑一次不用多少时间,每个用户如果分9个的话,跑9次就用完了,
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-10-20 16:03:58 | 只看该作者
因为不够所以不够了
20分钟是100 vuser 一直在循环做的
才900个,每个vuser循环9次就满足了when out of values:Abort Vuser
当然挂掉了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-10-20 16:08:12 | 只看该作者
skyzhu:你好,是在循环做,但是是这100个用户在循环做Action,而不是循环做登录,如果循环登录的话,那900个参数肯定不够啊。

我把用户登录放到init中了,只有100个用户登录上来了,然后这100个用户在循环做一个操作,在循环做Action的时候,就和登录没有关系了。用户的参数涉及不到呢。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-10-20 16:08:49 | 只看该作者
奇怪,放在init里面应该有100个数据就可以了,别的地方都设置正确吧
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-10-20 16:16:19 | 只看该作者
jj_ljw:你好,别的地方都设置正确,在跑压力的时候,除了报我设置的检查点没找到外,然后就是这个问题了。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-10-20 16:19:37 | 只看该作者
是不是我没有退出造成的?我这些用户都不退出,否则我这些用户怎么退出呢?但是也不应该给我报错啊。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-10-20 16:20:47 | 只看该作者
运行20分钟和 脚本action 迭代 不是一个概念
脚本如果运行结束,场景运行时间未到,会重新执行整个脚本
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-10-20 16:24:49 | 只看该作者
回复 8# skyzhu


   那是不是有可能一次场景中init不只执行100次啊,可以这么理解吗
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-10-20 18:06:20 | 只看该作者
按照我的理解 你因该是希望得到unique+once的效果
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2010-10-21 15:57:33 | 只看该作者
mr.bee 版主你好:unique+once,是100个用户使用固定的参数,我只要有100个参数就够了,但是有一个问题:unique+Each iteration,所有vu按顺序取不同值,在循环结束后取下一个未被使用的值,我就模拟100个用户,都取不同的值才只用100个,这个用户登录又不是在action中,还要运行下一次循环,init在场景中只运行一次的,100对900个参数,那肯定是足够的,不应该给我报这个错误。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2010-10-21 16:01:05 | 只看该作者
运行20分钟和 脚本action 迭代 不是一个概念
脚本如果运行结束,场景运行时间未到,会重新执行整个脚本
skyzhu 发表于 2010-10-20 16:20

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

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2010-10-21 16:03:37 | 只看该作者
回复  skyzhu


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


不能这么理解,我init中放的是登录,我模拟多少个用户,如果在运行时间内,我模拟的所有用户都执行完了,那么就将是登录了多少用户,肯定不会多余这个数据。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2010-10-21 16:15:19 | 只看该作者
我说的整个是指所有的action,没包括init

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

另外。。。只要是设置过的参数,不管在代码里有没有用到过,都会按规则去换参数,没了就出错
这个应该更接近你问的
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2010-10-21 16:28:12 | 只看该作者
我说的整个是指所有的action,没包括init

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

哦,那我明白了,我的username虽然没在action中,但是只要是设置过的参数,都会按照规则去更换参数值,这么说我就很清楚了,谢谢版主和skyzhu,还有各位帮助我的战友们。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2010-10-23 16:38:24 | 只看该作者
因为不够,所以不够
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    17#
    发表于 2010-10-24 21:18:56 | 只看该作者
    LR的这个问题,还真算是个BUG,当你用唯一时,即使真正运行的时候没有用到这个参数都一样会报参数不够
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-11-23 14:30:43 | 只看该作者
    No more unique values for this parameter
    一样的错误
    学习了 .
    但如果改成  unique  once呢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 18:32 , Processed in 0.090060 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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