Python+Flask搭建mock api server

前言:

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

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

准备工作

Python安装

Flask安装:pip install flask

准备代码

简单的python代码

# encoding: utf-8from flask import abort, jsonify, Flask, request, Response

app = Flask(__name__)#定义域名,然后通过配置hosts的方式访问此域名下对应的接口app.config['SERVER_NAME']='test.wondershare.mock'

tasks1 = {
    "data": {
        "loginName": "aaaaaa",
        "roles": 1,
        "permissions": 1,
        "active": 1
    },
    "stateCode": {
        "code": 1,
        "desc": "成功1"
    },
    "statusText": "成功1",
    ",
    "success": 1
}
tasks2 = {
    "data": {
        "loginName": "bbbbbb",
        "roles": 2,
        "permissions": 2,
        "active": 2
    },
    "stateCode": {
        "code": 2,
        "desc": "成功2"
    },
    "statusText": "成功2",
    ",
    "success": 2
}
error = {
    "data": {},
    "stateCode": {
        "code": 500,
        "desc": "没有找到对应接口"
    },
    "statusText": "没有找到对应接口",
    ",
    "success": 0
}

#定义路由
@app.route('/v1/testMock', methods=['GET', 'POST'])
def testMock():
    try:
        if request.method == 'GET':
            #获取地址中test参数的值
            test = request.args.get('test')
            ':
                return jsonify(tasks1)
            ':
                return jsonify(tasks2)
        else:
            test = request.form.get('test')
            ':
                return jsonify(tasks1)
            ':
                return jsonify(tasks2)
    except IOError:
        return("Error:报错了!!!")
    else:
        return jsonify(error)

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

启动服务:

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

接口调用测试:

http://127.0.0.1/v1/testMock?test=1

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

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

app.config['JSON_AS_ASCII'] = False
 
 

最新文章

  1. NOIP2006能量项链[环形DP]
  2. java枚举使用详解
  3. Java学习笔记 第一章 入门<转>
  4. 团队项目--站立会议 DAY4
  5. JDBC工作模块
  6. DTRACE 专家
  7. poj2245Lotto(最基础的dfs)
  8. (一)一起学 Java Collections Framework 源码之 概述
  9. grunt学习笔记1 理论知识
  10. 关于JavaScript的事件处理一些知识
  11. 【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期
  12. css3的动画
  13. Android:JNI强化训练
  14. 超详细从零记录Hadoop2.7.3完全分布式集群部署过程
  15. elasticsearch in docker/ and aggregation,,performance tune ;throughout
  16. XML系列之--创建电文格式的XML(一)
  17. 十五分钟介绍 Redis数据结构
  18. Ubuntu 14.04 LTS 火狐浏览器中,鼠标选择文字被删除的解决办法
  19. jQuery ajax 添加头部参数跨域
  20. 三:vim常用快捷键

热门文章

  1. Golang 介绍与安装
  2. Docker 命令查询
  3. 【BZOJ4013】[HNOI2015]实验比较(动态规划)
  4. ios端position为fixed失效的解决办法
  5. Linux-进程管理
  6. MySQL逻辑备份mysqldump
  7. 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比
  8. Java IO系列之三:NIO VS IO
  9. js下拉框:从数组中筛选出匹配的数据
  10. 【ShaderToy】抗锯齿相关函数