如何使用 restAssured 在特殊条件下提取结果?
How do I extract results with special conditions using restAssured?
我有一个列表作为响应返回。我需要得到一个小于 5
的人的名字
{
"person": {
"list": [
{
"id":A135443
"name":"Jeff"
"start":5
},
{
"id":A135410
"name":"JohnDoe"
"start":5
},
{
"id":A135418
"name":"Adam"
"start":4
},
{
"id":A135431
"name":"Harry"
"start":3
},
....
]}}
上述代码中,数组中存储的是小于5的“Adam”和“Harry”。
如何将满足特定条件的结果存储在数组中?
有很多方法可以做到这一点,这里有几个例子,它们很容易解释 - 否则请告诉我,我很乐意解释
选项 1:
Response res = RestAssured.given().when().get("http://localhost:8080/trial/1");
JsonPath js = res.jsonPath();
List<Object> values = js.getList("person.list.findAll { it.start < 5 }.name");
选项 2:
List<Object> values1 = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract()
.body().jsonPath().getList("person.list.findAll { it.start < 5 }.name");
选项 3:
String def = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract().body().asString();
JsonPath js1 = new JsonPath(def);
List<Object> values2 = js1.getList("person.list.findAll { it.start < 5 }.name");
官方文档很有用 - Link
我有一个列表作为响应返回。我需要得到一个小于 5
的人的名字{
"person": {
"list": [
{
"id":A135443
"name":"Jeff"
"start":5
},
{
"id":A135410
"name":"JohnDoe"
"start":5
},
{
"id":A135418
"name":"Adam"
"start":4
},
{
"id":A135431
"name":"Harry"
"start":3
},
....
]}}
上述代码中,数组中存储的是小于5的“Adam”和“Harry”。
如何将满足特定条件的结果存储在数组中?
有很多方法可以做到这一点,这里有几个例子,它们很容易解释 - 否则请告诉我,我很乐意解释
选项 1:
Response res = RestAssured.given().when().get("http://localhost:8080/trial/1");
JsonPath js = res.jsonPath();
List<Object> values = js.getList("person.list.findAll { it.start < 5 }.name");
选项 2:
List<Object> values1 = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract()
.body().jsonPath().getList("person.list.findAll { it.start < 5 }.name");
选项 3:
String def = RestAssured.given().when().get("http://soapractice.mocklab.io/thing/4").then().extract().body().asString();
JsonPath js1 = new JsonPath(def);
List<Object> values2 = js1.getList("person.list.findAll { it.start < 5 }.name");
官方文档很有用 - Link