遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

一个简单的mock server

在前后端分离的项目中,

前端无需等后端接口提供了才调试,

后端无需等第三方接口提供了才调试,

基于“契约”,可以通过mock server实现调试,

下面是一个简单的mock server,通过python的Flask框架实现,

 mock_test.py

from flask import Flask, jsonify, g
import copy
app = Flask(__name__)

@app.before_request
def set_up_data():
    g.data = [
        {'id': 1, 'uname': 'tom'},
        {'id': 2, 'uname': 'jcck'},
        {'id': 3, 'uname': 'lucy'}
    ]

    g.user_does_not_exist = {"msg": "user does not exist"}

@app.route('/api/user')
def get_all_users():
    return jsonify(g.data)

@app.route('/api/user/<int:user_id>')
def get_user(user_id):
    if user_id > 0 and user_id <= len(g.data):
        return jsonify(g.data[user_id-1])
    else:
        return jsonify(g.user_does_not_exist)

  

 

# set FLASK_APP=mock_test.py
# flask run

 

获取所有用户:

http://localhost:5000/api/user 

获取指定用户:

http://localhost:5000/api/user/2

 

非法字符:

http://localhost:5000/api/user/a

 

改进mock_test.py

from flask import Flask, jsonify, g
import copy
app = Flask(__name__)
 
@app.before_request
def set_up_data():
    g.data = [
        {'id': 1, 'uname': 'tom'},
        {'id': 2, 'uname': 'jack'},
        {'id': 3, 'uname': 'lucy'}
    ]
 
    g.user_does_not_exist = {"code":"01", "msg": "user does not exist"}
 
@app.route('/api/user')
def get_all_users():
    print(type(jsonify(g.data)))
    # return jsonify(g.data)
    return jsonify({"code":"00", "msg":g.data})
 
@app.route('/api/user/<int:user_id>')
def get_user(user_id):
    if user_id > 0 and user_id <= len(g.data):
        # return jsonify(g.data[user_id-1])
        return jsonify({"code":"00","msg":g.data[user_id-1]})
    else:
        return jsonify(g.user_does_not_exist)


# set FLASK_APP=mock_test.py
# flask run

 

posted @ 2017-08-18 00:13  全栈测试笔记  阅读(784)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end