将变换与jsonpath结合起来

时间:2014-07-23 08:57:08

标签: transform jsonpath gatling

我试图从此响应中提取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

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

由于

2 个答案:

答案 0 :(得分:0)

来自支票文件:

  

此API提供专用DSL,用于链接以下步骤:

     
      
  1. 定义支票
  2.   
  3. 提取
  4.   
  5. 转化
  6.   
  7. 验证
  8.   
  9. 保存
  10.   

由于响应无效JSON,因此您需要使用bodyString作为类型。然后,您可以转换然后保存,但不能返回到步骤1.您可以在transform步骤中解析JSON所需的值。

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

答案 1 :(得分:0)

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

.check(regex(""""security_token":"(.*)",""").saveAs("security_token"))