如何mock返回数据结果

目的:学习如何mock返回数据结果

场景:前端完成,后端接口还没有完成的时候,可以模拟返回数据,或者需要模拟第三方支付接口的时候

方法一:通过fiddler、charles抓包工具,修改返回值。这里以charles为例

1)找到要修改的接口

2)右键save response,保存json文件到本地

3)使用编辑器修改返回数据,可以增加或者减少条数,如图:我使用的是editplus

4)点击charles工具-tools-map local。获取本地文件

5)再次请求接口的时候,就能看的修改的数据了

方法二:flask框架模拟返回数据

此方法是我自学视频的,有不对的欢迎指出。使用的是flask框架

1)安装flask,并启动flask程序

pip install flask

启动flask服务:

from flask import Flask, request
import json
# 实例化测试对象
app = Flask(__name__)
# 添加请求路径
@app.route(/)
def hello():
   return <h1>hello world</h1>


if __name__ == __main__:
# 设置端口,防止冲突
    app.run(127.0.0.1, 9900)

2)请求mock_client文件,并在mock_server文件中添加post路径

# form格式的请求
@app.route(/post, methods=[POST])
def run():
    n1 = request.form[id]
    n2 = request.form[name]
    return n1+n2
import requests
body = {
    id: 123,
    name: 12345
 }
res = requests.post(http://127.0.0.1:9900/post, data=body)
print(res.text)

运行client文件

下面是完整的文档内容,给大家分享一下

# @Time : 2021-02-01 15:06 

# @Author : xx

from flask import Flask, request
import json
# request做业务操作的,不是http请求
# 实例化测试对象
app = Flask(__name__)


# 添加请求路径
@app.route(/)
def hello():
    return <h1>hello world</h1>

# # form格式的请求
# @app.route(/post, methods=[POST])
# def run():
#     n1 = request.form[id]
#     n2 = request.form[name]
#     return n1+n2


# json格式的请求
@app.route(/purchaser/, methods=[POST])
def json_post():
    res = json.loads(request.get_data())
    out_trade_no = res[out_trade_no]

    res_data = {
        "code": "10000",
        "msg": "Success",
        "out_trade_no": "20150423001001",
        "trade_no": "2015042321001004720200028594"
    }
    if res_data[out_trade_no] != out_trade_no:
        return 请求失败,out_trade_no不正确
    return res_data


if __name__ == __main__:
    app.run(127.0.0.1, 9900)
# @Time : 2021-02-01 15:20 

# @Author : lqw -学习mock数据
import requests
# body = {
#     id: 123,
#     name: 12345
# }
# res = requests.post(http://127.0.0.1:9900/post, data=body)
# print(res.text)

# 模拟json请求格式
json_data = {
    out_trade_no: 1612166664837,
    total_amount: 88.88,
    subject: 水杯,
    buyer_logon_id: 1232134543,
    buyer_id: 145644453
}

res =requests.post(http://127.0.0.1:9900/purchaser, json=json_data)
print(res.text)
经验分享 程序员 微信小程序 职场和发展