api测试框架,表格测试,编写json文件,即可测试api的响应以及对应数据库的正确性,以及测试并发的数据准确性。
在 https://github.com/chenhg5/guardian/releases 下载对应版本,或者执行:
go get -u -v github.com/chenhg5/guardian
guardian --tests=./example/tests/entrance.json
SUIT: users
=================================================
获取用户 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
修改用户 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
Ok
SUIT: orders
=================================================
获取订单 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
创建订单 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
Ok
entrance.json
为入口文件,例子详见 example/tests/entrance.json
选项名 | 子选项名 | 描述 | 格式 | 是否必须 | 例子 |
---|---|---|---|---|---|
database | port | 端口 | 字符串 | 是 | 3306 |
user | 用户 | 字符串 | 是 | root | |
password | 密码 | 字符串 | 是 | root | |
charset | 字符集 | 字符串 | 是 | utf8 | |
host | 地址 | 字符串 | 是 | 127.0.0.1 | |
database | 数据库名 | 字符串 | 是 | guardian | |
tables | 无 | 案例集 | 对象 | 是 | { "users": { "list": ["users/get.json", "users/post.json" ], "pre-execution": [], "after-execution": []} } |
vars | 无 | 全局变量,在案例文件中用 {{host}}这种格式表示 |
对象 | 否 | { "host": "http://127.0.0.1:1235" } |
debug | 无 | 设置为true则会 打印所有返回结果 与数据库查询结果 |
布尔 | 否 | false |
选项名 | 子选项名 | 描述 | 格式 | 是否必须 | 例子 |
---|---|---|---|---|---|
info | title | 标题 | 字符串 | 是 | 这是一个标题 |
description | 描述 | 字符串 | 是 | 这是一个描述 | |
concurrent | 无 | 并发数 | 整数 | 否 | 1 |
request | url | url | 字符串 | 是 | {{host}}/user |
method | 方法: json, get, post, delete, options, formget, formpost | 字符串 | 是 | get | |
params | 参数 | 对象或数组 | 否 | {"id": 1} | |
header | 头部 | 对象 | 否 | {"token": "1231313"} | |
response | body | 返回body数据,对象中可以有 通配符,如"*",表示不匹配 |
字符串或对象 | 是 | 123 |
header | 头部 | 对象 | 否 | {"token": "1231313"} | |
statusCode | 状态码 | 整数 | 否 | 200 | |
data | 无 | 验证数据 | 数组 | 否 | [ { "sql": "select name from user where id = 1", "result": [{"name": "jack"}] } ] |
after | 无 | 全局变量更新 | 对象 | 否 | { "host": "http://127.0.0.1:1235" } |
- 输入表格集
-
输入参数:
- url
- method
- param
-
对比响应:
- json
- 字符串
-
核对数据:
- mysql
- redis
-
记录结果
-
- 输出结果
-
请求函数
- json post
- get
- 表单 post
- 表单 get
-
响应对比
- 字符串对比
- 完全一致
- 包含
- json对比
- 完全一致
- 结构一致
- 结构一致且部分数据一致
- 字符串对比
-
数据获取
- sql连接
- mysql
- redis
- sql连接
-
全局变量管理
- 定义全局变量
- 读取变量
-
io部分
- 输出到终端/文件
- 读取文件
入口文件为json格式
- 数据库
- redis
- 测试表格集
表格为json格式
-
测试信息
- 标题
- 描述
-
请求
- url
- method
- param
- header
-
响应
- header
- body
- 对比方式
-
数据
- sql
- 期待结果
- 对比方式
- 增加web ui显示测试案例及运行情况
- 完善例子
- 增加网站说明
- 增加英文版说明