当前位置: 首页 > news >正文

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 jsonlogger = 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:请求方法错误,返回404if 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,后续可以写更多获取数据源的方法,随机生成不同的数据,增加数据上的多样性。

相关文章:

Flask-mock接口数据流程

背景:由于在开发过程中,会遇到以下的痛点 1.服务端接口提测延期,具体接口逻辑未完成实现,接口未能正常调通,导致客户端提测停滞; 2.因为前期已在技术评审上已与客户端开发定好接口字段,客户端比…...

springboot项目配置序列化,反序列化器

介绍本文介绍在项目中时间类型、枚举类型的序列化和反序列化自定义的处理类,也可以使用注解。建议枚举都实现一个统一的接口,方便处理。我这定义了一个Dict接口。枚举类型注解处理这种方式比较灵活,可以让枚举按照自己的方式序列化&#xff0…...

c++11 标准模板(STL)(std::unordered_map)(九)

定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…...

Seay代码审计工具

一、简介Seay是基于C#语言开发的一款针对PHP代码安全性审计的系统&#xff0c;主要运行于Windows系统上。这款软件能够发现SQL注入、代码执行、命令执行、文件包含、文件上传、绕过转义防护、拒绝服务、XSS跨站、信息泄露、任意URL跳转等漏洞&#xff0c;基本上覆盖常见PHP漏洞…...

界面开发(4)--- PyQt5实现打开图像及视频播放功能

PyQt5创建打开图像及播放视频页面 上篇文章主要介绍了如何实现登录界面的账号密码注册及登录功能&#xff0c;还简单介绍了有关数据库的连接方法。这篇文章我们介绍一下如何在设计的页面中打开本地的图像&#xff0c;以及实现视频播放功能。 实现打开图像功能 为了便于记录实…...

核心系统国产平台迁移验证

核心系统国产平台迁移验证 摘要&#xff1a;信息技术应用创新&#xff0c;旨在实现信息技术领域的自主可控&#xff0c;保障国家信息安全。金融领域又是关系国家经济命脉的行业&#xff0c;而对核心交易系统的信息技术应用创新是交易所未来将要面临的重大挑战。为了推进国产化进…...

【数据结构之二叉树】——二叉树的概念及结构,特殊的二叉树和二叉树性质

文章目录一、二叉树的概念及结构1.概念2.现实中的二叉树3. 特殊的二叉树&#xff1a;3.二叉树的性质二、二叉树练习题总结一、二叉树的概念及结构 1.概念 一棵二叉树是结点的一个有限集合&#xff0c;该集合: 或者为空由一个根节点加上两棵别称为左子树和右子树的二叉树组成…...

Android学习之帧动画和视图动画

帧动画 帧动画中的每一帧其实都是一张图片&#xff0c;将许多图片连起来播放&#xff0c;就形成了帧动画。 在drawable目录下新建frmae_animation文件&#xff0c;在这个文件中定义了帧动画的每一帧要显示的图片&#xff0c;播放时&#xff0c;按从上到下显示。 <?xml v…...

vue2和vue3的区别

这周呢主要就是整理整理学的东西&#xff0c;不然看的也记不住&#xff0c;把这些学的东西做成笔记&#xff0c;感觉会清楚许多&#xff0c;这次就把vue2和vue3的区别总结一下&#xff0c;明天要考四级&#xff0c;嗐&#xff0c;本来想着复习四级&#xff0c;结果只写了一两套…...

【你不知道的事】JavaScript 中用一种更先进的方式进行深拷贝:structuredClone

你是否知道&#xff0c;JavaScript中有一种原生的方法来做对象的深拷贝? 本文我们要介绍的是 structuredClone 函数&#xff0c;它是内置在 JavaScript 运行时中的: const calendarEvent {title: "Builder.io Conf",date: new Date(123),attendees: ["Steve…...

XE开发Linux应用(二)-Webservice

新建一个工程。选择如图。继续输入服务名然后就生成对应的单元。增加linux 平台。完善对应的单元代码{ Invokable implementation File for Txaliontest which implements Ixaliontest }unit xaliontestImpl;interfaceuses Soap.InvokeRegistry, System.Types, Soap.XSBuiltIns…...

