Rest-Assured 測試框架


Rest-Assured 是一個測試 Restful Web Service 的 Java 類庫,我們能夠測試各種各樣的請求組合,依次測試核心業務邏輯的不同組合。

它是通過發送特定的rest api,通過服務器返回的HTTP響應,來做功能性測試。

 

REST API的概念

REST API就是符合REST風格,要了解REST API首先需要弄清楚REST風格的具體含義。REST的全稱是Representational State Transfer,中文是表述性狀態轉移,這個是什么意思等會再解釋,先說明為什么會出現REST,以及它對整個網絡服務API發展的重要性。

在互聯網服務剛剛起步的時候,網頁大部分是靜態的,用戶與服務器之間的交互比較少,但是隨着動態網頁的發展,操作的種類也越來越繁復,接口冗余且復雜,開發難度大大提升,擴展困難,而且網絡traffic的負擔也增大了。針對這些問題,2000年一篇論文提出了REST這個設計理念。REST宗旨是從資源的角度來觀察整個網絡,分布在各處的資源由URI確定,而客戶端的應用通過URI來獲取資源的表征。REST與平台、語言等均無關,但是目前僅有HTTPREST的實現案例。

 

REST使用URL來定位資源,通過HTTP動作來表述操作,如

GEThttp://www.TEST.com/users/user

POSThttp://www.TEST.com/users

 

HTTP動作常用的是PUTPOSTGETDELETE,分別對應着對資源的更新、插入、獲取和刪除操作。數據是保存在Headers中傳輸的,其中PUT還有數據在Body中傳輸。

 

REST是無狀態的,即前一次的動作對后一次的動作是沒有影響的,在HTTP應用中,無狀態即不能使用Session

 

REST-Assured實例

通過Maven引入:

<dependency> 

<groupId>io.rest-assured</groupId> 

<artifactId>rest-assured</artifactId> 

<version>3.0.0</version>

<scope>test</scope>

</dependency>

 

通過HTTP動作獲得請求,在對請求進行斷言判斷,來完成一系列集成測試。例如:

RestAssured.requestSpecification =

new RequestSpecBuilder().addHeaders(“token”,”xxx”).build();

 

通過given()設置HTTP動作和附帶的參數,例如:

given().contentType("application/json")
.pathParam("organizationId",orgId)
.body(data)
.when().post("/v1/organizations/{organizationId}/users");

 傳入鍵值對通常使用map傳遞,可以通過工具類轉換成json等格式,如JSON.toJSONString(map)。

 

每一次完成后需要RestAssured.reset();來重置狀態,避免影響其它的測試用例。

 

對於返回的response的內容,比如對body中的數據進行驗證,可以使用body("id", equalTo(2))或者使用包裝好的Assert方法進行驗證。

剛剛學習這方面的知識,內容可能有錯誤,希望在以后的學習中,逐漸完善自己的知識,並且不斷改進。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM