亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SerenityRest 過濾響應體

SerenityRest 過濾響應體

小怪獸愛吃肉 2022-12-15 15:57:45
我正在嘗試返回值“歡迎!” 其中對象包含等于“主題”的“名稱”鍵。響應體數據如下:"payload": {    "mimeType": "multipart/alternative",    "headers": [       {            "name": "Mime-Version",            "value": "1.0"        },        {            "name": "Subject",            "value": "Welcome!"        },        {            "name": "To",            "value": "Jane Doe <[email protected]>"        },        {            "name": "Message-ID",            "value": "<123456.abc.com>"        }以下代碼段將返回第一個遇到的“值”:“1.0”,但我需要獲取名稱 =“主題”的值。我如何過濾結果并檢查匹配的字符串?Response response = SerenityRest.rest()   .contentType("application/json")   .get("URL")response.then().statusCode(200);String subject = response.jsonPath().getString("payload.headers.value");“歡迎”的值不是靜態的,而是“名稱”:“主題”永遠不會改變。
查看完整描述

1 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

我不確定是否理解你的問題,如果你正在尋找一個 jsonpath 過濾器來獲取與該字段關聯的值"name": "Subject",這通常應該有效:


"payload.headers[?(@.name=='Subject')].value"

但我看了一下json-path rest-assured,這是 Serenity rest 用來執行 json-path 操作的庫,該庫不使用標準的 json-path synthax,而是使用基于 groovy lambda 的 synthax 來執行高級搜索。所以這應該有效:


"headers.find{ it.name == 'Subject' }.value"

我用一個完整的例子來測試:


JsonPath.from("{\"payload\": {\n" +

                "    \"mimeType\": \"multipart/alternative\",\n" +

                "    \"headers\": [\n" +

                "       {\n" +

                "            \"name\": \"Mime-Version\",\n" +

                "            \"value\": \"1.0\"\n" +

                "        },\n" +

                "        {\n" +

                "            \"name\": \"Subject\",\n" +

                "            \"value\": \"Welcome!\"\n" +

                "        },\n" +

                "        {\n" +

                "            \"name\": \"To\",\n" +

                "            \"value\": \"Jane Doe <[email protected]>\"\n" +

                "        },\n" +

                "        {\n" +

                "            \"name\": \"Message-ID\",\n" +

                "            \"value\": \"<123456.abc.com>\"\n" +

                "        }\n" +

                "    ]\n" +

                "}}")

    .getString("headers.find{ it.name == 'Subject' }.value");

// returns "Welcome!"


查看完整回答
反對 回復 2022-12-15
  • 1 回答
  • 0 關注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號