java SerenityTest筛选器响应体
我试图返回值“欢迎!”其中,对象包含与“主题”相等的“名称”键。响应机构数据如下:
"payload": {
"mimeType": "multipart/alternative",
"headers": [
{
"name": "Mime-Version",
"value": "1.0"
},
{
"name": "Subject",
"value": "Welcome!"
},
{
"name": "To",
"value": "Jane Doe <xyz@xyz.com>"
},
{
"name": "Message-ID",
"value": "<123456.abc.com>"
}
下面的代码段将返回第一个遇到的“value”:“1.0”,但我需要在name=“Subject”处获取值。如何筛选结果并检查匹配字符串
Response response = SerenityRest.rest()
.contentType("application/json")
.get("URL")
response.then().statusCode(200);
String subject = response.jsonPath().getString("payload.headers.value");
“欢迎”的值不是静态的,而是“名称”:“主题”永远不会改变
# 1 楼答案
我不确定是否理解您的问题,如果您正在寻找一个jsonpath过滤器来获取与字段
"name": "Subject"
关联的值,这通常应该可以工作:但我来看看json-path rest-assured,它是Serenity rest用来执行json路径操作的库,该库不使用标准json路径Syntax,而是使用基于groovy lambda的Syntax来执行高级搜索。所以这应该是可行的:
我用一个完整的例子进行测试:
这个博客帮助我理解synthax的变化: What's new in REST Assured 1.8?