【问题标题】:Gatling's jsonPath silently converts null object to "null" StringGatling 的 jsonPath 默默地将空对象转换为“空”字符串
【发布时间】:2020-11-24 05:04:58
【问题描述】:

我目前正在评估 gatling 3.3.1 的用例,需要从服务器检索 JSON 数据,对其进行操作并将其发回。不幸的是,我在响应中遇到了一个有趣的路障,其中包含 null 值。

我正在使用 Jackson 的 ObjectMapper 将值反序列化并序列化为 HashMap[Object,Any]

scenario("scenario")
  .exec(http("get")
    .get(url)
    .asJson
    .check(jsonPath("$").saveAs("json")))
  .exec(http("post")
    .post(url)
    .asJson
    .body(StringBody("${json}")))

这里有一个虚拟网站供您试用:https://webhook.site/7130d3d3-ddcc-4c36-8864-c3a6c4c13cf4

网络服务器返回:

{
  "name": "frodo",
  "note": null
}

加特林脚本回响:

{
  "name": "frodo",
  "note": "null"
}

你看,注释字段变成了"null",而不是正确的null。为什么会这样?有办法解决吗?难道我做错了什么?我缺少一些杰克逊选项?

【问题讨论】:

  • 试试"${json.jsonStringify()}"
  • @GeorgeLeung 不幸的是,这并没有改变任何东西。生成的字符串仍然包含 "null" 而不是 null

标签: json scala jackson gatling


【解决方案1】:

这是一个bug,将在下一个版本 (3.4.0) 中修复。 感谢您的报告,但下一次,您能在 Github 上使用我们的 bugtracker 吗? :)

【讨论】:

  • 谢谢。如果我知道这是一个错误,我会使用错误跟踪器。我没想到会这样,并认为这可能是 Scala 的限制或一些奇怪的边缘情况。
  • 那么酷。再次感谢您的精彩报告,它使调查和修复变得非常容易。
猜你喜欢
  • 2012-12-08
  • 2021-09-09
  • 1970-01-01
  • 2013-03-03
  • 2017-06-14
  • 2016-05-25
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
相关资源
最近更新 更多