如有问题,请添加作者微信:superz-han ## 第二天: Python接口测试(一) ### 简单接口搭建(表单/REST) #### 五步教会你写接口 首先要安装flask包:
pip install flask
1. 从flask中导入Flask类和request对象:from flask import Flask, request
2. 从当前模块实例化出一个Flask实例:app=Flask(__name__)
3. 编写一个函数来处理请求 1. 从请求对象中获取数据:a=request.values.get("a");b=request.values.get("b")
- request.params: 字典格式,存储请求中的url参数 - request.form: 字典格式,存储请求中的表单数据 - request.values: 字典格式, 包含params和form中的值 - request.json: 字典格式, 存储json类型的请求数据, 如果请求类型非json, 值为空 2. 进行业务处理:sum = int(a) + int(b)
3. 组装并返回响应数据:return str(sum) # http一般使用字符串传输数据
4. 为接口指定接口地址和接受的方法:@app.route("/add/", methods=["GET"]) # 写到函数上面(装饰器)
5. 运行接口: 最后添加:
if __name__ == "__main__":
app.run()
保存为add.py
, 打开命令行,进入add.py所在目录,运行python add.py
完整代码
# 1. 导入包
from flask import Flask, request
# 2. 实例化一个
app = Flask(__name__)
# 3. 编写一个接口处理方法
@app.route("/add/", methods=["GET","POST"]) # 4. 挂载路由(指定接口的url路径), 声明接口接受的方法
def add():
# 3.1 从请求中获取参数
# request.values {"a": "1", "b": "2"}
a = request.values.get("a")
b = request.values.get("b")
# 3.2 业务操作
sum = int(a) + int(b)
# 3.3 组装响应并返回
return str(sum)
# 5. 运行接口
if __name__ == '__main__':
app.run() # 默认5000端口,可以指定端口app.run(port=50001)
REST类型接口实现
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/api/sub/", methods=["POST"])
def sub():
if not request.json: # 如果请求数据类型非json
return jsonify({"code": "100001", "msg": "请求类型错误", "data": None})
if not "a" in request.json or not "b" in request.json: # 如果参数中没有a或者没有b
return jsonify({"code": "100002", "msg": "参数缺失", "data": None})
a = request.json.get("a")
b = request.json.get("b")
result = str(float(a) - float(b)) # 使用float支持浮点数相减
return jsonify({"code": "100000", "msg": "成功", "data": result}) # 使用jsonify将字典数据转换为json类型的相应数据
if __name__ == '__main__':
app.run()
使用Postman测试接口(Form/Json)
编写接口文档
接口测试基础
接口测试概念
接口测试是测试系统组件间接口的一种测试。 接口测试主要用于检测外部系统与系统之 间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过 程,以及系统间的相互逻辑依赖关系等。 #### 接口测试目的 - 核心:保证系统的稳定 - 手段:持续集成 - 目的:提高测试效率,提升用户体验,降低产品研发成本
接口测试一般流程
- 列出需求
- 安排资源,编写接口用例 -> 用例评审
- 编写接口测试代码 -> 代码评审codeReview
- 执行接口测试
接口测试关注点
- 功能:功能实现,实现与设计一致, 接口通过性测试
- 健壮性: 边界值,容错性
- 性能: 并发及压测
- 稳定性: 长期运行的稳定性
- 安全性: SQL注入, session依赖, 数字签名, http接口的安全性
常见接口种类
- Http/Https接口: 通过http/https协议传送接口数据(通常按字符串/二进制传输), 如常见的网页表单, https安全性更好
- RESTful Api: REST表述性状态传递. 一种设计风格,基于http/https协议, 把一切接口视为资源, 接口要分版本,在统一的域名下管理, 不同的方法(get/pos