繁体   English   中英

如何使用 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 start 的“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");

官方文档很有用 - 链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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