1.3.5 • Published 4 years ago
api-test-yaml v1.3.5
文档驱动接口测试用例
前言
yaml+function
以文档描述测试,用工具执行文档。
以扩展自定义函数(包括异步函数)方式解决文档无法处理复杂逻辑的问题
支持自定义插件开发
支持快速添加自定义函数,通常项目无需去开发插件,增加开发成本
使用
# 安装 npm install api-test-yaml -g # cd到自定义文件夹 然后创建demo项目 api-test-yaml --demo # 运行 api-test-yaml config.yaml
核心配置
modules:
- test # 引用的接口文档 从上至下顺序执行 如 ./v1/test1.yaml => v1/test1
client:
name: http
options: # http 模块基本设置
baseURL: http://127.0.0.1:9377
timeout: 1000
headers: {}
results: # 对请求结果的处理扩展库
- name: console # 控制台展示
options:
log_err_res: false # 当接口错误时 是否打印返回信息 默认不打印
# - name: file # 文件输出到根目录 results.log 会输出请求返回结果数据
defines: # 定义宏 可以在接口配置中继承
header: # <-- 定义宏
req:
headers:
token: $project.token # init 扩展中赋值
extends: default # 扩展文件夹 可以修改成路径 ./extends
接口配置
- req 的配置是根据扩展库所需参数
- res 的配置是固定格式 value 可以根据扩展库不同
- describe: 请求1 # 请求描述
name: req1 # 请求名 这里被赋予了名字才能被变量获取
includes:
- header # 引用核心配置中的宏定义 将会继承其属性
req:
url: /test/index
method: get
headers:
token: $requests.test1.response.body.token # $表示引用全局变量 全局引用其他接口的数据
code: @eval 1234123 # 调用函数
params: #get请求使用
name: hh
# data: #post请求使用
# name: hh
res: # status headers body
status: 200
body:
code: 0000
?name: jlt # 参数前带 ? 表示非必存在
age: @mumber 1 hah # @表示调用 mumber 函数 后面则是跟的参数
扩展文件
- init 进行一些初始化 设置常量等等
- convert 定义req 参数转换函数
- valid 定义res 参数验证函数
常用请求参数转换函数
@eval 1+2 # 调用js代码返回结果
常用结果验证函数
@boolean
@number
@int
@float
@string
@object
@array
@regexp /^(\+(\d){2})?1\d{10}$/ # 正则验证