简体   繁体   中英

Gatling: how can I log only failed requests?

The test below checks the performance of a graphql endpoint. A CSV file of id's is fed into the test. When run, about 1% of the requests fail because the endpoint returns an error for some of the id's fed in. But, the message returned from graphql is not very descriptive, so I have no idea which id's actually failed. I'd like to be able to add a step to the test which logs the request body and response for all the failed requests.

I could enable the debug log but this will log everything. I'm only interested in logging the requests which fail. Is it possible to add something like a on failure step which would let me log out the request body and response so that I know which id's failed?

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)
      ))
}

Please have a look at the documentation: https://gatling.io/docs/gatling/guides/debugging/#logback

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM