Python+Flask搭建mock api server

Posted ai594ai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+Flask搭建mock api server相关的知识,希望对你有一定的参考价值。

Python+Flask搭建mock api server

前言:

近期由于工作需要,需要一个Mock Server调用接口直接返回API结果;

假如可以先通过接口文档的定义,自己模拟出服务器返回结果,直接对接口基本功能进行联调测试并编写自动化测试脚本,等服务器上线之后,切换server地址,直接可以简化调试时间,缩短项目测试周期;

准备工作

Python安装

Flask安装:pip install flask

Get 请求

简单的python代码

from flask import abort, jsonify, Flask, request, Response

app = Flask(__name__)

tasks = {
    "data": {
        "loginName": "admin",
        "roles": 1,
        "permissions": 1,
        "active": 1
    },
    "stateCode": {
        "code": 0,
        "desc": "成功"
    },
    "statusText": "成功",
    "timestamp": "1500531770453",
    "success": 1
}

@app.route("/task", methods=[GET])
def get_all_task():
    return jsonify(tasks)
    
if __name__ == "__main__":
    if __name__ == "__main__":
    app.run(
        host = "127.0.0.1",
        port = 8989,
        debug = True
        )

 

启动服务:

python test.py (test.py为上述代码保存文件名)

接口调用测试:

http://127.0.0.1:8989/task

Post请求

Post方式由于需要传递参数,并且有多种不同类型,比如json比如表单等,本文就不细说只是一篇入门;

from flask import abort, jsonify, Flask, request, Response

app = Flask(__name__)

tasks = {
    "data": {
        "loginName": "admin",
        "roles": 1,
        "permissions": 1,
        "active": 1
    },
    "stateCode": {
        "code": 0,
        "desc": "成功"
    },
    "statusText": "成功",
    "timestamp": "1500531770453",
    "success": 1
}

@app.route(/v1/testMock, methods=[GET, POST])
def app_call_back():
    if request.method == GET:
        return jsonify(tasks)
    else:
        test_data = request.form[params]
        return jsonify(test_data)

if __name__ == "__main__":
    app.run(
        host = "127.0.0.1",
        port = 8989,
        debug = True
        )

接口调用测试:

http://127.0.0.1:8989/v1/testMock?params=test_mock

 

Flask让jsonify返回的json串支持中文显示:

默认Flask调用jsonify返回结果是utf8,如果需要返回支持中文显示,只需要在app = Flask(name)下增加一行:

app.config[‘JSON_AS_ASCII‘] = False

 

 
 

以上是关于Python+Flask搭建mock api server的主要内容,如果未能解决你的问题,请参考以下文章

python-flask框架&mock接口开发

Python之mock接口开发

Python之mock接口开发

Python学习笔记5-利用flask来mock接口

Mock接口数据 = mock服务 + iptable配置

Mock