【Tavern】2.tavern用例文件格式

在这里插入图片描述

tavern的特点之一便是“使用YAML进行管理用例“,这极大的提高了用例的简易和直观,尤其是对于没有编程经验的人来说,降低了使用门槛。

本文会简单的介绍YAML的语法,以及Tavern使用YAML定义用例的用法

1. YAML语法

YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。

它实质上是一种通用的数据串行化格式。

在yaml之前,程序大多使用json、xml、ini等格式进行数据的描述和传输,这些格式数据类型简单、可读性不好,yaml作为一种数据格式,但是可读性大大提高,方面人类直接编辑、查看里面的内容

yaml中的常用数据类型分为两类、八种:

  • 容器类,可以讲存放其他类型

    • 序列(Sequence):类似Python中列表
    • 映射(Mapping):类似Python中的字典
  • 标量类

    • 空值(Null): 类似Python中的None

    • 布尔值(Boolean):类似Python中的布尔值

    • 整数(Integer):类似Python中的整数

    • 浮点数(Floating Point):类似Python中的浮点数

    • 字符串(String):类似Python中的字符串

    • 时间(Timestamps):类似Python中的datetime

上面可以看出来,绝大部分的yaml数据类型和python的内置数据类可以一一对应,所以有Python基础非常方便理解yaml里的内容,下面看一个简单的例子

id: 1        # 用:表面这是字典中的一项
userinfo:    # 下面的缩进表示都是userinfo的value
  username: 三木  # 字符串可以省略引号   
  age: 18.9 # 如果加引号是字符串,不加引号是数字
  books:
    - 简爱    # 用- 表示这是列表中的一项
    - 死亡诗社
    - 圣经

等同于python中的

{
    "id": 1,
    "userinfo": {
        "username": "三木",
        "age": 18.9,
        "books": ["简爱", "死亡诗社", "圣经"],
    },
}

关于YAML的更多内容,可以参考这篇文章: YAML 语言教程 - 阮一峰的网络日志 (ruanyifeng.com)

2. Tavern的测试用例格式

Tavern专注与Restful API的接口中自动化测试,大家知道Restful API 是基于HTTP协议,报文分为请求request 和响应response,Tavern的测试用例也是这样:发生请求,验证响应

以前文为例,每一个tavern测试用例,有2个部分组成:

  1. test_name: 用例名称
  2. stages: 用例阶段

其中用例阶是一个列表,由一个或多个阶段组成,每个阶段由3个部分组成

  • name :步骤名称
  • request: 接口请求参数
  • response:预期的响应 (也就是断言)

在这里插入图片描述

所以上面的例子,我们可以这样理解

用例名称: 第一个Tavern测试用例             
 
阶段步骤:
	1.  验证接口返回指定状态码和json        
 

其中接口的请求方式:

  • https://api.tttt.one/rest-v1/get_user_ 发生GET请求,

断言 :

  • 状态码200,

  • 响应结果是json,并且内容如下

    • {
          "name": "sanmu",
          "age": 18,
          "email": "sanmu@qq.com"
      }
      

3. 动手写一个新的用例

基于前面的介绍,相信你已经知道tavern的用例主要通过request和response进行描述,接下来做个练习:

用例名称: 验证百度首页可以访问成功
步骤列表:
 步骤1: 
    - 步骤名称:访问百度首页
 	- 请求方式:GET方法请求https://m.baid.com
 	- 断言: 状态码 是200

使用yaml文件进行描述:

test_name: 验证百度首页可以访问成功

stages:
  - name: 验证接口返回指定状态码和json
    request:
      url: http://m.baidu.com
      method: GET
    response:
      status_code: 200

将上述内容保存在test_baidu.tavern.yaml 文件中,然后启动pytest

在这里插入图片描述

依旧测试通过,撒花~~

4.公众号

这一次只是发送了最简单的GET请求,关于如何发送复杂的HTTP请求,在下一篇文章进行详细介绍

欢迎关注:测试开发研习社,你的支持就是我更新的动力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值