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
10import 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请求获取数据列表,脚本如下:
复制代码
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)
-
使用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)
-
使用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接口服务内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复