REST-Assured,接口自動化的 "瑞士軍刀"- 初識篇

檸檬班軟件測試 發佈 2020-08-19T08:49:46+00:00

REST-Assured 是一套基於 Java 語言實現的開源 REST API 測試框架,由作者 Johan Haleby 開發並維護,目前該項目在 GitHub 上已收穫 4.9K star。

REST-Assured 簡介

REST-Assured 是一套基於 Java 語言實現的開源 REST API 測試框架,由作者 Johan Haleby 開發並維護,目前該項目在 GitHub 上已收穫 4.9K star



從官方描述可以看到 REST-Assured 使得通過 Java 語言測試 REST API 變得更加簡單和容易


REST-Assured 除了語法簡潔之外,強大的解析功能(支持 XML,JSON)也是其成為如今企業首選的接口自動化框架原因之一。


REST-Assured 初體驗

  1. 安裝 JDK
  2. 安裝 IDE,推薦 Intellij IDEA
  3. 安裝 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 斷言都是十分強大的功能,後續再給大家詳細介紹。

關鍵字: