51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2352|回复: 12
打印 上一主题 下一主题

[原创] 参数化输入的实际例子设置

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-3 17:37:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谢谢哪位高手帮我解决一下下面的参数化输入的实际例子设置
   我希望在CONTROLLER中模拟的用户一条一条往下取数据 请问我该怎么设置

   附件里是我的设置

   实际中在CONTROLLER中我模拟了2个用户,但第二个用户并没有取第二行数据.还是取了第一行
   我想让每个用户依次取下一行数据,请问怎么改正?
   我用的是LR8.0


   


    谢谢!

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-8-3 21:09:06 | 只看该作者
没人回答 自己顶啊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-8-3 22:06:26 | 只看该作者
    打开参数列表,选择你要设置的参数,作如下的设置:
      select next row=unique
      update vaule on=each iteration
      allocate vuser values in the controller=allocate X valuesfor each vuser  X就是你要给每个vuser分配的参数的数量。

    详细的细节以及解释,可以浏览我的blog:
    http://www.51testing.com/?120561 ... ime_1188576000.html
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2007-8-4 22:10:30 | 只看该作者

    回复 #3 spartan 的帖子

    太谢谢了 我周一上班试试看 有问题再请教您
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-8-5 23:07:58 | 只看该作者
    看一下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2007-8-6 09:20:09 | 只看该作者

    回复 #3 spartan 的帖子

    还是要问回答我的那位大哥
    我用了FILE类型
    SELECT NEXT ROW: UNIQUE
    UPDATE VALUE ON: ITERATION
    WHEN OUT OF VALUES: continue in a cyclic manner

    这样设置 如果数据库记录只有10条 我模拟13个用户会出错吗
    如果会我怎么改正?
    谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2007-8-6 09:30:51 | 只看该作者
    原帖由 ryancheung 于 2007-8-6 09:20 发表
    还是要问回答我的那位大哥
    我用了FILE类型
    SELECT NEXT ROW: UNIQUE
    UPDATE VALUE ON: ITERATION
    WHEN OUT OF VALUES: continue in a cyclic manner

    这样设置 如果数据库记录只有10条 我模拟13个用 ...


    会出错的。 既然是13个用户的话,  在此设置下必须至少有13条纪录。否则的话, LR在CONTROLLER中运行的时候会有3个虚拟用户fail,因为这3个用户没有分配到参数。

    要解决这个问题的话, 
    第一:多准备一些参数给这13个虚拟用户,至少大于等于13条数据。
    第二:改变 SELECT NEXT ROW: sequence UPDATE VALUE ON: ITERATION。 但是这样的话每次循环的时候,这13个用户都取同样的值。

    所以针对解决的办法,还要看你实际的情况了。

    [ 本帖最后由 spartan 于 2007-8-6 09:32 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2007-8-6 11:43:06 | 只看该作者

    回复 #7 spartan 的帖子

    如果用您的第一种办法,只要数据不够还是没有办法做的咯?
    那WHEN OUT OF VALUES: continue in a cyclic manner我不是已经让他循环选择数据了吗?还是不能解决这个问题吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2007-8-6 17:30:50 | 只看该作者

    回复 #8 ryancheung 的帖子

    对的,只要数据不够就没有办法了。
    即使设置为WHEN OUT OF VALUES: continue in a cyclic manner,也不能解决问题的。 WHEN OUT OF VALUES: continue in a cyclic manner是指在每个用户分配到一定数量的参数后,在LR循环运行的时候, 当某个用户的参数不够的时候,LR会让这个用户一直循环使用分配给他自己的那几个值。

    举个例子:
    现有一参数,名为:emp_no, 有四个值: E01,E02,E03,E04
    现有一场景,三个虚拟用户,分别为:U1,U2,U3
    LR参数列表设置:unique + each iteration+ allocate 2 values for each vuser

    在场景运行的时候,
    1. LR会先做一件事情-参数分配,假设参数分配的方式是手工分配,allocate 2 values for each vuser.
        分配的结果是: U1-E01,E02;     U2-E03,E04;     U3-无参数;

    [备注:若选择了自动分配参数。那将遵循以下的原则:
    Controller中edit schedule中选择了run until comletion:按照循环次数先分配第一个VU(例如设置的循环次数为3,那分配给第一个VU 3个参数值),然后接下来的3个参数值分配给第二个VU,依次类推…...
    Controller中edit schedule中选择了run for:若选择自动分配,LR将按照用户数均分参数,剩余的参数不使用。]


    2. 在运行开始后,U3将会FAILED. 因为没有参数分配给他。其他的两个虚拟用户正常运行,但是其他的两个用户,每个用户只有两个参数,只能保证他们循环两次而已。
    当他们运行到第三个循环的时候,他们已经没有参数可以用了。 怎么办呢? 这个时候,LR将按照设置的WHEN OUT OF VALUES的值进行处理。我们拿虚拟用户U1来举例说明。

    如果when out of values=abort vuser, U1在第三次循环的时候将会退出执行。
    循环次数        虚拟用户        使用参数值        运行状态
    1        U1        E01        正常运行
    2        U1        E02        正常运行
    3        U1        /        退出运行

    如果when out of values=continue in a cyclic manner, U1在第三次循环的时候将会开始循环利用他的参数值E01, 第四次循环使用E02…….
    循环次数        虚拟用户        使用参数值        运行状态
    1        U1        E01        正常运行
    2        U1        E02        正常运行
    3        U1        E01        正常运行
    4        U1        E02        正常运行
    5        U1        ….        …..

    如果when out of values=continue with last value, U1在第三次循环的时候使用最后的一个参数即E02, 第四次继续使用E02…….
    循环次数        虚拟用户        使用参数值        运行状态
    1        U1        E01        正常运行
    2        U1        E02        正常运行
    3        U1        E02        正常运行
    4        U1        E02        正常运行
    5        U1        ….        …..

    [ 本帖最后由 spartan 于 2007-8-6 18:49 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2007-8-6 18:02:18 | 只看该作者

    Select next row 的几种选择:

    Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取。
    Random:在每次循环里随机的读取一个,但是在循环中一直保持不变。
    Unique :唯一的数。
    注意:使用该类型必须注意数据表有足够多的数。比如Controller中设定20个虚拟用户进行5次循环,那么编号为1 的虚拟用户取前5个数,编号为2的虚拟用户取6-10 的数,依次类推,这样数据表中至少要有100个数据否则Controller 运行过程中会返回一个错误。

    Same Line As 某个参数(比如Name):和前面定义的参数Name 取同行的记录。通常用在有关联性的数据上面。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-8-6 18:18:40 | 只看该作者

    回复 #10 小李美刀 的帖子

    写的不正确啊!
    比如说:Random:在每次循环里随机的读取一个,但是在循环中一直保持不变。 这个完全不正确的。 假如我设置update value on=each iteration的话,不同的iteration,  不同的用户也会随机取值的。并不是你说的,在后面的循环中保持参数值保持不变的。
    所以说:
    LR中参数的取值,除了和select next row设置有关系外,还跟update value on的设置有关系的。

    具体的参数表中select next row和update value on的设置对于LR取值的影响,请查看我的blog中的详细描述。
    http://www.51testing.com/?120561 ... e_itemid_17704.html

    [ 本帖最后由 spartan 于 2007-8-6 18:50 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2007-8-7 10:23:01 | 只看该作者
    问题解决了吗?如何解决的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2007-8-7 10:35:47 | 只看该作者
    谢谢大家的帮忙 我的问题解决了
    的确 数据库数据不够通过LR本身的设置肯定不能解决问题
    但大家的回答给了我一点启发
    我把每个参数对应的.DAT文件里的内容进行了复制粘贴
    这样.DAT里的数据就得到的扩充,实现了手动设置的循环
    但是数据库的数据没有增加
    谢谢大家的帮忙 :-)
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-16 08:29 , Processed in 0.081640 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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