Jmeter中通过${}形式来取参数值
当取值为变量,${变量名}
当取值为函数,${_函数名(参数1,参数2,参数3)}
jmeter性能工具可以生成随机数参数。
1.打开Jmeter,点击“参数设置”按钮。
2.直接把函数贴到参数设置里。
Random:随机数字
Random使用方式:${__Random( param1,param2 ,param3 )}
param1为随机数的下限
param2为随机数的上限
param3为存储随机数的变量名,是选填项。
Random是会重复的。
如果要求不需要是数字,可以用UUID函数,这个是不会重复的。
函数UUID自动生成随机数:UUID使用方式:${__UUID}
还可以用以下方法生成随机13位数字,重复率更低:
"referenceId": "${__time(,)}${__Random(1,20000)}",
输出是: "referenceId": "15880808844421424", (时间戳+随机数)
如果是CSV文件的方法,
右击添加-配置原件- CSV Data Set Config
以截图为例,在于jmx文件同一路径下创建一个名为config的csv文件,打开输入经纬度参数值。
再在jmeter设置参数的时候,填入${latitude} ...
————————————————
jmeter生成随机年月日时分秒
上述随机函数里还有个 _randomdate函数,可以随机生成startdate---enddate中的随机一天。
但是只能yyyy-MM-dd.
如何随机生成时分秒?
可以用time函数生成此刻的时分秒:
${__time(HH:mm:ss,)},但是若同一秒并发10个的话,获取的时间不是唯一的,10个请求时间全是16:45分,证明这样还是无法满足需求,那么time函数中的时分秒可以用random函数来替代吗?
下面我们将time函数中的时分秒用随机数来代替,看看能否生成不一样的数据:
${__time(${__Random(0,24,)}:mm:ss,)},实时证明,这样也不行,并发10个请求循环一次情况下,生成的时间是相同的,只有下一次循环,会生成不一样的数据。
那么怎么让10个请求循环一次的情况下,生成的时间不一致呢?
既然time函数可以随机生成所定义的年月日时分秒,那可以将时间从time函数拿出来,用random或者计数器来实现。
试试如下:
${__Random(0,24,)}:${__time(mm:ss,)},这样就可以生成10个不同的小时了,但是random函数很容易生成相同的数据,同一秒内60并发的情况下,很容易生成相同的数据,数据不是均匀分散的,故为了均匀分散,可以将random函数改为计数器,但是这样并发数最好小于60,大于60 的情况下,时间有可能出现相同的,如下:
${id}:${__time(mm:ss,)}
随机生成时分秒:
此处若对唯一性要求不高的话,可以使用如下函数:
${__RandomDate(,,2029-09-13,,)} ${__Random(0,24,)}:${__Random(01,59,)}:${__Random(01,59,)}
也可以使用以下函数:
${__RandomDate(,,2029-09-13,,)} ${id}:${__time(mm:ss,)} //id为定义的计数器
————————————————
版权声明:本文为CSDN博主「Bonjour-S」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hello_world_zhao/article/details/101066204