概述
1、测试需求来源:
测试环境进行某后端服务的测试,某些功能依赖其他系统的输出数据,由于线下测试环境网络隔离等原因,无法实时获取依赖系统的数据,基于此种情况,需要通过搭建一套接口服务模拟出依赖系统的输出数据,以供被测系统调用。
因此选择python和falsk框架快速搭建一套mock api 服务,模拟依赖系统的输出数据,快速构造测试场景。
2、开发环境准备
- Python开发环境;
- Flask安装:pip install flask python;
- 引用flask模块:import flask
3、使用flask mock api的好处:
- 自己模拟一个接口,暂时代替第三方接口测试
- 辅助测试,用来代替没有开发好的接口
- 将被测单元与依赖模块独立出来。
4、测试脚本开发总结:
import flask #python的轻量级的开发框架
server = flask.Flask(__name__)
#__name__当前文件名
datas={}
@server.route('/get_data',methods=['get','post']) #将下面函数变成一个接口
def get_data():
return 'flask.jsonify(datas)' #return只能返回字符串
server.run(host=“”,port = 8080,debug = True)
# 启动服务,加debug自动帮忙重启
5、测试场景:
-
使用GET请求获取数据列表,脚本如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
import json
from flask import request,Flask,jsonify
app = Flask(__name__)
data=[
{'key1':'V1','key2':'V2','id':'1'},
{'key1':'Va1','key2':'Va2','id':'2'},,
{'key1':'Val1','key2':'Val2','id':'3'}]
not_exist = {"msg": "task does not exist"}
values = ['V1', 'Va1', "Val1"]
exist = {"msg": "value is exist"}
@app.route("/dataAPI/data/<string:value>",methods=['get','post'])
def get_data(value):
if len(value)>0 and value in values:
for d in values:
if value==d['value']:
return make_response(jsonify(d),200)
else:
return make_response(jsonify(not_exist),404)
if __name__=='__main__':
app.run(host='127.0.0.1',port=8080,debug=True)
-
使用PUT方法更新资源
@app.route("/dataAPI/data/<string:value>",methods=['PUT'])
def update_data(value):
if len(value)>0 and value in values:
for d in values:
if value==d['value']:
id==d['id']
data[id - 1] = request.json
return make_response(jsonify(data[id-1]),204)
else:
return abort(404)
-
使用DELETE方法删除资源
@app.route("/dataAPI/data/<string:value>",methods=['DELETE'])
def delete_data(value):
if len(value)>0 and value in values:
return make_response(jsonify(data),204)
else:
return abort(404)
说明
- jsonify:将我们传入的json形式数据序列化成为json字符串,作为响应的body,并且设置响应的Content-Type为application/json,构造出响应返回至客户端;
- request可以通过request.json取到接受到数据;
- abort用于返回通用的错误比如:404,400,500;
- make_response自定义返回的object,因为一般接口都会返回一个数据和状态码,所以结构为make_response(request.json,201)。
最后
以上就是如意羊为你收集整理的利用python+flask搭建mock接口服务的全部内容,希望文章能够帮你解决利用python+flask搭建mock接口服务所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复