# 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 | 数据范围,检查实际结果在预期结果的范围内 | #### 示范 ![img.png](common/picture/excel断言示范.png) ![img.png](common/picture/断言示范解释.png) #### 参与贡献 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/)