Flask-mock接口数据流程

背景:由于在开发过程中,会遇到以下的痛点
1.服务端接口提测延期,具体接口逻辑未完成实现,接口未能正常调通,导致客户端提测停滞;
2.因为前期已在技术评审上已与客户端开发定好接口字段,客户端比后端更早完工,就差接口联调;
3.测试客户端主要是在接口数据多样性上,保证接口返回的数据都做好处理,如按真实造数据流程会导致测试效率低;

解决办法:使用mock接口数据去测试客户端页面,提早介入测试
使用工具:
1.抓包工具(Charles、fidder)断点mock、Map_local
2.接口测试工具postman apifox
3.python flask

之前是用Charles使用本地数据去mock,但是有不方便的地方,如果对传参进行判断要弄多个文件,或者多个场景的数据,比较琐碎,
所以现在用flask解决,记录一下。

1.安装flask

pip install flask

然后就可以开始写接口了

# -*- coding: utf-8 -*-
# @Author : Shaox
# @Software: PyCharm
import os
import sys
basedir2=os.path.dirname(os.path.dirname(__file__))
sys.path.append(basedir2)
import flask
from flask import Flask,request, abort
from tools import *
from tools.http_request import Http_request
import json

logger = AutoLogger()
app= flask.Flask(__name__)
#解决flask接口返回的内容中文乱码的问题解决方式
app.config['JSON_AS_ASCII'] = False

#POST的接口demo
@app.route('/badge/wearBadge',methods=['POST'])
def wearBadge_mock():
    if request.method == 'GET':
        abort(404)
    weartype = int(request.form["wearType"])
    print(weartype)
    print(type(weartype))
    if weartype == 1:
        data = {"ret": "0","msg": "成功","data": {"imageurl": "https://badge/84ba81a058f94a26a496900c391e1e11.jpeg","badgeid": 1000011}}
        return json.dumps(data)
    elif weartype == 0:
        data = {"ret": "0","msg": "摘掉成功","data": None}
        return json.dumps(data)
    else:
        data = {"ret": "123245","msg": "失败","data": None}
        return json.dumps(data)
        
#GET的接口demo
@app.route('/badge/userWearInfo', methods=['GET'])
def userWearInfo_mock():
    # mock场景1:请求方法错误,返回404
    if request.method == 'POST':
        abort(404)
    else:
        try:
            getUserInfo = request.args.get('getUserInfo')
            if getUserInfo == 0:
                data = { "ret": "0", "msg": "成功", "data": { "uid": 12345, "nick": "库明加", "faceUrl": "http://u_123522281_avatar_230304_143335599.jpg", "gender": 1, "badgeAllNum": 32, "badgePercent": "", "badgeWearInfo": { "imageurl": "http://badge/2003pace_c.png", "badgeId": 200207 } } }
                return json.dumps(data)
            else:
                data = {"ret":"0","msg":"成功","data":{"uid":110,"nick":"库里","faceUrl":"http://u_123522281_avatar_230304_143335599.jpg","gender":1,"badgeAllNum":32,"badgePercent":"","badgeWearInfo": None}}
                return json.dumps(data)
        except:
            data = {"ret": 500, "msg": "服务器离家出走", "data": None}
           	return json.dumps(data)

if __name__ == "__main__":
    app.run(host='0.0.0.0')

等falsk服务跑起来就可以用抓包工具把测试环境的域名接口转发到本地flask服务mock接口
在这里插入图片描述
只是简单的demo,后续可以写更多获取数据源的方法,随机生成不同的数据,增加数据上的多样性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值