目录
什么是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 Flask
app = 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 Flask
app = 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, request
app = 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 data
else:
data = {"status": 200, "msg": "用户名或密码错误"}
return data
# 运行
app.run()
jmeter取样器设置: