in jmeter> bean shell预处理器我编写了代码来增加日期和我传递给http请求的日期变量。但是,虽然调试只有第一个日期是提取。增加日期不会传递给变量
Calendar cal = Calendar.getInstance();
for (int i = 0; i < 100; i++) {
cal.add(Calendar.SECOND, 1);
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd
kk:mm:ss"); //dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(cal.getTime());
vars.put("timer", strDate);
log.info("DATE" + strDate);
}
这个&#39;计时器&#39;变量没有递增到http请求&nbsp;&#39; n&#39;请求&#39;
答案 0 :(得分:0)
您的代码始终返回一个未来时间戳(比当前时间提前100秒)并将其保存到${timer}
变量中。
根据您要实现的目标,有以下几种选择:
将vars.put("timer", strDate);
行更改为vars.put("timer_" + i, strDate);
,这样您将获得以下变量:
timer_0=current time + 1 second
timer_1=current time + 2 seconds
...
timer_99=current time + 100 seconds
${timer}
变量100次另请注意,使用Beanshell并不是最好的脚本选项,根据JMeter Best Practices,您应该尽可能避免编写脚本。例如,特别是在您的情况下,您可以使用__time()和__longSum()函数组合实现相同的功能。查看Apache JMeter Functions - An Introduction以熟悉JMeter Functions概念。
如果您需要编写脚本,请考虑使用性能最高的语言Groovy(您可以使用JSR223 Test Elements)