創建API Expectation

API 服器功能描述:

1. API服務器接收一個對用戶列表的 get()請求

2. 以Json 文件格式返回對應的用戶列表

目標明確了,現在需要做的就是:

01 準備數據

創建一個json文件,存放用戶列表。這里只是為了學習,所以數據準備的并不復雜。

02 創建Expectation

Expectation的意思就是告訴服務器當接收到請求時,響應相關的數據。通過Expectation定義相關請求的規則,與響應的規則。

比如:本例中當請求userList鏈接 get()方法時,就返回以Json格式的用戶列表。

注意:這里的用戶列表我們單獨放在一個Json文件里,以方法getPayloadString() 讀取后作為變量被Expectation調用。

目的主要讓代碼變得簡潔、易讀。數據存放在文件里也方便測試的修改與維護。

配置Rest-Assured

在pom文件里,配置Rest-Assured的dependency。

啟動Mock Server

創建MockServerTest文件,在測試用例執行之前,需要先啟動Mock Server:

測試場景

01 創建測試場景

依據Expectation定義的規則,服務器啟動設置后,當用戶請求“http://localhost:10800/userList”,API Mock Server返回以Json格式的用戶列表 。

示例中驗證了:

02 運行測試

運行測試以后,從結果中我們可以看到測試是失敗的。從運行的 log中看出:

Mock Server UI監控

01 等待語句

現在我們在上面的測試用例中加一條等待語句 Thread.sleep(1000000)。

這里主要以學習為目的,最好給的等待久一點。我們詳細看一下Mock Server的日志。

02 運行測試

這次運行測試,在執行完第一條打印語句以后,程序一直處于運行狀態。

03 訪問Mock Server UI

通過瀏覽器訪問:http://localhost:10800/mockserver/dashboard

Mock Server Dashboard顯示如下:

04 Log分析

通過點擊creating expectation旁邊的展開符號,可以詳細的看到剛才準備的expectation的規則與響應。

Received與Response分析

示例一:

01 發送Positive Request通過Jmeter

現在我們發送一個正確的請求通過Jmeter,如圖所示:Jmeter中會返回響應的用戶列表。

02 刷新Mock Server Dashboard頁面

記錄Request Received會同時出現在Log Messages、 Received Requests列表里,通過展開記錄可以詳細看到Request與Response。

示例二:

01 發送一個Negative Reqeust請求通過Jmeter(注:Request Path: /userListError)。

給出這樣一個沒有對應Expectation的請求時,Mock Server會返回響應代碼404。

02 刷新Mock Server Dashboard,Received Requests里顯示了接受到的請求。

但是在Log Messages里可以看NO_MATCH_RESPONSE的記錄。展開可以看到Request與Response的詳細信息。

結語

這次主要是介紹Mock Server與Maven集成做API自動化測試的示例,以供大家參考。

另外Mock Server支持其它配置方式,如:?Docker、獨立服務器等以適應各種不同測試環境下的要求。Mock Server Dashboard隨時記錄下Request與Response信息,是很好的調試工具。

但是,Mock Sever也并不是萬能的,比如Mock Server 沒有自己的數據庫,也就是指所有的Expectations都是存儲在內存的,因此要求動態數據的場景,相比較有自帶數據庫的API Server,Mock Server 就有點差強人意了。

總之,一切要以實際測試環境為依據,每一個工具都有優點與缺點。

我始終堅持測試的終極目的不是比拼大家會用什么測試工具、會用什么語言。測試人員靈活掌握工具與語言是為了測試過程更簡約、更快捷。

好了,希望這些介紹能幫助到您的測試,有不足之處也希望大家多多提建議,共同進步。

文章轉自微信公眾號@51Testing軟件測試網

上一篇:

測試MVP:測試您想法的17種最佳方法

下一篇:

介紹一個強大的 API Mock 工具 Mirage JS
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費