kubernetes实战与源码学习

1.1 关于Kubernetes的介绍与核心对象概念 关于Kubernetes的介绍与核心对象概念-阿里云开发者社区 k8s架构 核心对象 使用kubeadm10分钟部署k8集群 使用 KuboardSpray 安装kubernetes_v1.23.1 | Kuboard k8s-上部署第一个应用程序 Deployment基本概念 给应用添加service&a…...

CNCF x Alibaba云原生技术公开课 第八章 应用配置管理

Pod配置管理分类 可变配置就用 ConfigMap&#xff1b;敏感信息是用 Secret&#xff1b;身份认证是用 ServiceAccount&#xff1b;资源配置是用 Resources&#xff1b;安全管控是用 SecurityContext&#xff1b;前置校验是用 InitContainers。 1、ConfigMap 概念&#xff1a;…...

YUV实践记录

文章目录YUV基础介绍&#xff1a;不同采样YUV格式的区别为什么要使用YUV格式呢&#xff1f;YUV的存储方式Android中的YUV_420_888附录&#xff1a;YUV基础介绍&#xff1a; YUV在做手机图像或者视频处理的时候会经常用到的一个格式&#xff0c;用此文来记录YUV相关介绍&#xf…...

【题解】百度2020校招Web前端工程师笔试卷(第一批):单选题、多选题

题目来源 若有错误请指正&#xff01; 单选 1 分页存储管理将进程的逻辑地址空间分成若干个页&#xff0c;并为各页加以编号&#xff0c;从0开始&#xff0c;若某一计算机主存按字节编址&#xff0c;逻辑地址和物理地址都是32位&#xff0c;页表项大小为4字节&#xff0c;若…...

探索云原生技术之容器编排引擎-kubeadm安装kubernetes1.21.10(新版:针对高版本内核)

❤️作者简介&#xff1a;2022新星计划第三季云原生与云计算赛道Top5&#x1f3c5;、华为云享专家&#x1f3c5;、云原生领域潜力新星&#x1f3c5; &#x1f49b;博客首页&#xff1a;C站个人主页&#x1f31e; &#x1f497;作者目的&#xff1a;如有错误请指正&#xff0c;将…...

2023广西自治区职业技能大赛“网络安全” 项目比赛任务书

2023广西自治区职业技能大赛“网络安全” 项目比赛任务书2023广西自治区职业技能大赛“网络安全” 项目比赛任务书A模块基础设施设置/安全加固&#xff08;200分&#xff09;A-1&#xff1a;登录安全加固&#xff08;Windows, Linux&#xff09;A-2&#xff1a;Nginx安全策略&a…...

Reactor模式

Reactor是一种设计模式&#xff0c;可以用于构建高并发的网络服务器。 Reactor模式的好处在于&#xff1a;可以在一个或多个reactor线程使用多路复用技术去管理所有网络连接连接建立、IO请求&#xff0c;保证工作线程不被IO阻塞。 前置知识&#xff1a;IO多路复用技术 1. 传统网…...

Git图解-IDEA中的Git操作

目录 一、配置Idea 二、项目克隆 三、文件状态识别 四、Git操作 4.1 git add--添加暂存区 4.2 git commit--提交本地仓库 4.3 git push--推送远程仓库 4.4 git pull--更新本地仓库 五、完整开发流程 5.1 步骤1&#xff1a;克隆项目 5.2 步骤2&#xff1a;创建自己开发…...

在一个web应用中应该如何完成资源的跳转

在一个web应用中通过两种方式&#xff0c;可以完成资源的跳转&#xff1a; 第一种方式&#xff1a;请求转发 第二种方式&#xff1a;重定向 转发和重定向的区别&#xff1a; 代码上的区别&#xff1a; 请求转发 // 获取请求转发器对象 RequestDispatcher dispatcher request.…...

开源 AI 应用平台实战部署:从零搭建到插件调试避坑指南

1. 开源AI平台部署前的环境准备 在开始部署Dify和AIFlowy之前&#xff0c;环境准备是至关重要的一步。我遇到过不少开发者因为基础环境没配好&#xff0c;导致后续步骤频繁报错的情况。这里分享下Windows和Linux双平台下的实战经验。 对于Dify平台&#xff0c;你需要准备Python…...

