欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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文件起的名字

生成后 打开报告 看效果
Tavern测试单个API

相关标签: 接口