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

时间:2019-09-17 12:51:16

标签: groovy jmeter

我的情况是经过每个不同的时间(间隔15分钟),直到每次运行采样器运行脚本为止。 我在同一步骤中使用预处理器和后处理器,现在我想在后处理器步骤中使用在后处理器步骤中更改的变量。 下面是代码和脚本的屏幕截图。

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

  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类可以使日期操作变得非常容易。此外,Groovy的Date类提供了format()函数,因此您可以在当前日期前增加15分钟,例如:

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

演示:

enter image description here

答案 1 :(得分:0)

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