如何在 Jmeter 中使用后处理器设置变量值,并在同一采样器的预处理器中使用它?

How to set values of variable using postprocessor in Jmeter and use it in Preprocessor for same sampler?

我的方案是通过不同的时间(间隔 15 分钟)直到每个采样器 运行 的脚本 运行s。 我在同一步骤中使用预处理器和 post 处理器,现在我想使用在 post 处理器步骤中更改的变量,在侧面 post 处理器步骤中。 下面是代码和脚本的截图。

刚刚找到解决方案。我不需要在这里添加预处理器。相反,仅使用 jsr223 采样器就可以在 onceonly 控制器上正常工作。 预处理器正在此处重置开始时间和结束时间值。

  1. 根据JMeter Test Elements Execution Order PreProcessor 在 PostProcessor 之前执行,因此您无法在 PreProcessor 中访问在 PostProcessor 中设置的变量
  2. __timeShift() function 可以生成具有给定偏移量的给定格式的日期,例如,您可以将 15 分钟添加到当前时间,如下所示:

    ${__timeShift(yyyy-MM-dd'T'HH:mm:ss.SSS'Z',,PT15M,,)}
    
  3. 不需要在Groovy中使用这些SimpleDateFormat/Calendar,有TimeCategory class which makes dates manipulation very easy. Moreover, Groovy's Date class provides format()函数因此你可以在当前日期上加上15分钟,比如:

    use(groovy.time.TimeCategory) {
        15.minutes.from.now.format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
    }
    

演示: