【问题标题】:JMeter Correlator + Interleave Controller reset on sampler error?JMeter Correlator + Interleave Controller 在采样器错误时重置?
【发布时间】:2012-05-10 13:56:18
【问题描述】:

我有一个结构如下的测试部分:

Test Part
-Correlator
--Debug Sampler
--Interleave Controller
---Page 1
---Page 2
----Response Assertion
---Page 3 (etc)
--Regular Expression Extractor
--Post Debug Sampler

当一切正常时,这一切正常,但我一直在添加断言以检查我收到的响应是否正确。线程组设置为在采样器失败时启动下一个循环。当第2页下的Response Assertion失败时,下一个循环开始,但是当它到达Interleave Controller时,它直接跳转到第3页,这导致了问题。

有没有办法在采样器故障时重置交错控制器状态?

谢谢

威利斯特曼

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    这是预期行为;交错控制器被设计成这样工作。从任何断言中得到什么结果都无关紧要,它仍然会移动到列表中的下一个采样器以进行下一个循环。像这样:

    Loop1 将执行第 1 页
    Loop2 将执行第 2 页
    Loop3 将执行第 3 页
    Loop4 将执行第 1 页
    Loop5 将执行第 2 页
    Loop6 将执行第 3 页
    Loop7 将执行第 1 页
    ...等等。

    据我所知,没有直接的方法可以重置交错控制器的位置。相反,JMeter 中有大量的逻辑控制器(If、While、For Each 等)以及计数器甚至 beanshell 逻辑,因此大多数事情都是可能的。

    【讨论】:

    • 我使用交错控制器的唯一原因是在每个页面请求后运行正则表达式提取器。这使我能够获得视图状态,因为它是我正在测试的 .net 系统。这似乎有点奇怪,但我可以通过在每个页面下放置一个正则表达式提取器来替换它......它看起来不太好,或者很容易维护......
    • 听起来你不需要使用交错控制器。我会简单地将正则表达式作为每个请求的子项,这更简单且更可预测。我通常以这种方式处理视图状态,或者更确切地说,我将正则表达式作为子项仅用于那些给我视图状态的请求,我稍后需要回发。
    • 我已经把它放回了一个更简单的布局,它确实有效。这就是我试图拥有一个漂亮的布局所得到的。能够让调试采样器自动包装每个请求非常有用。
    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多