我是Gatling和Scala的新手。 我正在尝试编写方案来测试API和执行一些http请求。 我有一个带有对象数组的JSON文件。 我想提取ID字段以实现与它的http请求(多次获取)。我正在尝试使用Feeder,但不确定其工作方式。
这是我的代码:
val jsonFileFeeder = jsonFile("test.json")
val scn = scenario("Http mget document").feed(jsonFileFeeder)
.repeat(requests, "i") {
exec(http("document:mget")
.post("http://" + host + ":7512/index/collection/_mGet")
.header("something", jwt)
.body(StringBody(""" \"ids\": $[id]"""))
.check(jsonPath("$.._id[*]").findAll.saveAs("id"))
.check(status.is(200))
)
}
所以基本上,我正在尝试从文件中获取ID(字段为“ _id”)并保存。
.check(jsonPath("$.._id[*]").findAll.saveAs("id"))
您可能会猜到,这不起作用,而且我遇到了这个错误:
10:00:52.115 [WARN ] i.g.h.e.r.DefaultStatsProcessor - Request
'document:mget' failed for user 1: jsonPath($.._id[*]).findAll.exists, found nothing
我的json文件是这样的:
[
{
"requestId":"99999",
"status":200,
///...///
"result":
{
"_id":"95F8NF",
"_version":1,
///...///
感谢您的帮助
答案 0 :(得分:0)
您的JsonPath错误。应该是
.check(jsonPath("$.._id").findAll.saveAs("id"))
在数组上迭代时使用 [*]
。但是,指定..
意味着您要对程序说要尽其所能。