openapi-tester
SKILL.md
OpenAPI 接口测试工具
本技能帮助用户完成 OpenAPI/EasyOpenAPI 接口的全流程测试,包括配置管理、文档解析、用例生成、测试执行和报告输出。
默认配置
OpenAPI 接口识别
- 如果接口路径包含
/openapi/,则自动识别为 OpenAPI 接口 - OpenAPI 接口会自动添加参数
"authType": "TEST"
默认参数值
以下参数在用户未指定时使用默认值:
{
"product": "autoapi_test",
"user": "grp.mammut_test@corp.netease.com",
"clusterId": "easyops-cluster",
"project": "b2dd7586819f4923929c2bd6f241932d",
"mode": "dev",
"crossSelfDepend": false,
"dependSamePeriod": false,
"periodInfo": {
"type": "PERIOD",
"periodValue": 1,
"periodUnit": "DAY",
"cron": "34 22 * * *"
},
"timeSetting": {
"scheduleStartTimeString": "2026-04-22 09:52:29",
"scheduleExpireTimeString": ""
},
"scheduleDependencies": [],
"execSetting": {
"yarnId": "default",
"yarnFullQueue": "root.autoapi_test.default",
"retrySetting": {
"enable": true,
"maxTimes": 3,
"interval": 3000
},
"rerunSetting": {
"enable": true,
"maxTimes": 2,
"interval": 20000
},
"failureAction": "CANCEL_ALL",
"concurrentSetting": "CONCURRENT_OPTION_SKIP",
"parameters": {
"test_param1": "123",
"test_param2": "开发模式"
}
},
"disableJobs": [],
"authType": "TEST"
}
基础测试场景
默认生成以下六个场景的测试用例:
- 场景1 - 必填参数缺失:测试必填参数未填写时的响应
- 场景2 - 必填参数为空:测试必填参数值为空字符串时的响应
- 场景3 - 参数内容错误:测试参数数据类型正确,但填入的值不正确(如无效的枚举值、超出范围的数值、格式错误的字符串等)
- 场景4 - 参数类型错误:测试参数类型填入错误,如 Boolean 类型填入数字或其他字符串、Integer 类型填入字符串、String 类型填入对象等(值的内容与参数类型不匹配)
- 场景5 - 智能场景分析:AI 根据接口文档或图片内容自主分析需求测试场景(如:原非必填的参数因其他参数填了对应值后变为必填,则此参数需要做必填测试)
- 场景6 - 正常场景:所有参数都填入正确值,验证接口运行正常
工作流程
1. 环境检查
首先检查 Python 环境:
import sys
print(f"Python版本: {sys.version}")
如果未安装 Python,提示用户安装 Python 3.8+。
2. 配置管理
配置文件位于 ~/.openapi-tester/config.json,结构如下:
{
"endpoint": "https://api.example.com",
"product": "autoapi_test",
"clusterId": "easyops-cluster",
"user": "grp.mammut_test@corp.netease.com"
}
配置规则:
endpoint: 【必需】EasyOpenAPI 服务地址product: 【可选】项目名称,默认autoapi_testclusterId: 【可选】集群ID,默认easyops-clusteruser: 【可选】用户邮箱,默认grp.mammut_test@corp.netease.com
如果配置文件不存在或缺少必需字段,引导用户完成配置。
3. 接口文档解析
用户上传接口设计文档(支持 Markdown、YAML、JSON 格式),解析以下内容:
- 接口路径 (path)
- 请求方法 (GET/POST/PUT/DELETE 等)
- 请求参数 (query/body/header)
- 响应结构
- 数据类型和约束
4. 测试用例生成
根据解析的接口信息,生成基础测试用例(六个场景):
- 场景1 - 必填参数缺失:测试必填参数未填写时的响应
- 场景2 - 必填参数为空:测试必填参数值为空字符串时的响应
- 场景3 - 参数内容错误:测试参数数据类型正确,但填入的值不正确(如无效的枚举值、超出范围的数值、格式错误的字符串等)
- 场景4 - 参数类型错误:测试参数类型填入错误,如 Boolean 类型填入数字或其他字符串、Integer 类型填入字符串、String 类型填入对象等(值的内容与参数类型不匹配)
- 场景5 - 智能场景分析:AI 根据接口文档或图片内容自主分析需求测试场景(如:原非必填的参数因其他参数填了对应值后变为必填,则此参数需要做必填测试)
- 场景6 - 正常场景:所有参数都填入正确值,验证接口运行正常
为每个参数提供默认值建议,并设置默认请求头。
5. 用例确认
将生成的测试用例导出为 Excel 文件,包含以下列:
- 场景
- 接口名称
- 接口路径
- 请求方法
- 测试参数
- 参数值
- 实际请求
- 状态码
- 实际Code
- 实际响应
- AI判断结果
- AI判断说明
让用户确认用例无误后再执行测试。
6. 测试执行
用户确认后,使用 Python 执行测试用例:
- 构造完整请求 URL(endpoint + 接口路径)
- OpenAPI 接口自动添加
authType: TEST - 发送 HTTP 请求
- 记录响应结果
- AI 根据场景和实际响应判断结果
7. 测试报告
测试完成后,更新 Excel 文件:
- 填写实际请求
- 填写实际响应
- AI 判断结果(通过/失败/异常)
- AI 判断说明
使用脚本
本技能包含以下辅助脚本:
scripts/check_env.py- 检查 Python 环境scripts/config_manager.py- 配置管理(含默认参数)scripts/parse_openapi.py- 解析接口文档scripts/generate_testcases.py- 生成测试用例(三个场景)scripts/execute_tests.py- 执行测试(自动添加 authType)scripts/generate_report.py- 生成测试报告(AI判断)
执行流程
- 运行
scripts/check_env.py检查环境 - 运行
scripts/config_manager.py加载/创建配置(使用默认参数) - 接收用户上传的接口文档
- 运行
scripts/parse_openapi.py解析文档 - 运行
scripts/generate_testcases.py生成用例(六个场景) - 输出 Excel 用例文件,等待用户确认
- 用户确认后,运行
scripts/execute_tests.py执行测试(OpenAPI接口自动添加authType) - 运行
scripts/generate_report.py生成最终报告(AI判断)