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

问题描述 投票:0回答:1

我有一个http请求,我需要在给定的时间框架内发送随机的时间值。

请求是这样的。http:/domainapi1?&mt=getEmp&punchTime=1590678744。

我已经预设了班次早晨: 9时至14时傍晚: 1400至1900人夜晚: 1900年至2300年我的期望是:在预定义的轮班时间段之间的随机时间值应该作为每个请求的打卡时间。

我不想把不同时间段的请求分开。

谁能帮我用JMeter实现这个功能?

datetime parameters jmeter performance-testing epoch
1个回答
0
投票

你可以在给定的范围内计算随机的时间戳,使用合适的 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:

enter image description here

你将能够访问生成的值为: ${randomMorningTime} 在需要的地方。

参见JavaDoc关于 公历(GregorianCalendar) 课堂了解更多信息

© www.soinside.com 2019 - 2024. All rights reserved.