我正在起诉我的apis自动化,这是我的jsonResponse: -
{
"al": [{
"aid": 1464,
"_r": "Bus Stand,",
"_l": "spaze it park2,",
"_c": ",",
"_s": "Haryana,",
"co": "India,",
"pc": "122001",
"fa": "Sona Road, spaze it park, Gurgaon, Haryana,",
"fn": "225,",
"lm": "omax mall",
"pa": null,
"at": 1
},
{
"aid": 1462,
"_r": "Bus Stand,",
"_l": "spaze it park2,",
"_c": "Gurgaon,",
"_s": "Haryana,",
"co": "India,",
"pc": "122001",
"fa": "Sona Road, spaze it park, Gurgaon, Haryana,",
"fn": "225,",
"lm": "omax mall",
"pa": null,
"at": 1
},
{
"aid": 1461,
"_r": null,
"_l": null,
"_c": "Gurgaon1",
"_s": "",
"co": null,
"pc": "122003",
"fa": "Gurgaon, HRyana, 122003",
"fn": "",
"lm": "",
"pa": null,
"at": -1
},
{
"aid": 1460,
"_r": "Bus Stand,",
"_l": "spaze it park2,",
"_c": "Gurgaon,",
"_s": "Haryana,",
"co": "India,",
"pc": "122001",
"fa": "Sona Road, spaze it park, Gurgaon, Haryana,",
"fn": "225,",
"lm": "omax mall",
"pa": null,
"at": 2
}
]
}
现在我想为jasonarray设置断言“援助”:1460,就像lm的值,等参数。我们如何在放心的情况下做同样的事情。也想知道jsonarray的索引位置有“援助”:1460。 请帮帮我!!
答案 0 :(得分:1)
在内置断言中使用REST Assured测试JSON响应相当容易,但在您的情况下,您还需要数组的索引号,我不确定它是否可以找到。我想一下这些行将有所帮助
Response res = given().
get(url).
then().
statusCode(200).
extract().
response();
JsonArray arr=new JsonParser().parse(res.jsonPath().get("al").toString()).getAsJsonArray();
然后,您可以使用JSONArray查找索引以及相应的元素。
答案 1 :(得分:0)
关于断言,您可以使用RestAssured内置GPath查询语法:
RestAssured.given()
.baseUri("http://your.server.com")
.accept(ContentType.JSON)
.get("/jsonFile")
.then()
.statusCode(200)
.body("al.findIndexOf { it.aid == 1461 }", is(2)) // findIndexOf returns zero-based list index
.body("al.find { it.aid == 1461 }._c", is("Gurgaon1"))
.body("al.find { it.aid == 1461 }.pc", is("122003"));