什麼是mock測試
Mock 測試就是在測試活動中,對於某些不容易構造或者不容易獲取的資料/場景,用一個Mock物件來建立以便測試的測試方法。
Mock測試常見場景
- 無法控制第三方系統介面的返回,返回的資料不滿足要求
- 依賴的介面還未開發完成,就需要對被測系統進行測試
Mock測試的缺點
測試過程中如果大量使用Mock,mock測試的場景失去了真實性,可能會導致在後續的系統性測試時才發現bug,使得缺陷發現的較晚,可能會造成後續修復成本更大
Mock工具:Fiddler / Postman
01、實戰
postman 建立一個mock server
步驟一:
在左上角有一個New,點開後會有下拉選單展示,選擇裡面的Mock Server

步驟二:
勾選Request-Body(請求內容)

步驟三:
填寫mock測試的各個請求引數,之後點選Next下一步

步驟四:
建立mock server
- 填寫Mock服務的名稱(可用中文)
- 勾選Make this Mock server private,可以不勾選;如果勾選了,這個Mock服務就只能你自己私有訪問,此時建立的Mock Service需要一個x-api-key,把生成的key放到header中,具體生成x-api-key後面會介紹
- 選擇環境,如果沒有合適的環境可以選擇no environment
- 勾選 Save the mock server URL as an environment variable

步驟五:
點選here獲取mock 介面金鑰,登陸瀏覽器設定,然後點選close

黃色部分就是Mock伺服器地址,這個mock server是postman在自己的伺服器上為我們建立的,無論我們是否開啟postman,我們都可以直接用這個地址來訪問mock的API,如我們透過Jmeter也能對這個介面進行訪問
如果需要對這個Mock服務建立API key,可以點選here開啟一個瀏覽器頁面,生成一個API key,(注意,這個key值只出現一次,複製好以後最好新建一個記事本粘進去),後面訪問這個介面的時候,必須在請求頭裡帶上 API key,才能訪問成功,相當於一個介面鑑權的作用。
x-api-key獲取地址:https://web.postman.co/settings/me/api-keys?

步驟六:
Mock服務建立成功
建立成功後回到postman主介面,在右側collection集合出出現了一個以剛才mock server命名相同的collection,點選這個集合右上角的箭頭,選擇mock,出現mock server的地址。

這個{{url}}其實就是我們的Mock服務地址,滑鼠放上去可以顯示,如果使用postman進行測試,使用時位址列內的{{url}}一定要帶著,如果
使用其它工具如Jmeter,可以使用{{{url}}變數中具體的值,也即如上圖中的https://3b84b4c3-de01-4016-83aa-60943c1984b8.mock.pstmn.io:在這個mock server地址,其後面路徑名稱以及層級均可自定義,但要記得設定對應的example並且儲存後再執行。

步驟七:
修改Mock Server,如果需要修改Mock Server,點選進入Mock Server服務,點選右上角的Examples就可以修改了
選擇環境,選擇Examples,預設為default,如果僅僅要修改當前的Mock Service,則選擇Default
如果要在此基礎上新增Mock Service,則選擇Add Example,新增或者修改mock service,並儲存為新的mock service,注意介面地址中{{url}}/test/testdemo,前面要帶上路徑符號/


步驟八:
訪問Mock服務,可以使用 postman 、jmeter等介面測試工具進行訪問,這裡選擇使用postman進行訪問
建立一個Http服務請求 “Add Request”,Request name可以命名為中文,儲存

選擇環境:點選右上角眼睛旁的下拉框選擇環境,此處剛才建立Mock server時候新增了一個和mock server命名相同的的環境,選擇環境後點選眼睛,還可以看到該環境下介面地址的具體資訊


服務請求介面輸入介面地址、請求方法、請求header和請求body等內容,點選save,點選send按鈕,可檢視服務請求和響應內容,此處響應的內容就是前面建立Mock服務定義的響應內容,響應成功狀態碼就是Mock服務定義的響應狀態碼,如:Status:200

建立一個Http服務請求 “Add Request”,也可以對步驟七中新增/修改的Mock Service(Example)傳送服務請求,步驟同上
步驟九:
使用Jmeter訪問Mock服務
備註:使用Jmeter進行介面測試不存在選擇環境

步驟十:
其它-環境管理,對於一些無用的環境,可以刪除

行動吧,在路上總比一直觀望的要好,未來的你肯定會感 謝現在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入扣群:731789136,裡面有各種軟體測試+開發資料和技術可以一起交流學習哦。
最後感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對於【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,雖然不是什麼很值錢的東西,如果你用得到的話可以直接拿走: