JMeter中运行/回放时获取当前日期时间长整型(LONG)格式值的方法咨询
JMeter中运行/回放时获取当前日期时间长整型(LONG)格式值的方法咨询
嗨,我来帮你搞定这个问题!你需要的其实是获取当前时间的毫秒级时间戳(也就是你示例里那种Long格式的数值),在JMeter里有几种简单好用的实现方式,下面给你一步步说明:
方法一:直接使用JMeter内置函数最快上手
JMeter自带的__time()函数默认就会返回当前时间的毫秒级时间戳,完全符合你要的Long格式。如果你的SubmittedDate和_CreatedDate需要像示例那样差1毫秒,还可以搭配__timeShift()函数实现时间偏移:
- 对于
SubmittedDate,直接用${__time(,)}作为value值 - 对于
_CreatedDate,用${__timeShift(,,+1ms,,)}来生成比当前时间晚1毫秒的时间戳
把它们放到你的请求JSON体里就是这样:
"SubmittedDate":{"value":${__time(,)}}, "_CreatedDate":{"value":${__timeShift(,,+1ms,,)}}
运行或回放的时候,JMeter会自动把这些函数替换成实时的毫秒级时间戳,完美匹配你需要的格式。
方法二:用JSR223元件实现更灵活的控制
如果需要把时间戳存为变量方便后续复用,或者有更复杂的时间逻辑,可以给你的请求添加一个JSR223 PreProcessor,然后用Groovy代码(JMeter里性能最优的脚本语言)生成时间戳:
// 获取当前时间的毫秒级时间戳 long currentTime = System.currentTimeMillis(); // 把时间戳存入JMeter变量,方便后续引用 vars.put("submittedDate", String.valueOf(currentTime)); vars.put("createdDate", String.valueOf(currentTime + 1));
之后在请求的JSON体里直接引用这些变量就行:
"SubmittedDate":{"value":${submittedDate}}, "_CreatedDate":{"value":${createdDate}}
小提示
注意时间戳是数值类型,所以在JSON里引用的时候不要加引号,否则会被当成字符串处理,可能导致接口请求报错哦。
备注:内容来源于stack exchange,提问作者user41456
相关产品推荐
相关产品推荐

