1、无聊的背景、起源:

如今的业务系统越来越复杂庞大,各个功能直接的调用也是多如牛毛,但如果在联调的时候,恰好被调的接口正在开发,怎么办?傻傻的等么,不存在的!这时会搭建一些server来进行mock。使得被开发功能的调试和测试功能能够正常进行下去。这就是mock server的出现的原因。

网上找了张图片,可以很好的解释mock server的作用:

来来来,搞起来

2、搭建mock server

2.1、安装flask

pip install flask(本文只需flask)

2.2、代码实现,新建my_mock_server.py,填入下列代码

# /usr/bin/env python
# -*- coding:utf-8 -*- from flask import abort, jsonify, Flask, request, Response app = Flask(__name__)
# 增加配置,支持中文显示
app.config['JSON_AS_ASCII'] = False tasks = {
"code": 0,
"msg": "OK",
"data": {
"waybillNumber": "",
"serviceMode": "",
"waybillStatus": "",
"deliveryAbbreviationAddress": "深圳",
"pickupAbbreviationAddress": "深圳"
},
"traceId": "dp1r"
} @app.route('/task', methods=['GET','POST'])
def get_task():
return jsonify(tasks) if __name__ == '__main__':
app.run(
host = '0.0.0.0',
port = 6868,
debug = True
)

一言以蔽之:利用flask的api服务实现mock server功能

简要说明:

tasks字典,存储你的response,而这个tasks是通过下面的函数get_task实现的。

get_task函数前面增加了装饰器,是定义了访问路由,即访问ip:端口/task,即可访问。

jsonify方法将字典转换为json返回给前端。

类似的,可以定义各种task和访问路由,以实现不同的mock功能

2.3、运行mock_server.py

python my_mock_server.py

网页打开:

postman访问:get/post

可以看到,因为没有定义参数,所以无论传不传参,接口照常访问

至此,极简mock server就搭建完毕。

后话,功能单一,适用场景有限。如果想实现更多共,可以网上找找资料,此为简单入门,应急用。

另外,python搭建的mock server性能有限,如需高性能mock server,推荐java版mock。

只需一个jar包,一个json配置文件,即可
Linux下启动服务:nohup java -jar moco-runner-0.11.0-standalone.jar http -p 5858 -c conf.json > /home/mock_runner/mock.log &jar包可在此下载:http://note.youdao.com/noteshare?id=4094b776f4749ede8665b4e7da38df5f&sub=0DD8BF1BB43247D182F2FEC3FBBB24D6
json配置文件参考:
[
{
"response" :
{
"text" : "Hello, Moco"
}
}
]

最新文章

  1. 更简单地进行Auto Layout--SnapKit 支持swift
  2. CSS设置技巧
  3. OpenGL中各种坐标系的理解[转]
  4. 在EDK里面添加ISE IP core的方法
  5. JavaScript各种遍历方式详解
  6. Python中metaclass解释
  7. Coin Toss
  8. 关于 cookie 使用中遇到的问题
  9. POI读取excel工具类 返回实体bean集合(xls,xlsx通用)
  10. 补习系列(1)-springboot项目基础搭建课
  11. [ZZ] 边缘检测 梯度与Roberts、Prewitt、Sobel、Lapacian算子
  12. JS 中 ~~符号
  13. Linux 小知识翻译 - 「虚拟化技术」
  14. centos6.8下搭建编译openwrt的环境
  15. [UE4]通过代码改变材质
  16. Fortran 数据类型
  17. 【转】jquery checkbox勾选/取消勾选的诡异问题
  18. php 常用的系统函数
  19. ControllerDescriptor的认识
  20. IBM AppScan安全測试一例——已解密的登录请求

热门文章

  1. 【Linux-学习笔记-不定期更新】
  2. spring @Async 线程池使用
  3. 一、SpringBoot是什么?
  4. 201621123012 《Java程序设计》第7周学习总结
  5. 【ARC075F】Mirrored 搜索/数位dp
  6. Python之路Python内置函数、zip()、max()、min()
  7. 通用动态树(Link-Cut Tree)模板
  8. IPython&Jupyter私房手册
  9. centos用ifconfig不显示ip地址的解决方法
  10. RNA-seq分析htseq-count的使用