【问题标题】:jmeter is not running script in the order it is writtenjmeter 没有按照编写的顺序运行脚本
【发布时间】:2020-12-11 15:55:23
【问题描述】:

在 jmeter 中,我使用嵌套循环控制器,以及每个循环内的一些 JSR223 后处理器

这是脚本的编写顺序:

Loop Controller
    Loop Controller
        http request
    Endloop
    JSR223 postprocessor
Endloop

我希望脚本首先运行 http 请求(多次),然后在循环完成后,运行 JSR223 后处理器,然后重复所有这些。

相反,它进入第一个循环控制器,然后运行 ​​JSR223 后处理器,然后运行第二个嵌套循环控制器。

为什么?如何让它按照从上到下和嵌套的顺序运行脚本?

【问题讨论】:

    标签: jmeter nested-loops


    【解决方案1】:

    从为 scope 中的每个请求执行的后处理器更改为执行一次的采样器

    测试树中的一些元素是严格分层的(Listeners、Config Elements、Post-Processors、Pre-Processors、Assertions、Timers),还有一些主要是有序的(controllers、samplers)。

    另一种选择是将它添加到采样器下,它将在采样器之后执行它

    【讨论】:

    • 非常感谢您的回答!那是我的问题。我正在使用后处理器,想是因为我希望它在(后部分)上一个请求之后运行,而我应该使用采样器。我一切换它,它就修复了我的脚本流程!!!
    【解决方案2】:

    JSR223 PostProcessor 在其Scope 中的每个Sampler 之后执行,在您的情况下,在HTTP 请求采样器的每次迭代之后。

    如果您只想运行一次 - 将 Flow Control Action 采样器放在 JSR223 PostProcessor 的位置,并使 JSR223 PostProcessor 成为 Flow Control Action 采样器的子代

    否则,如果您不希望 JSR223 采样器出现在测试结果中,您可以使用 JSR223 Sampler 代替 JSR223 后处理器 - 将 SampleResult.setIgnore() 函数放在脚本中的某个位置。

    【讨论】:

    • 谢谢迪米特里!我将我的 JSR223 后处理器切换到 JSR223 采样器,这修复了我的脚本!
    猜你喜欢
    • 2022-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多