使用postman搭建mock服務


背景:

  近期新項目開發,測試接口需要使用mock服務,計划采用java代碼寫,在網上找了相關例子寫了一版(樣例如下),結果發現,是和源代碼強關聯的,因為沒有查看代碼權限,故轉而使用postman來搭建mock服務。

import java.util.List;

public class SignonServiceTestsDemo {
// 測試對象,一個服務類
private SignonService signonService;
// 被Mock的類,被服務類所依賴的一個DAO類
private SignonDao dao;

public void testSignon(){
// SignonService#findAll()內部會調用SignonDao#findAll()
// 如果不做定制,所有被Mock的類默認返回空
List<Signon> signons=signonService.findAll();
assertTrue(CollectionUtils.isEmpty(signons));

//定制返回結果
Signon signon=new Signon();
signon.setUsername("foo");
when(dao.findAll()).thenReturn(Lists.arrayList(signon));

signons=signonService.findAll();

//驗證返回的結果與設計的數據一致
assertEquals(1,signons.size());
assertEquals("foo",signons.get(0).getUsername());


}

}


首先說說mock服務的基礎知識:

什么是Mock

以可控的方式模擬真實對象行為的假的對象,很類似汽車設計者使用碰撞測試假人來模擬車輛碰撞中人的動態行為。

Mock常見的使用場景:
1、無法控制第三方系統某接口的返回,返回的數據不滿足要求
比如:支付中最常用的刷卡支付,有可能直接支付成功,也有可能返回支付中,此邏輯受平台方風控邏輯校驗,對我們來說完全是黑盒子

2、某依賴系統還未開發完成,就需要對被測系統進行測試
前端開發比較依賴后端開發提供的接口,然后根據接口返回值設計各類場景頁面。當服務端開發人員未及時提供接口時可能會影響到前端開發及整個項目的進度,特別是在敏捷開發中,對於上下游開發順序更加依賴

3、有些系統不支持重復請求,如支付功能

4、系統功能有訪問頻次限制,獲取敏感信息的接口訪問頻次不可高於xx等


話不多說,開啟postman搭建mock服務旅程
創建Mock服務有兩個方法,下面分別作描述
方法一:

1.首先,需要注冊postman,最好是安裝到本地,然后注冊,注冊會讓你去官網,注冊好之后登錄本地postman應用,登錄后右上角會顯示賬戶信息,如下圖:

 

 

 2.點擊New下拉框后的向下箭頭,選擇Mock Server,進入Mock服務器創建界面,

 

3.輸入你的請求地址,返回body,點擊Next按鈕,進入Mock Server配置界面,輸入服務器名字,環境默認No Environment,勾選Make this mock server private,如下圖(注:選擇No Environment是默認將postman的服務器作為默認服務器,如果有自己的服務器也可以填寫自己的測試服務器)

 

 

 

 

 

 4.點擊Create按鈕,進入創建完成界面,該界面顯示Mock服務器已創建,同是也幫你創建了服務器同名的文件夾,下圖中的Mock Url就是Mock服務器的請求地址,如果接上第1步中自己定義的地址即可訪問自己定義的接口,該地址不會變更,也可以用瀏覽器進行訪問,這里要特別強調一下第4點的創建api,點擊here后會跳到官網,讓你自動生成自己的API,在后面發送請求里會作為請求頭來訪問,否則會提示"mockNotFoundError"

 

如果上圖中點擊here不能立馬解決,會找不到Mock服務器的,解決辦法描述在后面的遇到的問題中。

5.接下來,打開postman,在Collection中會看到上面第4步創建的Collection,打開請求后再右上角選擇對應的環境,點擊環境后的眼鏡圖標,會顯示環境的請求地址和api信息(如果沒有API,可以點擊右上角的Edit添加即可)

 

6.接下來添加Example,點擊右上角的Example按鈕,會彈出請求和返回信息輸入界面,如下,依次填入key為x-api-key,value為第4步生成的API key的值,點擊右上角Sava Example按鈕。

 

 輸入x-api-key

 

 

 7.接下來就可以請求Mock服務器測試返回結果了,打開請求界面,點擊Send按鈕,提示返回

 

 

 到此,postman 搭建Mock服務完成。

方法二:

先建立Collection,然后在里面創建Mock服務器,如下圖:

 

 

 

點擊Collection右上角的箭頭圖標,會彈出Collection詳情,點擊Mocks,點擊Add a mock

 

 

環境選擇No Environment,勾選Make mock server private,點擊Get your Postman Pro API Key,會跳到官網,然后自己生成對應環境的APIkey,點擊Mock This Collection。

 

 

 

在Collection中添加請求,輸入請求地址和x-api-key發送請求即可

 

 

 

 

 

 

 

 

遇到的問題:

訪問接口時提示“mockNotFoundError”,如下圖: 

 

 

 

 

 

原因:請求時沒有附上對應的API keys,故請求不到Mock服務器 

解決辦法:

登錄postman官網,進入個人設置界面->Postman API keys界面,點擊Generate API keys,在彈出的界面輸入你的key name,點擊Generate API keys,會生成對應的key

 

 

 

 

 然后將獲得的API key放入postman請求頭中,如下圖,再點擊請求,則會返回正確結果,如下圖

 

 

 

 

 

 



參考資料:
https://www.jianshu.com/p/4afa11356662
https://www.cnblogs.com/wangx123sec/p/11494950.html


免責聲明!

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



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