注意,如果您正在使用 1.9.0 或者更早的版本請參考舊文檔。
REST Assured 是一個可以簡化 HTTP Builder 頂層 基于 REST 服務的測試過程的 Java DSL(針對某一領域,具有受限表達性的一種計算機程式設計語言)。它支援發起 POST,GET,PUT,DELETE,OPTIONS,PATCH 和 HEAD 請求,并且可以用來驗證和校對這些請求的響應資訊。
靜态導入方法
示例
JSON 示例
JSON Schema Validation
XML 示例
進階用法
XML
JSON
其它示例
關于 float 和 double
文法關注點 (文法糖)
獲得響應體資訊
從已驗證的響應體中提取值
JSON (使用 JsonPath)
XML (使用 XmlPath)
擷取某個路徑下的值
Headers, cookies, status 等
擷取全部 header 值
擷取全部 cookie 值
擷取詳細的 cookie 值
獲得響應資訊
在驗證響應之後提取特定的值
單獨使用路徑
擷取 header
擷取 cookie
指定請求資料
請求 HTTP 資源
參數化
多值參數
參數不指派
路徑參數
Cookie
Header
Content-Type
請求正文
驗證響應資訊
響應體
狀态碼
内容全比對
關聯類型驗證
計算響應時間
認證
基本認證
搶占式的基本認證
受質詢的基本認證
摘要認證
表單認證
CSRF
OAuth
OAuth1
OAuth2
Multi-part 類型的表單資料
對象映射
序列化
基于 Content-Type 的序列化
由 HashMap 建立 JSON
使用顯式序列化器
反序列化
基于 Content-Type 的反序列化
自定義 content-type 的反序列化
使用顯式反序列化器
配置
自定義
解析器
自定義解析器
預設解析器
預設值
模式複用
過濾器
Response Builder
日志
請求日志
響應日志
認證失敗日志
根路徑
Session 支援
Session 過濾器
SSL
SSL 無效的主機名
URL 編碼
代理(proxy)配置
靜态代理配置
請求規範代理配置
詳細配置
編碼配置
解碼配置
Session 配置
重定向(Redirect)DSL
網絡連接配接配置
JSON 配置
HTTP 用戶端配置
SSL 配置
參數配置
Spring Mock Mvc 模型
Bootstrapping RestAssuredMockMvc
異步請求
添加 Request Post Processors
添加 Result Handlers
使用 Result 比對器
攔截器
Specifications
重置 RestAssuredMockMvc
Spring MVC 身份認證
使用 Spring Security 測試
注入一個使用者
參數相關
Scala 支援
Kotlin 支援
更多
推薦大家從以下的類中靜态導入方法,以提高使用 rest-assured 的效率。
如果您想使用Json Schema validation 還應該靜态導入這些方法:
更多使用方法參閱 Json Schema Validation 。
如果您正在使用 SpringMVC,你可以使用spring-mock-mvc 模型的 Rest Assured DSL 來對 Spring 的 controller 層進行單元測試。為此需要從RestAssuredMockMvc靜态導入這些方法,而不是io.restassured.RestAssured:
假設某個 get 請求 (to http://localhost:8080/lotto) 傳回 JSON 如下:
REST assured 可以幫您輕松地進行 get 請求并對響應資訊進行處理。舉個例子,如果想要判斷 lottoId 的值是否等于 5,你可以這樣做:
又或許您想要檢查 winnerId 的取值包括23 和 54:
注意: equalTo 和 hasItems 是 Hamcrest matchers 的方法,是以需要靜态導入 org.hamcrest.Matchers。
注意這裡的"json path"文法使用的是Groovy 的 GPath标注法,不要和 Jayway 的JsonPath文法混淆。
(譯者注:Java 在 java.math 包中提供的 API 類 BigDecimal,用來對超過 16 位有效位的數進行精确的運算)
您可以對 rest-assured 和 JsonPath 進行配置,使之以 BigDecimal 傳回 json 裡的數值類型資料,而不是 float 或者 double。可以參考下面 json 文本:
預設情況下您驗證 price 字段是否等于 float 類型的 12.12 像這樣:
但是如果想用 rest-assured 的 JsonConfig 來配置傳回的所有的 json 數值都為 BigDecimal 類型:
自從 2.1.0 版本 rest-assured 開始支援Json Schema validation. 舉個例子,在 classpath 中放置以下的 schema 檔案(譯者注:idea 的話可以放在 resources 目錄下),products-schema.json: