1

我正在尝试从此响应中提取 security_token :

{}&&{"containers":{"userID":"p8admin","connected":true,"desktop":"icm"},
     "userid":"p8admin",
     "user_displayname": "p8admin",
     "security_token":"-1829880900612241155",
     "messages":[{"adminResponse":null,
                  "moreInformation":null,
                  "explanation":null,
                  "number":"0",
                  "userResponse":null,
                  "text":"p8admin connect\u00e9."
                 }]
     }

我试过结合 transform 和 jsonPath :

.check(bodyString.transform(_.split("&&")(1)).jsonPath("&.security_token").saveAs("security_token"))

但我收到此错误:

value jsonPath is not a member of com.excilys.ebi.gatling.core.check.MatcherCheckBuilder

让我知道是否有一种简单的方法可以实现这一目标。

谢谢

4

2 回答 2

0

从支票文件中:

该 API 提供了一个专用的 DSL,用于链接以下步骤:

  1. 定义检查
  2. 提取
  3. 改造
  4. 验证
  5. 保存

由于响应不是有效的 JSON,因此您需要将其bodyString用作类型。然后您可以转换然后保存,但您不能返回到第 1 步。您可以在该transform步骤中从 JSON 中解析出您需要的值。

正如 Stéphane 指出的那样,获取该值的最简单方法是使用regex检查并直接提取 security_token 值,只要您不需要 JSON 对象的其余部分用于任何逻辑。

于 2014-07-23T13:53:04.277 回答
0

我有同样的问题,我使用了regex()这样的功能:

.check(regex(""""security_token":"(.*)",""").saveAs("security_token"))
于 2020-06-16T07:14:58.607 回答