如何使用 Rest Assured 概念在控制台中显示 Json Array Response 正文
Posted
技术标签:
【中文标题】如何使用 Rest Assured 概念在控制台中显示 Json Array Response 正文【英文标题】:How to Display Json Array Response body in console using Rest Assured concept 【发布时间】:2020-10-04 02:34:36 【问题描述】:[
"bookId": 8,
"bookName": "social",
"authorId": 7,
"authorName": "Ram",
"publisherId": 6,
"publisherName": "potho",
"genre": "nature",
"price": 1000,
"numberOfPages": 1000
]
上面的响应体,我想用放心的概念在控制台中显示。 请告诉我代码
【问题讨论】:
这能回答你的问题吗? how to see actual body sent from restassured。还有这个***.com/questions/44351824/… 【参考方案1】:-
创建一个调用 api 的方法(在 given() 部分定义前置条件,在 when() 部分定义端点)。
不要在此方法中包含断言。
保存响应变量(响应类型)。
添加行以在控制台上打印 api 响应正文。
请找到示例代码:Response response = given() .log().all() .headers(标题) .when() .get("https://www.your_endpoint.com/new"); System.out.println("API 响应体 = " + response.getBody().asString());
注意:日志记录通常优于打印到控制台。 尝试使用 log4j 记录并将“System.out.println”替换为“logger.info”
【讨论】:
【参考方案2】:对于这种类型的响应,您可以简单地在响应主体周围添加花括号并添加一个参数,例如responseStr 在下面的示例中,然后您可以将该字符串转换为正确的 Json 响应,然后将其用作 我在下面的代码块中给出的数组:
response = "\"responseStr\":"+response+"";
System.out.println("Response :"+response);
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = (JSONArray)jsonObject.get("responseStr");
for(int i=0;i<jsonArray.length();i++)
JSONObject jsonObject1 = (JSONObject)jsonArray.getJSONObject(i);
```
【讨论】:
以上是关于如何使用 Rest Assured 概念在控制台中显示 Json Array Response 正文的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Rest Assured 在 Json 中构造空数组列表
如何使用 Rest Assured 在 GET url 中传递查询字符串参数?
Rest Assured 不使用自定义 ObjectMapper
使用 REST Assured 进行测试时出现 java.lang.AbstractMethodError
在 REST Assured 中,将响应映射到对象时如何解决 UnrecognizedPropertyException?