Gatling:我怎样才能只记录失败的请求?

Gatling: how can I log only failed requests?

下面的测试检查 graphql 端点的性能。将 ID 的 CSV 文件输入到测试中。当 运行 时,大约 1% 的请求失败,因为端点 returns 一些 id 的输入错误。但是,从 graphql 返回的消息描述性不强,所以我不知道是哪个id实际上失败了。我希望能够向测试添加一个步骤,记录所有失败请求的请求正文和响应。

我可以启用调试日志,但这会记录所有内容。我只对记录失败的请求感兴趣。是否可以添加类似失败步骤的内容,让我注销请求正文和响应,以便我知道哪个 ID 失败了?

class Test extends CommonSimulation {
  val graphqlQuery: String =
    """
      |{"query":"{person(personId:\"${id}\")}"}
      |""".stripMargin

  val gqsPerson: ScenarioBuilder = scenario("Service Test")
    .feed(csv(Data.getPath + "id.csv").random)
    .exec(http("My test")
      .post("https://localhost:4000/graphql")
      .body(StringBody(graphqlQuery)).asJson
      .check(jsonPath("$.errors").notExists)
      .headers(headers)
    )
  
  setUp(
    authToken.inject(atOnceUsers(1))
      .andThen(
        gqsPerson.inject(constantConcurrentUsers(1) during 1)
      ))
}

请查看文档:https://gatling.io/docs/gatling/guides/debugging/#logback