我有一个http请求,我需要在给定的时间框架内发送随机的时间值。
请求是这样的。http:/domainapi1?&mt=getEmp&punchTime=1590678744。
我已经预设了班次早晨: 9时至14时傍晚: 1400至1900人夜晚: 1900年至2300年我的期望是:在预定义的轮班时间段之间的随机时间值应该作为每个请求的打卡时间。
我不想把不同时间段的请求分开。
谁能帮我用JMeter实现这个功能?
你可以在给定的范围内计算随机的时间戳,使用合适的 JSR223测试元件 和 Groovy语言.
示例代码,它产生当前一天的9和14小时之间的随机时间,并将其存储到。randomMorningTime
JMeter变量 会是这样的。
def calendar = Calendar.getInstance()
def morningStart = new GregorianCalendar(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 9, 00).getTimeInMillis()
def morningEnd = new GregorianCalendar(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 14, 00).getTimeInMillis()
def randomMorningTime = org.apache.commons.lang3.RandomUtils.nextLong(morningStart, morningEnd)
def timestamp = ( randomMorningTime / 1000).round() as String
log.info('Random morning time for current day: ' + new Date(randomMorningTime))
log.info('Associated timestamp: ' + timestamp)
vars.put('randomMorningTime', timestamp)
Demo:
你将能够访问生成的值为: ${randomMorningTime}
在需要的地方。
参见JavaDoc关于 公历(GregorianCalendar) 课堂了解更多信息