基于python Flask搭建mockServer服务
作者:互联网
需要环境:python 、pycharm(其他编译器也是可以的)、flask。
需要了解概念:
一、MockServer是什么?
答:为实现mock概念而搭建的一个服务,Mock Server 在被测系统与外部系统之间搭建。
MockServer不是一个真实的后端系统, 你只需要让他满足你的接口测试需求即可。
使用场景:
比如:我们自己内部接口需要使用微信,支付宝的支付功能,就需要验证和打钱才能返回固定的成功返回信息,成本太高,我们就可以用MockServer来模拟返回,绕过验证。
二、Flask基本使用
2.1 flask 安装
pip install flask
验证 pip show flask
2.2 启动一个flask服务(本地后端服务)
结果:
点击 域名就会跳转到响应网页,出现 return 的返回值
2.3 请求flask 搭建的服务;代码及结果请求成功获取文本
2.4 动态服务--打开链接后需要加上随机参数
2.5 非动态服务
2.6 指定允许的请求方法
指定get请求方法如下:
如果运行post请求,代码及返回如下:
修改为对应 get方法进行请求,会返回200:(与指定get方法对应上)
还可以修改指定方法,去添加post请求:
@app.route('/zz/', methods=['get','post'])
添加后,不管你是get请求也好,post请求也好都是可以请求成功的。
3、基于flask框架实现Mock Server
3.1例子
假设有一个登录接口,需要输入用户名和密码并获得返回结果。地址后缀名为:/api/login
首先:基于flask搭建 flaskServer
代码如下:mockServer.py 文件夹,下面直接帖代码了
# -*- coding: utf-8 -*-
from flask import Flask, request, jsonify
# 创建1个实例
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
# 指定路由和请求方法
@app.route('/api/login', methods=['POST'])
def login():
""" 登录接口"""
# 调试信息,打印请求方法
print(request.method)
# 获取请求数据,将数据变成字典
data = request.get_json()
# 调试信息, 打印请求的数据
print(data)
print(type(data))
# 定义用户名和密码变量,从data中取值
username = data['username']
pwd = data['password']
"""
1)参数为空
2)用户名密码正确
3)用户密码错误
"""
if username == '' or pwd == '':
"""
Flask 框架里,可以用jsonify 返回 json数据
使用 jsonify 时,返回的 http response 的 Content-Type 是application/json
这样做是符合 HTTP 协议的规定的,这就是使用 jsonify 的原因之一
"""
return jsonify({
"code": "001",
"msg": "用户名和密码不能为空"
})
elif username == 'zz' and pwd == '123456':
return jsonify(
{
"adress": {
"city": "北京"
},
"httpstatus": 200,
"info": {
"age": 22,
"name": "zhx"
},
"mag": "success",
"token": " 1HJHSJSNKSKSKSNSKHSKSDUIU"
}
)
else:
return jsonify({
"code": "001",
"msg": "username or password is wrong"
})
if __name__ == '__main__':
# debug = True 开启调试模式
app.run(host='127.0.0.1', port="5006", debug=True)
执行上面代码后,在执行下面代码即可;(用户名和密码为空)
当 用户名和密码正确时:
当 密码或者账号错误时:
总结: 完美收官,有些不知道什么场景使用就没有写上去,后期学过之后会继续更新。哈哈,大家加油撒!!!
标签:__,请求,get,python,jsonify,Flask,flask,mockServer,data 来源: https://www.cnblogs.com/zhx-95-/p/16197164.html