# api_auto
**Repository Path**: future76/api_auto
## Basic Information
- **Project Name**: api_auto
- **Description**: Api接口自动化测试,编辑Excle就可实现的接口自动化测试框架
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 9
- **Forks**: 2
- **Created**: 2024-01-02
- **Last Updated**: 2025-06-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Python
## README
# Api自动化测试
#### 介绍
Api接口自动化测试,编辑Excle就可实现的接口自动化测试框架
https://www.processon.com/view/link/6580017d4c36e55bf120b1dd
#### 软件架构
软件架构说明
#### 安装教程
1. xxxx
2. xxxx
3. xxxx
#### 使用说明
**一、比对具体字段怎么解决**
使用jsonpath库,用法:
示例参考:
1. 基本语法:
`$` :根节点,也是所有JsonPath表达式的开始
`.` :当前节点
`..` :递归下级节点
2. 属性操作:
`$.property` :选择指定属性
`$['property']` :选择指定属性,属性名带有特殊字符时使用
3. 数组操作:
`$.array[index]` :选择指定索引处的元素
`$.array[start:end]` :选择指定范围内的元素
4. 过滤器:
`$.array[?(@.property == value)]` :根据条件过滤数组元素
`$.array[?(@.property > value)]` :根据条件过滤数组元素
5. 路径组合:
`$.parent.child` :选择父节点下的子节点
`$.parent[*].child` :选择父节点下所有子节点的某个属性
**参考以上的JSON**
```python
# 获取根目录下的子字段:获取用户名
$.name
# 获取根目录下的字典中的数据:获取地址中的城市("country": "USA")
$.address.country
# 获取根目录下的列表中的某个数据:获取教育经历
$.education[0]
# 获取根目录下的列表中的所有数据中的某个字段:获取教育经历中的年
$.education[0:].year
# 获取根目录下的列表中满足某个条件的数据:获取教育经历中的年等于2020 的数据,== \!=
$.education[?(@.year==2020)]
# 获取所有的数据
$.*
```
在线解析 **http://www.atoolbox.net/Tool.php?Id=792**
```python
import jsonpath
# 注意:
# 1. jsonpath处理的数据必须是字典格式
# 2. 报文的格式是json,必须进行数据的转换。
# 3. json.loads() 将json转换成字典类型
res = jsonpath.jsonpath(data,"$.name")
print(res)
```
二、正则表达式在线测试工具
https://c.runoob.com/front-end/854/
**三、断言方式**
以下是支持的几种断言方式:
| 断言方式 | 说明 |
| ------------ | ------------ |
| eq | 相等,判断预期结果是否等于实际结果 |
| lt | 小于, 判断预期结果是否小于实际结果 |
| le | 小于等于, 判断预期结果是否小于等于实际结果 |
| gt | 大于, 判断预期结果是否大于实际结果 |
| ge | 大于等于,判断预期结果是否大于等于实际结果 |
| not_eq | 不相等,判断预期结果是否不等于实际结果 |
| str_eq | 字符串相等,判断预期结果是否等于实际结果 |
| len_eq | 长度等于,判断预期结果是否等于实际结果的长度 |
| len_gt | 长度大于,判断预期结果是否大于实际结果的长度 |
| len_ge | 长度大于等于,判断预期结果是否大于等于实际结果的长度 |
| len_lt | 长度小于,判断预期结果是否小于实际结果的长度 |
| len_le | 长度小于等于,判断预期结果是否小于等于实际结果的长度 |
| contains | 包含,判断预期结果内容被实际结果包含, 预期结果 in 实际结果 |
| contained_by | 被包含,判断预期结果包含实际结果, 实际结果 in 预期结果 |
| startswith | 以什么开头,判断实际结果是否是以预期结果开头的 |
| endswith | 以什么结尾,判断实际结果是否是以预期结果结尾的 |
| one_to_many | 一对多,判断实际结果中的所有值是否对应预期的一个值 |
| data_type | 数据类型比对,检查实际结果的数据类型是否和预期结果的数据类型一致 |
| is_all_contains | 列表包含,检查预期结果(列表)中的数据是否在实际结果中全都有 |
| greater_than_all_or_equals | 单个值大于列表,检查预期结果大于等于实际结果(列表)的最大值 |
| year_equals | 年份一对多,检查预期结果的年份等于实际结果的所有年份 |
| is_date_range | 日期范围,检查实际结果的日期在预期日期的范围内 |
| contains_all | 模糊查询一对多,检查预期结果内容是否被实际结果(列表)中的每一个值包含(模糊查询) |
| is_int_range | 数据范围,检查实际结果在预期结果的范围内 |
#### 示范


#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)