前言
不知道大家的項目是否都有對接口API進行自動化測試,反正像我們這種小公司是沒有的。由于最近一直被吐槽項目質量糟糕,只能研發自己看看有什么接口測試方案。那么在本文中,我將探索如何使用?Rest Assured
?自動化 API 測試,Rest Assured
?是一個基于 Java 的流行的用于測試?RESTful API
?的庫。
什么是Rest Assured
Rest Assured
?是一個基于 Java 的開源庫,主要用于測試?RESTful API
。它為編寫測試用例提供了一種簡單直觀的 DSL(領域特定語言),這使得開發人員可以輕松編寫和維護自動化測試。Rest Assured?
支持?GET
、POST
、PUT
、DELETE
、PATCH
?等各種 HTTP 方法,并且可以輕松與流行的測試框架(如?TestNG
?和?JUnit
)集成。
github地址:https://github.com/rest-assured/rest-assured
安裝Rest Assured
在maven中引入相關依賴
1 2 3 4 5 6 |
|
Rest Assured結構
Rest Assured
代碼的整體結構分為 3 個主要部分:
1.Given
Given
是 API 測試的先決條件,可以在其中設置測試所需的一切,例如URL、請求頭或參數,或任何需要滿足的先決條件。- 可以在“
Given
”中設置的內容:URL、請求頭、請求參數和請求正文。
2.When
When
是實際向服務器發送 HTTP 請求并獲得響應的時間。可以在When
中定義請求方法,如?GET
、POST
、PUT
?等。
3.Then
Then
是您檢查從服務器獲得的響應并確保它符合您的預期的地方。在這您可以檢查狀態代碼、響應正文、標頭或任何其他對您的測試很重要的內容。
Show Me Code
我們現在通過一個例子來演示下如何使用Rest Assured
,首先我們看下postman
的例子:
1.請求參數
2.請求頭
3.請求體
現在我們用Rest Assured
這個框架來測試下上面postman的這個接口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
1.首先我們在?given()
?中設置前置條件
1 2 3 4 5 |
|
2.然后在when()
中定義請求方法,本例中為POST
1 |
|
3.然后我們從我們的請求中斷言狀態代碼、標頭、正文和響應時間
1 2 3 4 5 6 |
|
如何提取響應體?
例如,這將是我們對之前請求的回應:
1 2 3 4 |
|
以下是我們如何提取這些數據:
1 2 3 |
|
統一抽象封裝
在大多數情況下,需要測試許多 API,但前提條件相同,例如 BaseURL、參數和請求頭等,為了消除代碼中的冗余,我們可以統一抽象封裝一個?RequestSpecification
?類作為我們的規范構建器,并在我們的其他測試中重用它,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
現在,您可以在具有相同前提條件的任何其他需要的測試中重用?requestSpecification()
?方法。查看與我們之前代碼的區別:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
通過使用?given().spec()
,我們的代碼現在變得簡單多了。
?現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:485187702【暗號:csdn11】
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走!?希望能幫助到你!【100%無套路免費領取】