需要环境: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)

 

执行上面代码后,在执行下面代码即可;(用户名和密码为空)

 

 

当 用户名和密码正确时:

 

 

 

当 密码或者账号错误时:

 

 

 

 

 

总结: 完美收官,有些不知道什么场景使用就没有写上去,后期学过之后会继续更新。哈哈,大家加油撒!!!

 

posted on 2022-04-26 23:21  zhx-  阅读(148)  评论(0编辑  收藏  举报