Flask简单Mock Server

2023-11-03

Mock Server充当的角色:

Mock server在实际项目中的意义就相当于数据库。将我想要的数据返回给我就行,我并不关心你怎么逻辑处理的。

一般的应用程序请求方式是GETPOST

Flask自带的request使用:request.url获取当前的请求url全路径地址,request.method获取当前的请求方式。

Flask处理get请求时:

(1)因为get方式存在带”?”的参数方式,所以可以使用urlparse模块进行解析。

Urlparse是将url拆分成6部分,并返回元组。具体实例可以参见:http://my.oschina.net/guol/blog/95699

将带”?”的方式分别将key-value对应关系取出来,这样就可以知道每一个请求的key-value

(2)不同的公司定义的接口标准不同,不同的get方式key-value对应关系要自己去梳理和找出相同及不同点,方便后期自己不管是做接口还是客户端测试验证时可以:

根据url就可以取出对应的key-value,进行自动化校验。

Flask处理POST请求时:

post方式的数据一般是放在body中的,有时header中会携带一些用户信息:

使用request.get_data() 可以获取到请求中的body内容,使用request.headers获取到header中的用户信息,然后可以根据规律同样将key-value对应关系取出,进行相应的测试等。

Flask正则表达式:

Flask正则表达式要想使用需要导入BaseConverter

From werkzeug.routing import BaseConverter

定义一个类:

Class RegexConverter(BaseConverter):

Def __init__(self,url_map,*items):

Super(RegexConverter,self).__init__(url_map)

Self.regex=items[0]

然后app.url_map.converters[‘regex’]=RegexConverter

通过定义:

@app.route(‘/<regex(r”[\w\W]*”):ceshi>’,methods=[‘GET’,’POST’])  #匹配所有的url地址

Def allurl(ceshi):

myreqUrl=request.url

Print myreqUrl

Return ‘<h1>所有url返回这个结果!</h1>

这样就可以匹配所有的url并返回相同的结果。

Regex正则表达式相关学习:

http://www.cnblogs.com/youquan-deng/articles/csharp-regex.html

匹配任意字符:[\w\W]*

匹配任意包含jingxuan的正则 \\w*jingxuan\\w*

匹配最后以json结尾的正则 .json$

匹配任意符合数字的正则 -?\d+

匹配任意符合字母的正则 -?[a-zA-Z]+

只匹配一个数字 \\d或者[0-9]

匹配版本号 (-?\d+)(\.\d+)?(\.\d+)?(\.\d+)?(\.\d+)?

匹配类型json结尾或者html结尾 .json$|.html$

匹配url  ^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$

Flask Mock Server可以做的:

使用flask的正则表达式可以根据请求的url及抓到的请求参数:

1.自动验证参数数量及合法性(所谓的接口自动化做的事情)

2.自动返回固定的数据,或者根据需要进行相应的修改。

3.尽可能的模拟接口在真实环境下的状态,进行最大程度的模拟“客户端状态”。

目前所做的事情已经基本可以实现了部分客户端及接口校验,当然还有很多不足。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flask简单Mock Server 的相关文章

