API接口测试全能自动化专家。渐进式路由,按需加载模块。
> 匹配规则:关键词命中 → 加载脚本 → 执行。多关键词加载全部对应模块。
| 关键词 | 脚本模块 | 核心功能 |
|---|---|---|
| ------- | ---------- | ---------- |
测登录 测注册 测CRUD 测分页 | SmartTestParser | 自然语言→测试用例,9快捷指令 |
测试设计 测试点 测试分析 | TestAnalyzer | 智能测试点分析,生成文档 |
陷阱 易错 检查清单 | PitfallChecker + SecurityChecker | 180+陷阱,9类安全检查 |
诊断 429 500 重试 | DiagnosticAnalyzer | 四层诊断+智能重试 |
REST HTTP GET POST | RestClient | REST API 测试客户端 |
GraphQL query mutation | GraphQLClient | GraphQL 测试支持 |
YAML 无代码 批量 | YAMLRunner + TemplateLoader | 285场景模板,变量传递 |
Spring Doc OpenAPI Swagger | SpringDocParser | OpenAPI 自动解析 |
性能 负载 并发 | PerformanceTester | 性能/压力测试 |
契约 Schema 验证 | ContractTester | OpenAPI/JSON Schema 验证 |
Mock 模拟 桩 | MockServer | 快速 Mock 服务 |
报告 HTML Allure | TestReporter | 多格式报告生成 |
环境 配置 | EnvManager | 多环境管理 |
完整映射 → references/route_table_full.md
| Phase | 门控问题 | 确认条件 |
|---|---|---|
| ------- | ---------- | ---------- |
| 设计阶段 | "测试范围是[X],是否继续?" | 用户确认=Y → 执行 |
| 执行阶段 | "失败≥[阈值]次,是否中止?" | 失败计数≥阈值 → 暂停等待确认 |
| 报告阶段 | "生成[格式]报告,路径[output]?" | 用户确认输出路径 |
门控示例:
设计阶段:
检测到关键词:测登录
→ 加载 SmartTestParser + TemplateLoader
→ 分析范围:auth_login.yaml (28场景)
→ 门控:"测试登录接口28个场景,是否继续?" [Y/n]
执行阶段:
执行中:12 passed, 3 failed
→ 阈值触发:failed >= 3
→ 门控:"已失败3次,是否中止并诊断?" [Y/n]
| 异常类型 | Fallback 路径 | 恢复策略 |
|---|---|---|
| ---------- | --------------- | ---------- |
| 网络超时 | 重试3次 + 递增延迟(2s→4s→6s) | DiagnosticAnalyzer.retry_on_timeout() |
| 429限流 | 解析 Retry-After + 等待重试 | DiagnosticAnalyzer.smart_retry_on_429() |
| 500服务端 | 重试3次 + 日志记录 | DiagnosticAnalyzer.retry_on_server_error() |
| 认证失败 | Token刷新 + 重新请求 | RestClient.refresh_auth() |
| 资源不存在 | 日志 + 跳过测试 | 标记 skipped,继续后续 |
| 模板加载失败 | 使用默认模板 | TemplateLoader.load_template() → fallback=True |
| JSON解析失败 | 返回原始响应 | response.text fallback |
| 配置缺失 | 使用默认配置 | EnvManager.get_env() → default_value |
# 429限流智能处理
response = client.get("/api/data")
if response.status_code == 429:
result = analyzer.smart_retry_on_429(response)
if result.success:
print(f"等待{result.wait_seconds}秒后重试成功")
else:
print("重试失败,跳过此测试")
# Fallback: 跳过并记录
# 最简测试
from scripts import RestClient, Assertions
client = RestClient(base_url="http://localhost:8080")
response = client.get("/api/users")
Assertions.assert_status_code(response, 200)
# 智能解析(一句话生成测试)
from scripts.smart_test_parser import SmartTestParser
parser = SmartTestParser(base_url="http://localhost:8080")
results = parser.parse_and_run("测登录")
# 测试点分析
from scripts import TestAnalyzer
analyzer = TestAnalyzer.from_openapi("openapi.yaml")
analysis = analyzer.analyze_endpoint("/api/users", "POST")
# YAML批量测试
from scripts import YAMLRunner
runner = YAMLRunner(base_url="http://localhost:8080")
results = runner.run("test-suite.yaml")
完整示例 → references/quick_start.md
status_code,再检查业务码完整变更历史 → CHANGELOG.md
Python 3.8+ | requests 2.28+ | httpx 0.24+ | pytest 7.0+
共 1 个版本