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

python+flask开发mock服务

目录

什么是mock?

什么时候需要用到mock?

如何实现?

python+flask自定义mock服务的步骤

一、环境搭建

1、安装flask插件

2、验证插件

二、mock案例

1、模拟 返回结果

2、模拟 异常响应状态码

3、模拟登录,从jmeter中获取用户名和密码


什么是mock?

简单来说,就是模拟接口。

什么时候需要用到mock?

1、依赖的接口未实现
2、依赖的接口响应速度慢
3、针对接口模拟各种异常

如何实现?

1、使用mock现有工具-->moco
2、自定义mock
    ①编写一个函数,直接return模拟的值
    ②使用接口开发框架编写要模拟的接口 flask

接下来,我们就使用python+flask来实现自定义mock。

python+flask自定义mock服务的步骤

一、环境搭建

1、安装flask插件

pip install flask

2、验证插件

flask --version

二、mock案例

1、模拟 返回结果

from flask import Flaskapp = Flask(__name__)
# 添加此配置,让接口返回值的中文不转码(保持显示中文)
app.config['JSON_AS_ASCII'] = False# 定义接口 模拟返回结果
@app.route("/login", methods=["post"])
def login():return {"status": 200, "msg": "恭喜您,登录成功!", "token": "xxxxxx"}# 运行
app.run()

2、模拟 异常响应状态码

from flask import Flaskapp = Flask(__name__)
# 添加此配置,让接口返回值的中文不转码(保持显示中文)
app.config['JSON_AS_ASCII'] = False# 定义接⼝ 模拟异常响应状态码
@app.route("/login/lgy", methods=["get"])
def lgy():return "error page", 404, {"Content-Type": "application/json"}# 运行
app.run()

3、模拟登录,从jmeter中获取用户名和密码

"""
需求: ⽤户名为admin 密码为:123456 返回登录成功!否则返回⽤户名或密码错误,请求参数
格式为:form
"""
from flask import Flask, requestapp = Flask(__name__)
# 添加此配置,让接口返回值的中文不转码(保持显示中文)
app.config['JSON_AS_ASCII'] = False@app.route('/my_login', methods=["post"])
def my_login():username = request.form.get("username")pwd = request.form.get("password")if username == 'admin' and pwd == '123456':data = {"status": 200, "msg": "恭喜您,登录成功!", "token": "xxxxxx"}return dataelse:data = {"status": 200, "msg": "用户名或密码错误"}return data# 运行
app.run()

jmeter取样器设置:

 

 

http://www.lryc.cn/news/6630.html

相关文章:

  • 数据库(三)
  • 2023软考纸质证书领取通知来了!
  • Python requests模块
  • 工业智能网关解决方案:物联网仓储环境监测系统
  • Linux进程线程管理
  • 分享111个HTML电子商务模板,总有一款适合您
  • 百度前端必会手写面试题整理
  • ubuntu 安装支持GPU的Docker详细步骤
  • usbmon+tcpdump+wireshark USB抓包
  • 【LeetCode】剑指 Offer 04. 二维数组中的查找 p44 -- Java Version
  • TDengine 3.0.2.5 查询再优化!揭秘索引文件的工作原理
  • 蓝牙耳机哪个品牌性价比高?性价比高的无线蓝牙耳机
  • python的disutils创建分发包
  • 【洛谷】P1195 口袋的天空
  • JavaScript高级程序设计读书分享之3章——3.5操作符
  • moveToCoordinateF3DconcatenateRotations
  • 多线程面试题开胃菜6(5道)
  • 植物大战 List——C++
  • 安灯(andon)系统是车间现场管理的必备工具
  • Hazel游戏引擎(004)
  • 【CS224W】(task4)图嵌入表示学习
  • 分享111个HTML医疗保健模板,总有一款适合您
  • 山东大学2022操作系统期末
  • Hadoop高可用搭建(一)
  • 算法 - 剑指Offer 重建二叉树
  • 手写JavaScript常见5种设计模式
  • Python 异步: 当前和正在运行的任务(9)
  • REDIS-雪崩、击穿、穿透
  • 什么人合适学习Python
  • greenDao的使用文档