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