Jmeter如何生成随机浮点数及性能探究

前言

最近工作中进行的性能测试,需要在Jmeter中生成随机浮点数,但是发现Jmeter自带的函数助手不能直接生成小数类型的随机数。通过多方查找,在此整理了四种生成随机浮点数的方法,并对其性能进行了初步探究,记录如下

注:下文举例使用的随机数区间为0-10

一、使用CSV生成随机小数

Jmeter自带的CSV工具是不支持随机取值的。通过引入外部jar包jmeter-plugins-manager-1.3.jar来获得随机CSV插件:
在这里插入图片描述
在这里插入图片描述
字段解释:
1.文件名: csv文件的路径,最好选择绝对路径;对于分布式测试,必须将CSV文件存储在服务器主机系统上与JMeter服务器启动所在的正确相对目录中
2.文件编码: 此CSV文件的编码,用于读取此文件的编码
3.分隔符:默认逗号
4.变量名称: 引用csv配置文件中的数据时,要指定变量名;
5.random order
随机顺序:选中则会随机顺序从文件中读取数据,如果不选择,则和常规的CSV数据集配置-样工作。
6. Rewind on end of list
遇到文件结束符再次循环:在一个测试循环完成后, Jmeter再运行一个,这对于检查一段时间内的性能非常有用,当选择随机顺序时 ,第二次和后续的每一次重新循环都会以不同顺序读取CSV数据集中的数据。
如果选择了该标志并且迭代循环已经结束,则将开始新的循环。
7.First line is CSV head
第一行是CSV标题: 如果指定了“变量名称” , 并且想要跳过文件中的第一行,请选中此复选框;如果第一行是定义了变量名称,那么此项勾选!
选择此标志以跳过标题(仅在Variable Names不为空时使用)
8.Independent list per thread
使用"随机顺序"进行检查时,每个线程均以随机顺序运行自己的CSV值副本。如果未选中,则所有线程将遍历相同的随机值列表。
9.测试/test读取CV文件: 在真正使用之前,可以先测试下读取数据的规则,以供后续正确使用。

制作CSV文件:
在这里插入图片描述在这里插入图片描述
测试是否能够生成所需要的的随机数:
在这里插入图片描述

二、使用随机变量生成随机数生成随机小数

Jmeter自带的随机变量元件,可以生成随机数,将两个元件组合使用,即可生成随机浮点数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试是否能够生成所需要的的随机数:
在这里插入图片描述
注:本方法生成的随机数仅限于0-9.99之间,且不会自动去零(展示为0.00,1.10)

三、引用Math.random函数生成随机数

使用如下语句引入函数并赋值给变量:
vars.put(“float”,"${__javaScript((Math.random() * (10)).toFixed(2) * 1,)}");
在这里插入图片描述

测试是否能够生成所需要的的随机数:
在这里插入图片描述

四、使用函数助手Random函数生成随机小数

单个函数助手只能生成随机整数,将三个函数拼接起来即可生成两位小数的随机浮点数:
在这里插入图片描述

测试是否能够生成所需要的随机数:
在这里插入图片描述
注:本方法生成的随机数仅限于0-9.99之间,且不会自动去零(展示为0.00,1.10)

性能探究

下面对以上四种随机浮点数生成方法对压测机的性能负载做了初步的测试

测试方案如下:
选定某种随机数生成方法,设置100并发线程无限循环,持续10秒,重复三次得到大致的CPU使用情况

  1. 使用CSV生成随机小数:
    在这里插入图片描述
  2. 使用随机变量生成随机数生成随机小数:
    在这里插入图片描述
  3. 引用Math.random函数生成随机数:
    在这里插入图片描述
  4. 使用函数助手Random函数生成随机数:
    在这里插入图片描述

总结

根据以上四种方法的随机数生成情况和性能指标,我整理了如下的结论表格:

生成方法优点性能占比缺点
使用Random CSV元件可以涵盖所有随机数,性能损耗小约占用CPU50%需要设置大量随机数时极其繁琐,且不好维护变更
使用随机变量使用Jmeter自带元件,设置简便,性能损耗小约占用CPU50%以0-10为例,无法取到10,且无法去零,覆盖范围不完全
引用Math.random函数取值精确,易于变更维护约占用CPU100%性能损耗极大,不适合高并发压测使用
使用函数助手Random函数使用Jmeter自带元件,设置简便,性能损耗小约占用CPU60%以0-10为例,无法取到10,且无法去零,覆盖范围不完全

以上方法为个人收集整理,如有不足之处欢迎指正探讨。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值