REST-Assured 簡介
REST-Assured 是一套基於 Java 語言實現的開源 REST API 測試框架,由作者 Johan Haleby 開發並維護,目前該項目在 GitHub 上已收穫 4.9K star
從官方描述可以看到 REST-Assured 使得通過 Java 語言測試 REST API 變得更加簡單和容易
REST-Assured 除了語法簡潔之外,強大的解析功能(支持 XML,JSON)也是其成為如今企業首選的接口自動化框架原因之一。
REST-Assured 初體驗
- 安裝 JDK
- 安裝 IDE,推薦 Intellij IDEA
- 安裝 Maven,設置 Maven 鏡像
引入 REST-Assured 依賴
1.創建 Maven 工程
2.POM.xml 添加 REST-Assured 依賴坐標
3.創建 Java Class,靜態導入 REST-Assured 類路徑(官方推薦使用,編寫腳本時更加有效率)
4.第一個 get 請求
類似於行為驅動開發(Behaviour Driven Development-BDD)中的定義的結構 Given-When-Then。
Given:在某場景下,When:發生什麼事件,Then:產生了什麼結果。而 REST-Assured 借鑑了這一套描述可以使得語法更加簡潔:
- given 設置測試預設(包括請求頭、請求參數、請求體、cookies 等等)
- when 所要執行的操作(GET/POST 請求)
- then 解析結果、斷言
所以我們很容易想到這條 case 的作用:發送 get 請求,log()表示輸出響應結果信息,body()輸出響應體內容。
如果要輸出響應的所有信息,使用 log().all()即可。
param 參數設置
我們會注意到上面這條 case 參數和 URL 是拼接在一起的,REST-Assured 可以讓每部分(URL,參數,請求頭)分開來,確保我們的代碼有更好的可讀性,在 given 中配置 queryParam 查詢參數:
而且我們還能採用更加智能的方式:given 中指定 param,此時 REST-Assured 將會自動根據 Http 方法決定參數類型(GET 方法將會自動使用查詢參數,POST 方法將會自動使用表單參數)
Cookies 設置
如果想要在請求中攜帶 Cookies 信息,REST-Assured 給我們提供了非常方便的方式:
或者是指定多對 cookie:
Header 設置
Content Type 設置
Request Body 設置
REST-Assured 還支持可以將 Java 對象序列化為 JSON 或者 XML,比如:
1 ) 通過 contentType 指定為 JSON,將 HashMap 序列化為 JSON
2 )通過 contentType 指定為 JSON,將 Message 對象序列化為 JSON
Message.java
3 ) 通過 contentType 指定為 XML,將 Message 對象序列化為 XML
在類前面加註解 XmlRootElement:
校驗響應數據
支持校驗狀態碼, cookies, 響應頭, content type 和響應體
本文帶著大家了解 REST-Assured 的基本結構和語法,當然,REST-Assured 的功能遠不止這些,比如其內置的 JsonPath 解析和 XmlPath 解析以及 hamcrest 斷言都是十分強大的功能,後續再給大家詳細介紹。