随机推荐

  • 【DL】第8章 序列到序列的映射

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • file转化为binary对象发送给后台

    具体代码如下 function filechange e var file filed get 0 files 0 var fileSize file size fileType file type if file name lastInd
  • 微信公众帐号开发教程第1篇-引言 .

    接触微信公众帐号已经有两个多月的时间了 在这期间 除了陆续完善个人公众帐号xiaoqrobot以外 还带领团队为公司开发了两个企业应用 一个是普通类型的公众帐号 另一个是会议类型的公众帐号 经过这3个公众帐号的开发 对目前微信公众平台开放的
  • 二叉树之小球下落问题(js)

    有一棵二叉树 最大深度为D 且所有叶子的深度都相同 所有结点从上到下从左到右编号为1 2 3 2 D 1 在结点1处放一个小球 它会往下落 每个内结点上都有一个开关 初始全部关闭 当每次有小球落到一个开关上时 它的状态都会改变 当小球到达一
  • HDFS——如何将文件从HDFS复制到本地

    下面两个命令是把文件从HDFS上下载到本地的命令 get 使用方法 Hadoop fs get ignorecrc crc 复制文件到本地文件系统 可用 ignorecrc选项复制CRC校验失败的文件 使用 crc选项复制文件以及CRC信息
  • windows网络模型

    完成端口 详解 解释的不错 http blog csdn net beyond cn article details 9336043 Windows Socket五种I O模型 http www cppblog com beautyking
  • Grayhill 072 16进制键盘扫描器的Verilog实现

    知识点 1 按键的机械原理 如何用一个module 模拟出按键的功能 体现的是抽象描述的能力 2 同步装置 因为按键输入的是异步信号 必须经过同步 因为s row 信号在经过同步装置后立马进入一个组合逻辑 为了消除潜在的冒险 这个例子中同步
  • Linux C/C++ PGO优化说明

    PGO Profile Guided Optimization 是指利用程序运行过程中采集到的 profile 数据 来重新编译程序以达到优化效果的 post link 优化技术 其原理认为 对于特征相似的 input 程序运行的特征也相似
  • RabbitMQ消息消费失败后的处理方案

    Q 业务系统之间通过MQ进行交互 当消费者发生未知异常时 消息消费失败 如何处理才保证消息的消费的可靠性 A 从如下几点考虑 何时ack 无论消息成功还是失败 都会ack 消息不会堆积在MQ中 只有成功才ack 消息堆积在MQ中 消费日志
  • 散列表的查找(哈希函数)

    哈希函数Hash 散列表的查找都是以关键字的比较为基础的 查找速度极快O 1 查找效率与元素个数n无关 直接找到 选取某个函数 依该函数按关键字计算元素的存储位置 并按此存放 给出关键字 gt 计算元素的存储位置 并存放 查找时 给出关键字
  • 2020年“华为杯”第十七届中国研究生数学建模竞赛B题心得(满纸荒唐言,一把辛酸泪)

    满纸荒唐言 一把辛酸泪 都云作者痴 谁解其中味 纪念2016 2020所有的数学建模论文 古人说得好 书到用时方恨少 事非经过不知难 做数学建模的我 方法用时真恨少 建模经过更知难 2020年9 17 21 应该是我最后一次参加数学建模比赛
  • 多线程:Java两个线程,一个打印A-Z,另一个打印1-26,输出结果:A1 B2 C3 ...... Z26

    最近看到一个题 很有意思 就是在Java里实现两个线程 一个线程打印字母 也就是 ABCD Z 另一个线程打印数字 也就是 1234 26 但是这两个线程需要交替打印 第一次字母线程先打印A 然后数字线程打印1 第二次字母线程先打印B 然后
  • vue & animate.css 使用讲解

    Animate css 库 官网 https animate style Vue 讲解 transition 官网 https cn vuejs org v2 guide transitions html 1 安装库 npm install
  • 人工智能是什么?人工智能行业前景如何

    人工智能是什么 人工智能行业前景如何 很多人都对人工智能领域感兴趣 那么究竟什么是人工智能 人工智能 英语 Artificial Intelligence 缩写为AI 亦称智械 机器智能 指由人制造出来的机器所表现出来的智能 通常人工智能是
  • 如何在eclipse中打开查看jar包(.class文件)

    打开Help Eclipse Marketplace 输入Enhanced Class Decompiler 选择插件 点解Install 安装完毕后重启 第一次打开 class文件 选择文件 点击鼠标右键 然后选择open class w
  • TTL设置多少合适?阿里域名解析TTL设置多少

    TTL设置多少合适 阿里域名解析TTL设置多少 TTL是Time To Live的缩写 指生存时间 而域名解析中提到的TTL值是指全国各地的localdns服务器中缓存解析结果的时间周期 简单来说就是一个网站www sss com 主机服务
  • L1-096 谁管谁叫爹 - java

    L1 096 谁管谁叫爹 时间限制 200 ms 内存限制 64 MB 题目描述 咱俩谁管谁叫爹 是网上一首搞笑饶舌歌曲 来源于东北酒桌上的助兴游戏 现在我们把这个游戏的难度拔高一点 多耗一些智商 不妨设游戏中的两个人为 A 和 B 游戏开
  • windows server 2012 安装完只有命令行

    今天在安装完windows server 2012 只有命令行 发现没有桌面 然后在别人的提醒下 才发现忘记安装gui了 这个时候 我也懒的重新安装一遍 所以就在网上找如何能够解决问题的方法 下面为解决方案 dism online enab
  • sqli-labs (less-21)

    sqli labs less 21 进入21关 输入用户名与密码 发现跟20关基本一样 这里我们猜想也是在cookie的位置进入注入 利用Cookies Manager 抓取到cookie信息后 发现竟然是一串字母 这里就很懵了 但我们仔细
  • Flask简单Mock Server

    Mock Server充当的角色 Mock server在实际项目中的意义就相当于数据库 将我想要的数据返回给我就行 我并不关心你怎么逻辑处理的 一般的应用程序请求方式是GET和POST Flask自带的request使用 request