如何mock返回数据结果

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

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

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

如何mock返回数据结果

1)找到要修改的接口

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

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

如何mock返回数据结果

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

如何mock返回数据结果

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')

如何mock返回数据结果

如何mock返回数据结果

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文件

如何mock返回数据结果

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

# @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)

 

上一篇:数据库多行转一行


下一篇:asp.net mvc 接入最新支付宝支付+退款