如何在jmeter中为单个https请求设置不同的时间段

How to set different time slots for a single https requests in jmeter

我有一个 http 请求,我需要在给定时间范围内发送随机时间值

请求如下所示: http://domain/api1?&mt=getEmp&punchTime=1590678744

我已经预定义了班次 早上0900 到 1400 晚上1400 到 1900 晚上1900 到 2300 预期是:预定义轮班时间段之间的随机纪元时间值应作为每个请求的打卡时间。

我不想根据不同的时移将请求分开。

谁能帮我用 JMeter 实现这个目标?

您可以使用合适的JSR223 Test Element and Groovy language计算给定范围内的随机时间戳。

生成当天 9 点到 14 点之间的随机时间并将其存储到 randomMorningTime JMeter Variable 中的示例代码如下:

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)

演示:

您将能够在需要时以 ${randomMorningTime} 的形式访问生成的值。

有关详细信息,请参阅 GregorianCalendar class 上的 JavaDoc