电动汽车工程师视角:碳化硅模块在电驱系统中的应用实战(含热管理设计)

碳化硅功率模块在电动汽车电驱系统中的工程实践 当一辆搭载碳化硅逆变器的电动汽车从静止加速到100km/h时&#xff0c;功率模块内部的温度变化可能超过100℃。这种极端工况正是第三代半导体材料大显身手的舞台。作为参与过多个量产项目的电驱系统工程师&#xff0c;我想分享一些…...

深入理解Matplotlib中的plt、fig、axes与axis:从基础到高级应用

1. Matplotlib绘图基础&#xff1a;从plt到figure的认知跃迁 第一次接触Matplotlib时&#xff0c;最让人困惑的就是plt.plot()和ax.plot()到底有什么区别。这就像学做菜时&#xff0c;有人告诉你"用锅炒菜"和"先用电磁炉加热再放锅炒菜"两种方式都能做出青…...

**Modbus协议深度解析:基于Python的TCP通信实战与发散创新应用**在工业自动化领域,**Modbus协议

Modbus协议深度解析&#xff1a;基于Python的TCP通信实战与发散创新应用 在工业自动化领域&#xff0c;Modbus协议因其简单、稳定和开放性成为最广泛使用的串行通信标准之一。本文将从底层原理出发&#xff0c;深入剖析 Modbus TCP 的数据帧结构&#xff0c;并结合 Python 实现…...

程序员巫术:用玩偶诅咒删库的同事

——软件测试从业者的专业反思与健康应对在软件开发的战场上&#xff0c;测试工程师常被视为“质量守门人”&#xff0c;肩负着拦截缺陷、守护产品稳定的重任。然而&#xff0c;当一位愤怒的测试员掏出针线缝制玩偶&#xff0c;试图用“巫术”诅咒那位鲁莽删库的同事时&#xf…...

PostgreSQL 冻结(Freeze)机制深度解析

PostgreSQL 冻结&#xff08;Freeze&#xff09;机制深度解析一、为什么需要冻结 1.1 事务 ID 的本质 PostgreSQL 用 32 位无符号整数表示事务 ID&#xff08;XID&#xff09;&#xff0c;范围 0 ~ 2^32-1&#xff08;约 42 亿&#xff09;。 其中有三个特殊 XID&#xff1a;XI…...

SEO_2024年最新SEO策略与趋势深度解析(162 )

<h1 id"2024seo">2024年最新SEO策略与趋势深度解析</h1> <h2 id"seo">前言&#xff1a;SEO的重要性不减速</h2> <p>在数字化时代&#xff0c;网络已成为信息传播、商业营销和客户互动的重要平台。搜索引擎优化&#xff08;S…...

Maxwell16.0实战:如何用实验电流数据搞定电机仿真(附.tab文件制作技巧)

Maxwell16.0实战&#xff1a;实验电流数据驱动电机仿真的全流程解析 电机仿真作为现代工业设计的重要环节&#xff0c;其准确性直接影响产品性能评估。而将实测电流数据融入仿真流程&#xff0c;往往是工程师突破"理想模型"局限的关键一步。本文将系统性地拆解从实验…...

如何去选择品质优秀的段码屏厂家

在现代电子产品中&#xff0c;LCD液晶段码屏的应用越来越广泛。选择一家优质的厂家不仅能保证产品质量&#xff0c;还能提供高效的服务。本文将为您推荐十家在LCD液晶段码屏领域表现突出的厂家&#xff0c;帮助您做出明智的选择。1. 杭州斡能电子有限公司杭州斡能电子有限公司&…...

PyTorch 2.8 + CUDA 12.4镜像实战教程:适配10核CPU+120GB内存的完整配置

PyTorch 2.8 CUDA 12.4镜像实战教程&#xff1a;适配10核CPU120GB内存的完整配置 1. 镜像概述与环境准备 1.1 核心特性介绍 这个深度优化镜像基于RTX 4090D 24GB显卡和CUDA 12.4驱动构建&#xff0c;专为高性能深度学习任务设计。主要特点包括&#xff1a; 硬件适配&#…...