參考:https://blog.csdn.net/xu547823501/article/details/86076188
1、無聊的背景、起源:
如今的業務系統越來越復雜龐大,各個功能直接的調用也是多如牛毛,但如果在聯調的時候,恰好被調的接口正在開發,怎么辦?
傻傻的等么,不存在的!這時會搭建一些server來進行mock。使得被開發功能的調試和測試功能能夠正常進行下去。這就是mock server的出現的原因。
網上找了張圖片,可以很好的解釋mock server的作用:
2、搭建mock server
2.1、安裝flask
pip install flask(本文只需flask)
2.2、代碼實現,新建my_mock_server.py,填入下列代碼
from flask import abort, jsonify, Flask, request, Response app = Flask(__name__) # 增加配置,支持中文顯示 app.config['JSON_AS_ASCII'] = False tasks = { "code": 0, "msg": "OK", "data": { "waybillNumber": "1526351", "serviceMode": "10", "waybillStatus": "10", "deliveryAbbreviationAddress": "深圳", "pickupAbbreviationAddress": "深圳" }, "traceId": "dp1r" } @app.route('/task', methods=['GET','POST']) def get_task(): return jsonify(tasks) if __name__ == '__main__': app.run(host = '0.0.0.0',port = 6868,debug = True)
一言以蔽之:利用flask的api服務實現mock server功能
簡要說明:
(1)、tasks字典,存儲你的response,而這個tasks是通過下面的函數get_task實現的。
(2)、get_task函數前面增加了裝飾器,是定義了訪問路由,即訪問ip:端口/task,即可訪問。
(3)、jsonify方法將字典轉換為json返回給前端。
(4)、類似的,可以定義各種task和訪問路由,以實現不同的mock功能
2.3、運行mock_server.py
python my_mock_server.py
網頁打開:http://127.0.0.1:6868/task
postman訪問:get/post
可以看到,因為沒有定義參數,所以無論傳不傳參,接口照常訪問
=========================================================================================================
至此,極簡mock server就搭建完畢。
后話,功能單一,適用場景有限。如果想實現更多共,可以網上找找資料,此為簡單入門,應急用。
另外,python搭建的mock server性能有限,如需高性能mock server,推薦java版mock。
只需一個jar包,一個json配置文件,即可
Linux下啟動服務:nohup java -jar moco-runner-0.11.0-standalone.jar http -p 5858 -c conf.json > /home/mock_runner/mock.log &jar包可在此下載:http://note.youdao.com/noteshare?id=4094b776f4749ede8665b4e7da38df5f&sub=0DD8BF1BB43247D182F2FEC3FBBB24D6
json配置文件參考:
[
{
“response” :
{
“text” : “Hello, Moco”
}
}
]
===========================================================================================================