【问题标题】:how to use jmeter functions in loop controller如何在循环控制器中使用jmeter函数
【发布时间】:2015-07-14 04:03:20
【问题描述】:

我的测试计划如下 !TestPlan ThreadGroup LoopController1 Sampler1 BeanShellPostProcessor Listener LoopController2 Sampler2

作为 Beanshellpostprocessor 的一部分,我将计数值放入变量中 props.put("noOfRecords",vars.get("msg_#"));

现在我将这个值作为 ${__P(noOfRecords,0)} 放在第二个循环控制器上

对于我们没有任何记录的迭代,此设置失败。所以在运行 Loop2 时会考虑之前的“${__P(noOfRecords,0)}”值。

还有其他方法可以实现动态循环计数器吗?

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:

    您可以使用循环控制器中的变量或属性在运行时更改循环计数。

    如果属性/变量在您的测试中被 Beanshell 后处理器正确设置,它应该可以工作。也就是说,当没有记录时,您需要将值显式设置为 0。否则属性(在您关闭 JMeter 之前不会被销毁)可能会使用之前的值。

    【讨论】:

    • 是的,这是正确的,我将 ${__P(noOfRecords,0)} 的默认值设置为 0,但仍会考虑以前的值。有什么方法可以重置每次迭代的值。即在 beanshell 后处理器开始时为 props 变量设置 0 并在其末尾更新值。尝试了这种方法,但是当我打印值时,它是旧的。
    • 你能上传你的 .jmx 文件吗?
    • 解决了。问题是,一旦后处理器执行完毕,道具值就会更新。因此,对于下一次迭代,该值将是旧的,直到我们再次将其设置为后处理器的一部分。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 2022-01-17
    • 2015-01-02
    相关资源
    最近更新 更多