Python+Flask搭建mock api server

Python+Flask搭建mock api serverpython

前言:

近期因爲工做須要,須要一個Mock Server調用接口直接返回API結果;json

假如能夠先經過接口文檔的定義,本身模擬出服務器返回結果,直接對接口基本功能進行聯調測試並編寫自動化測試腳本,等服務器上線以後,切換server地址,直接能夠簡化調試時間,縮短項目測試周期;flask

準備工做

Python安裝api

Flask安裝:pip install flask服務器

準備代碼

簡單的python代碼

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返回的json串支持中文顯示:

默認Flask調用jsonify返回結果是utf8,若是須要返回支持中文顯示,只須要在app = Flask(name)下增長一行:spa

app.config['JSON_AS_ASCII'] = False
相關文章
相關標籤/搜索