我是靠谱客的博主 如意羊,这篇文章主要介绍利用python+flask搭建mock接口服务,现在分享给大家,希望可以做个参考。

1、测试需求来源:

测试环境进行某后端服务的测试,某些功能依赖其他系统的输出数据,由于线下测试环境网络隔离等原因,无法实时获取依赖系统的数据,基于此种情况,需要通过搭建一套接口服务模拟出依赖系统的输出数据,以供被测系统调用。
因此选择python和falsk框架快速搭建一套mock api 服务,模拟依赖系统的输出数据,快速构造测试场景。

2、开发环境准备

  • Python开发环境;
  • Flask安装:pip install flask python;
  • 引用flask模块:import flask

3、使用flask mock api的好处:

  • 自己模拟一个接口,暂时代替第三方接口测试
  • 辅助测试,用来代替没有开发好的接口
  • 将被测单元与依赖模块独立出来

4、测试脚本开发总结:

复制代码
1
2
3
4
5
6
7
8
9
10
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、测试场景:

  1. 使用GET请求获取数据列表,脚本如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/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)
  1. 使用PUT方法更新资源
复制代码
1
2
3
4
5
6
7
8
9
10
11
@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)
  1. 使用DELETE方法删除资源

复制代码
1
2
3
4
5
6
7
@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接口服务内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部