首先解釋一下什么是mock接口。
Mock通常是指,在測試一個對象時,我們構造一些假的對象來模擬與其交互。而這些Mock對象的行為是我們事先設定且符合預期。通過這些Mock對象來測試對象在正常邏輯,異常邏輯或壓力情況下工作是否正常。
引入Mock最大的優勢在於:Mock的行為固定,它確保當你訪問該Mock的某個方法時總是能夠獲得一個沒有任何邏輯的直接就返回的預期結果。Mock接口就是用一些合理的手段構造對象去模擬真實接口,達到我們需要的測試效果。測試場景有哪些呢?
依賴的上游項目的接口尚未開發完成,下游無法進行聯調,一直處於等待狀態;
接口不滿足目前的測試需求。雖然接口已經實現,但是個別字段/返回不滿足測試要求;
常見的 一些Mock 方式:
將模擬數據直接寫在代碼里
利用 JavaScript 攔截請求
利用 Charles、 Fiddler 等代理工具攔截請求
。。。。。。。
等等
龍淵閣測試開發家園: 317765580
如何將這些Mock接口管理起來就成了一個問題,好在現在市面上已經有不少這種平台,比如
下面借用一張圖來說明一下Mock平台的優勢
通過這張圖我們可以發現,通過Mock平台,可以實現前后端並行開發,甚至測試也能參與進來。可以極大地提高工作效率。
簡單介紹Mock之后,我們可以來實際操作了。這里我在本地部署了一套Easy-Mock平台,具體部署流程自行Github,或者咨詢博主。
我在后台創建了一個Mock接口,實現一個簡單的響應式js,見下圖。
大概意思就是通過接口傳入一個time參數,接口判斷如果參數名稱是now,那么接口實時返回當前時間,如果傳入的參數是id,那么接口返回一個隨機的字符串。這里涉及到一些mock語法。可以參考下面的文檔
現在可以去前台調試一下接口了
完成這些工作之后,可以將這個接口寫到Jmeter中進行調試,可以看到兩種不同的結果。
我們也可以將接口文檔中的預期返回值填入到Mock中去模擬結果,從而使接口測試擺脫對環境的依賴,實現真正的敏捷!
Easy-Mock可以在本地部署,但是也有線上環境,可以自由選擇哦~
線上地址 Easy-Mock
龍淵閣測試開發家園: 317765580