Tavern测试单个API
程序员文章站
2022-05-17 19:06:06
...
目录
使用tavern测试单个API
tavern简介
tavern 是用于HTTP ,MQTT或者其他协议的基于pytest的高级API测试框架 Tavern
tavern优势
轻量级 直接结合pytest就可以使用 即使不会代码也可以使用 容易编写 方便阅读 可读性比较好
为什么要使用tavern测试?
测试全业务覆盖的API使用自动化脚本测试 会更加利于维护和复用 但如果只是测试 一两个API 再写一个脚本 需要配置那么多的文件 这显然就不那么合适了 所以这时候 用tavern用于测试单个API是很好的选择
使用tavern 需要使用yaml文件 所以需要以下的环境准备
准备工作
- pip install pyyaml
- pip install pytest==4.5.0
- pip install tavern
单个API测试开始
上面的环境安装好以后 就可以开始测试了 首先新建一个yaml文件
yaml文件的命名
这个yaml文件的命名 需要遵守一些规范
- 需要以test为开头
- 结尾必须以.tavern.yaml
- 如 test_login.tavern.yaml
测试正式开始
yaml文件创建好以后 开始正式再yaml文件中写API请求了
在yaml文件中使用关键字的介绍
- test_name : 这个是给当前测试用例起一个名字
- stages: 在这个关键字内的内容就是请求内容
- name: 这个还是说明一下这个接口的作用
- request: 请求
- url: 请求的url
- method: 请求的方法(大写)
- data: 请求参数
- response: 响应断言
上面就是需要测试一个API所需要的 全部内容
现在实际操作一个吧 以登录接口为例
测试login接口
实际测试login接口案例
test_name: test_logins
stages:
- name: test_login_01
request:
url: http://127.0.0.1:5000/login/login
method: POST
data:
phone: 1234567
password: 123456
response:
status_code: 200
执行测试
然后在DOS命令中输入 :
pytest -v test_login.tavern.yaml
执行成功
基于更多测试场景的测试
上面的是一个正确的API测试 下面再添加几个 异常的请求用例
测试场景如下:
- phone:参数为空
- password:参数错误
- 参数都为空
更多场景的测试代码
用例与用例之间需要用— 来隔开
test_name: test_login
stages:
- name: test_login_01
request:
url: http://127.0.0.1:5000/login/login
method: POST
data:
phone: 12345678
password: 123456
response:
status_code: 200
---
test_name: phone is null
stages:
- name: test_login_02
request:
url: http://127.0.0.1:5000/login/login
method: POST
data:
password: 123456
response:
status_code: 200
body:
msg: 缺少手机号参数
---
test_name: password参数错误
stages:
- name: test_login_03
request:
url: http://127.0.0.1:5000/login/login
method: POST
data:
phone: 1234524231
password: 1321414
response:
status_code: 200
body:
msg: 密码不正确
---
test_name: phone and password is null
stages:
- name: test_login_04
request:
url: http://127.0.0.1:5000/login/login
method: POST
response:
status_code: 200
body:
msg: 缺少手机号参数
DOS命令执行测试用例
以上完成了单个接口的测试 接下来就生成测试报告
测试报告
安装一个插件: pip install pytest-html
安装好以后 DOS命令输入: pytest -v test_login.tavern.yaml --html=login.html
=号后面的参数是给测试报告的html文件起的名字
生成后 打开报告 看效果
推荐阅读
-
PHP本地进行API接口测试的实例
-
RX 480、GTX 1060到底谁更好?DX12及Vulkan的API开销测试
-
在Django下测试与调试REST API的方法详解
-
渗透测试对网站API接口漏洞查找分析阶段
-
Eclipse怎么运行单个Junit单元测试?
-
ASP.NET Core 3.0 一个 jwt 的轻量角色/用户、单个API控制的授权认证库
-
使用RAP2和Mock.JS实现Web API接口的数据模拟和测试
-
vscode怎么安装REST API插件并测试?
-
如何使用Playwright对Java API实现自动视觉测试
-
Python实现的Flask一个RESTful API 服务器端测试