[LR]Vuser如何在并发时每次获取不同的参数值

Vuser如何在并发时每次获取不同的参数值

场景

在压力测试的时候,我希望每次都获取不一样的值。lr参数化的时候有一个iteration number可以取迭代的值。那我设一个参数值类型为iteration number,那我能每次都取到不一样的值吗?

实验

Action()
{
    lr_output_message(">>>>>>>>>>>user:%s",lr_eval_string("{user_iter}"));  
    return 0;
}
  • Runtime setting 修改单用户迭代多次:打印出来每次取到递增值,似乎对了。
  • 建一个场景,并发执行该脚本:将Enable log打开,通过查看场景执行的记录日志,发现log下每个文件(对应每个并发用户)都会从该迭代数中从第1个值开始取,且每次迭代往上递增。发现与我的目标并不一致。

解决

参数类型中有一个Unique number类型,最终用该类型来解决。设置unique类型时,会划出一个上下限。
假设我要取一个8位数字符串,我预计执行场景时会迭代600次左右。于是我设置参数如下:
unique number设置
当我并发数100时,第1个用户就会从00000001开始取值,迭代时每次加1,而第2个用户会从00001001开始取值,迭代时每次加1。因为我预计迭代次在600左右,因此不会出现1个用户在迭代中间值不够用然后重复取值的情况。

结论

iteration number只针对一个并发用户来说,每次迭代取值会不同。如果想所有并发用户都取不同的值,iteration number就不适用。就可以从unique number中作文章。

当然还有其它方式,可以定义file类型或者table类型,甚至数据库中去取值,那样就要提前构造足够多可用的数据了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值