【发布时间】:2020-05-22 11:43:06
【问题描述】:
我只是想知道是否可以使用 Gatling 验证 JSON 响应中某些字段的值?
目前代码仅检查 JSON 响应中是否存在字段,如下所示:
val searchTransaction: ChainBuilder = exec(http("search Transactions")
.post(APP_VERSION + "/transactionDetals")
.headers(BASIC_HEADERS)
.headers(SESSION_HEADERS)
.body(ElFileBody(ENV + "/bodies/transactions/searchTransactionByAmount.json"))
.check(status.is(200))
.check(jsonPath("$.example.current.transaction.results[0].amount.value")
如果我想验证交易价值等于0.01,是否可以做到这一点? 我google了一下,没有找到,如果之前有类似的问题,请告诉我我会关闭这个。谢谢。
我在测试中尝试了一些断言,我发现断言根本不会失败。
val searchTransaction: ChainBuilder = exec(http("search Transactions")
.post(APP_VERSION + "/transactionDetals")
.headers(BASIC_HEADERS)
.headers(SESSION_HEADERS)
.body(ElFileBody(ENV + "/bodies/transactions/searchTransactionByAmount.json"))
.check(status.is(200))
.check(jsonPath("$.example.current.transaction.results[0].amount.value").saveAs("actualAmount"))).
exec(session => {
val actualTransactionAmount = session("actualAmount").as[Float]
println(s"actualTransactionAmount: ${actualTransactionAmount}")
assert(actualTransactionAmount.equals(10)) // this should fail, as amount is 0.01, but performance test still pass.
session
})
【问题讨论】:
标签: json scala performance-testing scala-gatling