zoukankan      html  css  js  c++  java
  • 1分钟搭建极简mock server

    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": "1526351",
            "serviceMode": "10",
            "waybillStatus": "10",
            "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"
    }
    }
    ]
  • 相关阅读:
    linux 下常用命令
    Mysql 数据库几种引擎的区别比较
    java 中使用ajax调用后台方法注意事项
    C# HtmlDocument和HtmlNode的使用以及节点的模糊查询
    Visio 保存卡死解决办法
    java outterLoop跳出多重循环用法以及详解
    webapi 文件下载输出接口
    获取web.config 内的值
    xml的读取(曾删改)
    from 验证
  • 原文地址:https://www.cnblogs.com/mikasama/p/9838480.html
Copyright © 2011-2022 走看看