Flask-mock接口数据流程

news2024/10/7 6:39:15

背景:由于在开发过程中,会遇到以下的痛点
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,后续可以写更多获取数据源的方法,随机生成不同的数据,增加数据上的多样性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/403659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯-筑基篇】基础数学思维与技巧(2)

🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 🍪1.判断素数🍪 🥦2.大整数🥦 🍋3.求n的约数个数🍋 🍉4.数学归纳法🍉 🍓5.阶乘之和&#x1f3…

使用 typora软件 编写 markdown 写作的技巧

typora 编写 markdown 写作的技巧 作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 使用typora 编写 markdown 写作的时间久了后,会发现一些技巧 ,分享给大家 …

LeetCode206_206. 反转链表

LeetCode206_206. 反转链表 一、描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出&…

结构体内存大小

000、前言 要想计算结构体内存大小,就会涉及到一个结构体内存对齐的问题,而不是对其成员进行简单的加运算 (1)在写本博客之前 有位同学和我讨论了一个学校的题目,题目如下: 我借这道题目问了另外一位同…

JS学习笔记day05(完结)!

今日内容 零、 复习昨日 一、作业 二、BOM 三、定时器 四、正则表达式 零、 复习昨日 事件 事件绑定方式鼠标事件 onmouseoveronmouseoutonmousemove 键盘事件 onkeydownonkeyuponkeypress 表单事件 onfocusonbluronchangeonsubmit 页面加载事件 onload dom dom树查找dom do…

what data contract

URLS 笔记内容主要来自 https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/scenarios/cloud-scale-analytics/architectures/data-contracts Data contracts Data contracts are similar to service contracts or data delivery contracts.A contract also…

One-YOLOv5 v1.2.0发布:支持分类、检测、实例分割

One-YOLOv5 v1.2.0正式发布。完整更新列表请查看链接:https://github.com/Oneflow-Inc/one-yolov5/releases/tag/v1.2.0,欢迎体验新版本,期待你的反馈。 1 新版本特性 1. 同步了Ultralytics YOLOv5的上游分支v7.0,同时支持分类、目…

多校园SaaS运营智慧校园云平台源码 智慧校园移动小程序源码

智慧校园管理平台源码 智慧校园云平台源码 智慧校园全套源码包含:电子班牌管理系统、成绩管理系统、考勤人脸刷卡管理系统、综合素养评价系统、请假管理系统、电子班牌发布系统、校务管理系统、小程序移动端、教师后台管理系统、SaaS运营云平台(支持多学…

每天学一点之Stream流相关操作

StreamAPI 一、Stream特点 Stream是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。“集合讲的是数据,负责存储数据,Stream流讲的是计算,负责处理数据!” 注意: ①Str…

Java面试总结(六)

进程和线程的区别 根本区别: 进程时操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。 资源开销: 每个进程都有自己独立的代码和数据空间(程序上下文),进程之间的切换开销比较大&…

狂扫近300万读者,蟒蛇书升级版即将出版,招募审读人

狂扫全世界近 300 万爱好者成为编程领域的现象级爆品豆瓣累计超过 5000 人评价第2版中文版获得了 9.3 分的好评Amazon 近 10000 人评价第2版原版获得了 4.7 星好评毫不夸张,它是全世界读者心中的 Python 入门圣经因为封面上是一只蠢萌的蟒蛇这本书又被读者亲切地称为…

SQL注入——文件上传

目录 一,mysql文件上传要点 二,文件上传指令 一句话木马 三,实例 1,判断注入方式 2,测试目标网站的闭合方式: 3,写入一句话木马 4,拿到控制权 一,mysql文件上传…

【面试系列】volatile的底层原理

并发编程的三大特性 原子性可见性原子性 JAVA内存模型 Java内存模型(Java Memory Model)主要分为主内存和线程工作内存。 主内存:方法区和堆空间 线程工作内存:虚拟机栈,本地方法栈,程序计数器。 所有…

centos安装docker详细步骤

目录 一.前言 1.环境要求2.官网中文安装参考手册 二.安装步骤 1.卸载旧版本2.安装需要的软件包3.设置docker镜像源 1.配置docker镜像源 方式1:官网地址(外国):方式2:阿里云源:2.查看配置是否成功 4.更新yum软件包索引5.可以查看…

C++ | 探究函数重载的原理:函数名修饰【基于Windows + Linux双系统】

文章目录一、前言【中国乒乓和中国男足】【文言文一词多义】二、函数重载概念引入1、参数【类型】不同构成重载2、参数【个数】不同构成重载3、参数【类型顺序】不同构成重载三、函数重载的原理1、回顾程序编译 链接的过程2、Linux下【objdump】查看反汇编3、Windows下反汇编查…

Maven安装与配置,IDEA配置Maven

文章目录1. 安装本地Maven2. 安装3. 配置环境变量4. 配置settings.xml文件5. IDEA配置1. 安装本地Maven 官网下载:https://maven.apache.org/download.cgi 2. 安装 把下载好的maven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹,…

数据结构与算法基础(王卓)(15):KMP算法详解(含速成套路和详细思路剖析)

如果时间不够,急(忙)着应付考试没心思看,直接参考(照抄)如下套路: PART 1:关于next [ j ] PPT:P30 根据书上以及视频上给出的思路(提醒)&#x…

JSONP劫持

注意:仅用于技术讨论,切勿用于其他用途,一切后果与本人无关!!! 个人博客地址:HJW个人博客 扩展: 面试问题:CSRF的两种方法中,CORS和JSONP的区别&#xff1…

dubbo进阶——服务导出

服务导出 在这里记录一下对" Dubbo 导出服务的过程"的研究。 触发时机 public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean, ApplicationContextAware, ApplicationListener<ContextRefreshedEv…

代码随想录--数组--螺旋矩阵题型

n等于几&#xff0c;螺旋矩阵最外层行列数就等于几。如n等于3所以最外层一圈的行、列都是3个数字&#xff0c;如左图&#xff0c;n等于4所以最外层的行、列都是4个数字&#xff0c;如右图&#xff1a; 题目要求我们输出(以n3为例)[[123][894][765]]&#xff0c;题目只是给我们一…