有 __timeShift() 函数,它可以生成具有给定偏移量的给定格式的日期,例如,您可以在当前时间上添加 15 分钟,简单如下:
${__timeShift(yyyy-MM-dd'T'HH:mm:ss.SSS'Z',,PT15M,,)}
Groovy 中不需要使用这些 SimpleDateFormat/Calendar,有 TimeCategory 类使得日期操作变得非常容易。此外,Groovy 的 Date 类提供了 format() 函数,因此您可以在当前日期上添加 15 分钟,例如:
use(groovy.time.TimeCategory) {
15.minutes.from.now.format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
}
演示:
刚刚找到解决方案。我不需要在这里添加预处理器。相反,仅使用 jsr223 采样器就可以与 Onceonly 控制器一起正常工作。 预处理器正在此处重置开始时间和结束时间值。
就像上面提到的 vars.put("","") 从后期到预处理器都不起作用。有一种方法可以使用 BeanShell 使用 Jmeter 中的属性将值从后置处理器发送到预处理器
后期处理内部
props.put("property_name", extractedValue);
在预处理器中
String value = props.getProperty("pageNumber");
if (value != null) {
vars.put("my_variable", String.valueOf(retrievedValue));
}