JMeter

时间:2016-08-08 05:00:03

标签: jmeter load-testing beanshell

我有一种情况,我有2个循环,

1.Loop Controller (runs n times)
   2. While Controller (exits based on HTTP response below || after some time gap)
     3. HTTP Sampler

现在,我计划编写一个Beanshell Post处理器,以便解析HTTP结果并更新$ {TERMINATION_CONDITION}变量,该变量可用于While循环终止。

但是,我希望重置$ {TERMINATION_CONDITION},以便当最外面的循环(即循环控制器)第二次进入时,它允许重新执行内部While循环。

就我而言,由于$ {TERMINATION_CONDITION}没有正确更新,因此没有发生这种情况。

我的问题是:

  1. 如果我添加一个后处理器,后处理器什么时候执行    a)HTTP采样器作为父级    b)While Loop Controller作为父级    c)循环控制器作为父级

  2. 如何在内循环迭代后重置变量?

  3. 请帮我理解。提前谢谢!

1 个答案:

答案 0 :(得分:3)

  1. 关于执行顺序,您应该阅读this。如果你想使用Beanshell而不使用PostProcessor,你可以使用Beanshell Sampler。始终牢记JMeter遵循测试计划层次结构!
  2. 您可以通过几种不同的方式重置变量。最简单的一个可能是使用beanshell重新初始化它们。只需将一个Beanshell Sampler放在循环的末端,然后重置你想要的东西。
  3. E.g。

    vars.put("variable1", null);
    vars.put("variable2", "");
    // or what ever you want...