【问题标题】:Jmeter - loop an api based on a conditionJmeter - 根据条件循环 api
【发布时间】:2016-12-08 18:37:23
【问题描述】:

我是 jmeter 的新手。我想根据条件循环一个api。在 while 控制器中,我将脚本添加为 ${__javaScript("${response}"=="请稍候,正在处理您的订单。")}

我在这个控制器下添加了 http 请求采样器。我从这个请求中得到的响应是

{"resp":"请稍候,您的订单正在处理中。"}

我想点击这个 api,直到我得到这个值作为响应。

我使用了正则表达式提取器并将表达式提供为 "resp": "(.+?)" 。但我没有得到这个结果,我的循环正在持续运行。请帮忙

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    这可能是由于您的正则表达式中有额外的空间,请查看响应:

    {"resp":"Please, wait while your order is being processed."}
    

    分号和引号之间没有空格,并且在您的正则表达式中:

    "resp": "(.+?)"
           ^ here is the space character
    

    在处理 JSON 数据时,给定的正则表达式可能非常脆弱,我建议使用以下测试元素之一:

    在这两种情况下,相关的 JSON 路径查询将如下所示:

    $.resp 
    

    参考资料:

    【讨论】:

    • 谢谢.. 我使用了 JSON 路径提取器并得到了响应。但是即使条件失败,while循环仍然会持续运行
    • 您需要使用${__javaScript("${response}"=="Please\, wait while your order is being processed.")} 之类的反斜杠来转义逗号。有关在 JMeter 测试中实现“while”循环的更多详细信息,请参阅Using the While Controller in JMeter 文章
    猜你喜欢
    • 2018-02-08
    • 2017-12-13
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多