Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chenhg5/guardian
golang testing framework
https://github.com/chenhg5/guardian
framework golang testing
Last synced: about 1 month ago
JSON representation
golang testing framework
- Host: GitHub
- URL: https://github.com/chenhg5/guardian
- Owner: chenhg5
- Created: 2018-09-26T05:16:42.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-03-26T10:14:43.000Z (over 5 years ago)
- Last Synced: 2024-10-02T09:07:00.258Z (about 2 months ago)
- Topics: framework, golang, testing
- Language: Go
- Homepage:
- Size: 5.09 MB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Guardian
api测试框架,表格测试,编写json文件,即可测试api的响应以及对应数据库的正确性,以及测试并发的数据准确性。
## 下载安装
在 https://github.com/chenhg5/guardian/releases 下载对应版本,或者执行:
```bash
go get -u -v github.com/chenhg5/guardian
```## 使用
```
guardian --tests=./example/tests/entrance.jsonSUIT: users
=================================================
获取用户 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
修改用户 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================Ok
SUIT: orders
=================================================
获取订单 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================
创建订单 Ok
-------------------------------------------------
响应比对 ✓️
数据比对 ✓️
=================================================Ok
```
```entrance.json```为入口文件,例子详见 example/tests/entrance.json
## 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- 全局变量管理
- 定义全局变量
- 读取变量- io部分
- 输出到终端/文件
- 读取文件### 表格读取
入口文件为json格式
- 数据库
- redis
- 测试表格集表格为json格式
- 测试信息
- 标题
- 描述- 请求
- url
- method
- param
- header
- 响应
- header
- body
- 对比方式- 数据
- sql
- 期待结果
- 对比方式
## TODO- 增加web ui显示测试案例及运行情况
- 完善例子
- 增加网站说明
- 增加英文版说明