一旦响应在 jmeter 中具有正确的值,只需执行一次 api

问题描述 投票:0回答:2

对于乘车预订应用程序,一旦收到“已完成”状态响应,我需要停止执行“结束乘车”api。目前我正在使用 while 控制器,但会进入无限循环。 API响应: {“id”:3820,“状态”:“已完成”,“骑手”:{“id”:2019,“名字”:“测试”,“姓氏”:“骑手”,“电话号码”:“9000000124”, “电子邮件”:“[电子邮件受保护]”,“评级”:5.0,“用户”:{},“fullName”:“测试骑手"},"startLocationLat":36.10805389068134,"startLocationLong":-115.16570490025539,"en dLocationLat":36.10805389068134,"endLocationLong":-115.16570490025539,"startAddress":"73南马丁路德金大道","endAddress":"富南扎西路 920 号","start":{"地址":"南马丁路德金大道 73 号","zipCode":"89106"},"end":{ "地址":"920 西博南扎路"},"surgeFactor":1.00,"driverPayment":"4.00","requestedCarType":{"title":"STANDARD","carCategory":"REGULAR","plainIconUrl":"https://media. ride-vegas.com/regular.png","配置":"{"skipRideAuthorization": false}"},"requestedDriverTypes":[],"freeCreditCharged":"0.00"}

这是 JSON,它通过 https://jsonlint.com/ 进行了正确验证。当状态为 COMPLETED 时,我只需要执行一次 END RIDE API。有什么办法可以做到这一点吗?

jmeter controller
2个回答
0
投票
  1. 将返回此 JSON 的请求放在 While Controller

  2. 添加 JSON Extractor 作为请求的子项并按如下方式配置它:

    enter image description here

  3. 使用以下__jexl3()函数作为While控制器的条件:

    ${__jexl3("${status}" != "COMPLETED",)}
    

    enter image description here

  4. 就是这样,虽然控制器将运行它的孩子(ren),直到

    status
    变量不会变成
    COMPLETED


0
投票

就我而言,我尝试执行脚本两次。因此,它第一次检查 API 的状态,直到它未完成为止,它会多次调用 GET Status API。 一旦状态更新为完成,它就会执行第二次迭代,但在第二次迭代中它不会进入 while 循环。 对此有什么想法吗?

在此输入图片描述

© www.soinside.com 2019 - 2024. All rights reserved.