1.3.5 • Published 4 years ago

api-test-yaml v1.3.5

Weekly downloads
1
License
ISC
Repository
-
Last release
4 years ago

文档驱动接口测试用例

前言

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}$/ # 正则验证
1.3.6

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.2.2

4 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.0

4 years ago

1.1.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago