【问题标题】:JMeter check if status is 200JMeter检查状态是否为200
【发布时间】:2018-02-15 09:40:40
【问题描述】:

在我的测试计划中,我有 2 个端点 bidwin。如果bid端点返回状态200(它也可以返回204,但我只需要200所以我不能使用${JMeterThread.last_sample_ok})我需要运行win端点。 我做到了:

  1. 创建定义变量STATUS_OK

  2. bid请求下创建正则表达式提取器以获取响应码

  3. 添加If controller并在该控制器下插入win请求

但是if controller 条件不起作用,Jmeter 永远不会运行win 请求。

知道为什么它不起作用吗?或者也许我可以调试它?如果有任何帮助,我将不胜感激!!!

更新包括测试计划结构:

  • 出价请求 - 是每个出价请求的随机 json 的 CSV 数据集配置(就像提到的 here
  • 线程 - 这是一个有 200 个用户和 1 个循环的线程
  • bid - 发布请求,对于正文,我使用的是 json 文件之一 ${__FileToString(/home/user/Downloads/jmeter/jsons/${__eval(${JSON_FILE})}.txt,,)}bid 请求还包括货币、bidid 等。它是 Json 提取器,我正在使用该数据生成正确的 win URL 每个出价
  • 如果出价 - 如果此处讨论了控制人
  • win - 获取请求,其中 URL 查询不同取决于 bid 响应(使用 Json 提取器)。网址看起来像: win?auctionId=${AUCTIONID}&bidId=${BIDID}&impId=${IMPRESSIONID}&seatId=${SEAT}&price=${__javaScript((Math.random()* (4 - 1)+1).toFixed(4);)}&cur=${CUR}&adId=${ADID}

【问题讨论】:

    标签: jmeter jmeter-5.0


    【解决方案1】:

    对于If Controller,您应该改用__groovy 或__jexl3 函数

    将条件解释为变量表达式?如果选择此选项,则条件必须是计算结果为“真”的表达式(忽略大小写)。例如,${FOUND} 或 ${__jexl3(${VAR} > 100)}。与 JavaScript 案例不同,仅检查条件是否匹配“真”(忽略大小写)。 建议检查这一点并在 Condition 中使用 __jexl3 或 __groovy 函数以提高性能

    在你的情况下使用

    ${__groovy(vars.get("BID_STATUS") == vars.get("STATUS_OK") )}
    

    或者

    ${__jexl3("${BID_STATUS}" == "${STATUS_OK}")}
    

    【讨论】:

    • 谢谢你,它有效!!!还有一个问题。我的测试计划配置为在一个循环中运行 200 个线程,它运行 200 次 bid 并且只有在开始运行“win”之后,有没有办法在每个 bid 之后运行 win(如果状态为 200确定)?
    • 它应该在每次出价后运行获胜。 bidwin 之间还有其他元素吗?你能分享你的部分测试计划吗?
    • 我用测试计划描述更新了主要问题
    • 我试图重现它,但线程从来没有像你描述的那样一致,我认为你应该提出一个关于它的新问题
    • 谢谢,我打开新的讨论stackoverflow.com/questions/48806616/…
    【解决方案2】:

    您需要用引号将 JMeter 变量引用括起来,例如:

    "${BID_STATUS}" == "${STATUS_OK}"
    

    或者(更好)您可以摆脱这个正则表达式提取器并切换 If Controller 的条件以使用 __groovy() function 喜欢:

    ${__groovy(prev.getResponseCode().equals(vars.get('STATUS_OK')),)}
    

    更多信息:Apache Groovy - Why and How You Should Use It

    【讨论】:

      猜你喜欢
      • 2022-06-20
      • 2023-03-30
      • 1970-01-01
      • 2018-05-01
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      相关资源
      最近更新 更多