You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JMeter中编写基于含毫秒时间函数的随机数生成函数?

嘿,这个需求我之前帮不少人解决过,在JMeter里利用带毫秒的时间函数生成随机数,其实有几种灵活的实现方式,我给你拆解一下:

方法1:结合__time()和__Random()生成带时间维度的随机数

如果你想要的是基于当前毫秒时间的“伪随机数”,可以把包含毫秒的时间戳作为__Random()函数的种子,这样每次生成的随机数会和当前时间强绑定,避免重复。

具体写法:

${__Random(100000,999999,${__time(SSS,)})}

这里的${__time(SSS,)}会获取当前时间的毫秒部分(000-999),把它作为__Random()的种子,生成100000到999999之间的随机数。如果需要更大范围的随机数,直接调整__Random()的前后边界值就行。

如果需要更“唯一”的随机标识,还可以直接把时间戳和随机数拼接:

${__time(yyyyMMddHHmmssSSS,)}-${__Random(1000,9999,)}

这样生成的字符串既包含精确到毫秒的时间,又带随机数,几乎不可能重复。

方法2:直接用时间戳的毫秒部分作为随机数(简单场景)

如果你的需求只是需要一个0-999之间的“随机数”,那直接取当前时间的毫秒值就够了,完全不需要额外的随机函数:

${__time(SSS,)}

它会返回当前时间的毫秒部分(000到999),因为时间一直在走,每次运行的值都不一样,完全可以当作随机数来用。如果需要更大范围,还可以组合其他时间部分,比如:

${__time(mmssSSS,)}

这个会返回分钟+秒+毫秒,范围是000000到595999,也是天然的“随机”值。

方法3:用__javaScript()函数自定义生成逻辑

如果上面的方法不够灵活,你可以用JMeter的__javaScript()函数直接写JS逻辑,结合时间戳和随机数:

${__javaScript((new Date()).getTime() + Math.floor(Math.random()*1000),)}

这里(new Date()).getTime()会获取到精确到毫秒的时间戳(13位数字),然后加上0-999的随机数,生成一个唯一的大数字。你也可以根据需求调整,比如只取时间戳的后几位加上随机数:

${__javaScript((new Date()).getTime()%100000 + Math.floor(Math.random()*1000),)}

小提示

  • 这些函数可以直接用在JMeter的任何支持函数的地方,比如HTTP请求的参数、用户定义的变量、取样器的名称等等。
  • 如果需要把生成的值保存下来供后续使用,记得给函数加变量名,比如${__time(SSS,myRandomMs)},之后就可以用${myRandomMs}调用这个值。

内容的提问来源于stack exchange,提问作者paul baboo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:43:16