【问题标题】:counter is not resetting at end of the each iteration of the loop controller in jmeter计数器在 jmeter 中循环控制器的每次迭代结束时未重置
【发布时间】:2019-10-24 11:43:17
【问题描述】:

我想在循环的每次迭代结束时重置我的计数器。我在我的脚本中实现了解决方案,就像在页面中一样 Jmeter - Loop counter in while loop not resetting on exit 但给定的解决方案对我不起作用。我正在使用apache jmeter 5.1.1 版本,我在JSR223 采样器中添加了以下代码,位于事务控制器内的while 控制器之外

def counter=vars.get("counter"); ${__groovy(vars.put('counter'\, '2'),)}

计数器

计数器值正在重置,但更新后的计数器值不携带到第二次迭代

logs: 2019-10-24 14:53:53,281 INFO o.a.j.p.j.s.J.JSR223 Sampler: counter value-----2

controller/trasaction controller/loop controller.. 时将 JSR223 采样器放置在外面,在所有方面它都给出相同的响应,如下所示

我需要结果

xrequest-1 

xrequest-2 

xrequest-3 

xrequest-4 

xrequest-5 

xrequest-6 

xrequest-7 

xrequest-8 . . . 

yrequest-1 

yrequest-2 

yrequest-3 

yrequest-4 

yrequest-5 

yrequest-6 . . .

如果我遗漏了什么,请帮助我。

【问题讨论】:

    标签: while-loop jmeter counter


    【解决方案1】:

    你甚至不需要任何计数器。

    由于JMeter 5.0 While Controller 暴露了一个特殊的JMeter Variable,它看起来像:

    ${__jm__While Controller__idx}
    

    其中While Controller 需要匹配While Controller 标签。

    因此,如果您需要计算迭代次数 - 您只需引用此变量即可。它是从零开始的,也就是说,第一次迭代时的值将是 0,如果您需要迭代编号以 1 开头 - 请选择 __intSum() function,例如:

    ${__intSum(${__jm__While Controller__idx},1,)}
    

    演示:

    【讨论】:

    • 非常感谢。它非常适合我的脚本
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2011-05-03
    • 2017-01-15
    • 1970-01-01
    相关资源
    最近更新 更多