java - 如何使用 RestAssured 验证响应中的值列表

标签 java automated-tests rest-assured rest-assured-jsonpath

有人可以让我了解如何验证响应中的项目列表吗?假设响应如下所示,

{  
   "store":{  
      "book":[  
         {  
            "author":"Nigel Rees",
            "category":"reference",
            "price":8.95,
            "title":"Sayings of the Century"
         },
         {  
            "author":"Evelyn Waugh",
            "category":"fiction",
            "price":12.99,
            "title":"Sword of Honour"
         },
         {  
            "author":"Herman Melville",
            "category":"fiction",
            "isbn":"0-553-21311-3",
            "price":8.99,
            "title":"Moby Dick"
         },
         {  
            "author":"J. R. R. Tolkien",
            "category":"fiction",
            "isbn":"0-395-19395-8",
            "price":22.99,
            "title":"The Lord of the Rings"
         }
      ]
   }
}

元素 Book 下面有四个包含不同数据的列表,现在如果我想按顺序验证作者姓名和价格(例如在循环中)如何实现这一点..?

我通常将响应转换为 Json 文档,然后进行验证,但在这种情况下,如果我使用 Json 路径“Store.book.author”,在响应的四个列表中,它会引用哪个列表..?这就是我困惑的地方。

最佳答案

放心,有内置方法,您可以使用它来获取数组的所有项目作为 map 列表。

String key="book";//array key (as it mentioned in your Json)
Response response=//your API call which will return Json Object
List<Hash<String,Object>>booksList=response.jsonPath().getList(key);
//Now parse value from List
Hash<String,Object> firstBookDetails=booksList.get(0);// for first index
String author=(String)firstBookDetails.get("author");

关于java - 如何使用 RestAssured 验证响应中的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919604/

相关文章:

java - 在放心测试中使用 PowerMock 模拟静态类

java - 将普通语言持续时间转换为 Joda 周期或 ISO 8601

java - 视口(viewport)适合屏幕宽度和大图像

c++ - 如何在通过自动工具构建的项目中使用Google Test?

java - RESTAssured 收到两个可能的状态代码之一

java - 如何在放心框架中使用索引从 jsonpath 获取第一个元素?

java - 从 double 中删除 '.0',但保留所有其他可能性

java - 静态嵌套类与非静态错误?

node.js - 如何让 Nightwatch.js 在 Internet Explorer 上运行测试

testing - 将外部证书添加到 jmeter