skills/skills.netease.im/openapi-tester

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. 场景1 - 必填参数缺失:测试必填参数未填写时的响应
  2. 场景2 - 必填参数为空:测试必填参数值为空字符串时的响应
  3. 场景3 - 参数内容错误:测试参数数据类型正确,但填入的值不正确(如无效的枚举值、超出范围的数值、格式错误的字符串等)
  4. 场景4 - 参数类型错误:测试参数类型填入错误,如 Boolean 类型填入数字或其他字符串、Integer 类型填入字符串、String 类型填入对象等(值的内容与参数类型不匹配)
  5. 场景5 - 智能场景分析:AI 根据接口文档或图片内容自主分析需求测试场景(如:原非必填的参数因其他参数填了对应值后变为必填,则此参数需要做必填测试)
  6. 场景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_test
  • clusterId: 【可选】集群ID,默认 easyops-cluster
  • user: 【可选】用户邮箱,默认 grp.mammut_test@corp.netease.com

如果配置文件不存在或缺少必需字段,引导用户完成配置。

3. 接口文档解析

用户上传接口设计文档(支持 Markdown、YAML、JSON 格式),解析以下内容:

  • 接口路径 (path)
  • 请求方法 (GET/POST/PUT/DELETE 等)
  • 请求参数 (query/body/header)
  • 响应结构
  • 数据类型和约束

4. 测试用例生成

根据解析的接口信息,生成基础测试用例(六个场景):

  1. 场景1 - 必填参数缺失:测试必填参数未填写时的响应
  2. 场景2 - 必填参数为空:测试必填参数值为空字符串时的响应
  3. 场景3 - 参数内容错误:测试参数数据类型正确,但填入的值不正确(如无效的枚举值、超出范围的数值、格式错误的字符串等)
  4. 场景4 - 参数类型错误:测试参数类型填入错误,如 Boolean 类型填入数字或其他字符串、Integer 类型填入字符串、String 类型填入对象等(值的内容与参数类型不匹配)
  5. 场景5 - 智能场景分析:AI 根据接口文档或图片内容自主分析需求测试场景(如:原非必填的参数因其他参数填了对应值后变为必填,则此参数需要做必填测试)
  6. 场景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判断)

执行流程

  1. 运行 scripts/check_env.py 检查环境
  2. 运行 scripts/config_manager.py 加载/创建配置(使用默认参数)
  3. 接收用户上传的接口文档
  4. 运行 scripts/parse_openapi.py 解析文档
  5. 运行 scripts/generate_testcases.py 生成用例(六个场景)
  6. 输出 Excel 用例文件,等待用户确认
  7. 用户确认后,运行 scripts/execute_tests.py 执行测试(OpenAPI接口自动添加authType)
  8. 运行 scripts/generate_report.py 生成最终报告(AI判断)
Installs
1
First Seen
10 days ago