Python+Ai结合落地实战接口自动化,让代码如此简单~开整

简介

这是一个基于Python的接口自动化测试框架,使用Requests进行接口请求,Pytest进行测试用例管理,Excel管理测试数据,Logging进行日志记录,并集成了钉钉通知、邮件通知、测试报告、禅道Bug问题同步等功能。

目录结构

Api_Auto/
├── config/             # 配置文件目录
│   └── config.ini      # 全局配置文件 (包含环境、登录、钉钉、邮件、报告、禅道等配置)
├── data/               # 测试数据目录
│   └── *.xlsx          # Excel测试用例数据
├── logs/               # 日志目录
├── docs/               # 文档目录
├── reports/            # 测试报告目录
├── test_cases/         # 测试用例代码目录
│   └── test_api.py     # API测试用例
├── test_verifications/ # 测试前置验证
│   └── verify_login.py # 登录验证
├── scripts/            # 辅助脚本
│   ├── decode_urls.py  # Excel URL 解码
│   └── verify_log_cleanup.py # 日志清理验证
├── utils/              # 工具类目录
│   ├── config_utils.py # 配置读取工具
│   ├── excel_utils.py  # Excel读取工具
│   ├── logger_utils.py # 日志工具
│   ├── login_utils.py  # 登录逻辑封装
│   ├── notification_utils.py # 钉钉通知工具
│   ├── request_utils.py# 请求封装工具
│   ├── stats_utils.py  # 统计工具
│   └── zentao_utils.py # 禅道集成工具
├── main.py             # 框架执行入口
├── requirements.txt    # 依赖包列表
└── README.md           # 说明文档

环境准备

  1. 安装Python 3.10+
  2. 安装依赖包:
pip install -r requirements.txt

配置说明

config/config.ini 中进行配置:

环境配置

[env]
current = test  # 当前环境: test/uat/prod

[test]
base_url = https://10.10.10.1:482/

[uat]
base_url = https://cmp.pre.cmp:8888/

[prod]
base_url = https://prod.example.com/

登录配置

[test_login]
url =  https://10.10.10.1:482//api/authc/login...
username = your_username
password = your_password

[uat_login]
url = https://cmp.pre.cmp:8888/api/authc/login...
username = your_username
password = your_password

[prod_login]
url = https://prod.example.com/api/authc/login...
username = your_username
password = your_password

用例配置

[test_cases]
case_file = 数字湖南-接口测试用例.xlsx
sheet_names =
interval = 300
rerun_times = 1
retry_count = 5

钉钉通知

[dingtalk]
enabled = true
webhook_url = https://oapi.dingtalk.com/robot/send...
secret = SEC...

邮件通知

[email]
enabled = false
server = smtp.163.com
username = your_email@163.com
password = your_auth_code
receivers = receiver1@example.com, receiver2@example.com

禅道配置

[zentao]
enabled = true
url = http://zentao.example.com
username = your_user
password = your_pass
product_id = 1
assigned_to = admin
token =

日志清理

[logs]
enabled = true
clean_interval = 10
retention_days = 1

URL 自动解码

[url_decode]
enabled = false
interval_hours = 24
last_run_time =

报告开关

[report]
enabled = true

默认 Token(登录后会自动更新)

[default]
token = SESSION=xxxx

使用指南

更完整的接口操作手册见 docs/api_manual.md。以下为快速上手要点。

安装依赖

pip install -r requirements.txt

用例文件配置

config/config.ini 中配置用例文件与 Sheet:

[test_cases]
case_file = 数字湖南-接口测试用例.xlsx
sheet_names =
interval = 300
rerun_times = 1
retry_count = 5

Excel 用例字段说明(data 目录)

  • run:是否执行(Y 执行,N 跳过)
  • group:分组/模块
  • desc:用例描述
  • method:请求方法(GET/POST/PUT/DELETE…)
  • url:接口路径(相对路径会拼接 base_url
  • methodParam:请求体(JSON 字符串)
  • checkpoint:断言配置(JSON 字符串)
  • save:变量提取配置(JSON 字符串)
  • headers:自定义请求头(JSON 字符串)
  • sleep:请求间隔(秒)

断言与变量提取示例

断言 checkpoint

{
    "checktype": "json",
    "checkcontent": "$.code=0"
}

提取 save

{
    "extratortype": "jsonpath",
    "elements": [
        {
            "expression": "$.data.id",
            "varname": "unit_id"
        }
    ]
}

变量引用({{变量名}}):

{
    "tenantId": {{unit_id}},
    "name": "测试项目"
}

注意事项

  • 若用例描述包含“创建/新增/新建 + 单位/项目”,框架会自动为 name/tenantCode/itemNumber 追加时间戳,避免重复。

运行流程说明

  • 启动 main.py 后会先执行登录验证(test_verifications/verify_login.py),登录失败将终止测试。
  • 请求 401 时会自动触发重新登录,并按 test_cases.retry_count 重试。
  • 执行结束会生成统计摘要与成功/失败用例列表,并按配置发送钉钉/邮件。
  • 生成 Allure 报告(需本地安装 Allure CLI 且在 config.ini 中启用)。

进阶配置(可选)

多用例文件执行

支持用逗号分隔多个 Excel:case_file = A.xlsx,B.xlsx

日志清理

[logs]
enabled = true
clean_interval = 10
retention_days = 1

URL 自动解码(Excel 中 URL 编码自动转换)

[url_decode]
enabled = false
interval_hours = 24
last_run_time =

默认不自动执行,可配合脚本执行:python scripts/decode_urls.py

报告开关

[report]
enabled = true

运行测试

执行根目录下的 main.py 文件:

python main.py

功能特性

  1. Excel数据驱动:使用Excel管理测试用例,支持 run 字段控制执行。
  2. 多环境切换:支持 test/uat/prod 环境一键切换。
  3. 自动登录与401重试:登录失败直接终止,401 自动重新登录并按配置重试。
  4. 失败用例重跑:pytest rerun_times 自动重跑失败用例。
  5. 钉钉/邮件通知:测试结束发送汇总(成功/失败列表)。
  6. 禅道集成:支持 Bug 创建与缺陷统计日报发送。
  7. 日志记录与清理:详细日志输出,支持按天清理。
  8. 辅助工具:URL 解码脚本、多用例文件执行支持。

框架运行效果

让初学者能快速上手接口自动化测试

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