mock搭建——python——搭建一個簡單的mock服務——簡單版本


參考: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”

}

}

]
===========================================================================================================


免責聲明!

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



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