Python+Flask搭建mock api serverpython
近期因爲工做須要,須要一個Mock Server調用接口直接返回API結果;json
假如能夠先經過接口文檔的定義,本身模擬出服務器返回結果,直接對接口基本功能進行聯調測試並編寫自動化測試腳本,等服務器上線以後,切換server地址,直接能夠簡化調試時間,縮短項目測試周期;flask
Python安裝api
Flask安裝:pip install flask服務器
from flask import abort, jsonify, Flask, request, Response app = Flask(__name__) #app.config['SERVER_NAME']='test.wondershare.mock' tasks1 = { "data": { "loginName": "aaaaaa", "roles": 1, "permissions": 1, "active": 1 } "statusText": "成功1", "timestamp": "1500531770453", "success": 1 } tasks2 = { "data": { "loginName": "bbbbbb", "roles": 2, "permissions": 2, "active": 2 } "statusText": "成功2", "timestamp": "1500531770453", "success": 2 } error = { "data": {}, "statusText": "沒有找到對應接口", "timestamp": "1500531770453", "success": 0 } #定義路由 @app.route('/v1/testMock', methods=['GET', 'POST']) def testMock(): try: if request.method == 'GET': #獲取地址中test參數的值 test = request.args.get('test') if test == '1': return jsonify(tasks1) elif test == '2': return jsonify(tasks2) else: return jsonify(error) else: test = request.form.get('test') if test == '3': return jsonify(tasks1) elif test == '4': return jsonify(tasks2) else: return jsonify(error) except IOError: return("Error:報錯了!!!") else: return jsonify(error) if __name__ == "__main__": app.run( host = "127.0.0.1", port = 80, debug = True )
啓動服務:app
test.py爲上述代碼保存文件名python test.py
http://127.0.0.1/v1/testMock?test=1測試
默認Flask調用jsonify返回結果是utf8,若是須要返回支持中文顯示,只須要在app = Flask(name)下增長一行:spa
app.config['JSON_AS_ASCII'] = False