SuperAPI AI 工具集

openapi-parser

测试与质量

查看项目

更新于 10-16 10:21

技能介绍

用途:解析复杂 OpenAPI 规范并生成、编写或搭建 Drift 测试用例,适用于用户希望从 OpenAPI 规范生成 Drift 测试的场景。

主要能力:定位端点并提取路径、查询、请求头参数、请求体 schema 与各响应状态码的 schema;递归解析 $ref,直到基本类型;处理 allOf 继承、oneOf/anyOf、discriminator、enum、pattern、nullable、optional 等复杂模式;按模式枚举最小且覆盖最大化的一组测试;生成 Drift operations YAML、所需 datasets YAML,并列出未覆盖的组合与原因。

使用方式(工作流):

  1. 定位端点,可用 grep -n "^ /path/to/endpoint" spec.yaml 查找行号,Powershell 可用 Select-String -Path spec.yaml -Pattern "^ /path/to/endpoint" | Select-Object LineNumber, Line;再用 grep -n "SchemaName:" spec.yaml 跟踪 $ref。
  2. 递归解析 $ref,遇到 allOf 需合并基类字段与本地属性。
  3. 枚举可行组合:oneOf/anyOf 每分支 1 个测试,discriminator 每个映射值 1 个测试,allOf 合并为 1 个测试,enum 1 个测试,可选字段集群 2 个测试等。
  4. 生成 Drift 测试:操作命名如 {operationId}_{variant};discriminated union 显式设置 discriminator;401 测试用 exclude: [auth] 并传无效 bearer token;故意无效请求体加 ignore: { schema: true };期望响应可省略 body 以自动按 OpenAPI schema 校验。
  5. 输出 Analysis、operations YAML、datasets YAML(如需)与 Gaps。

参考文件:references/schema-patterns.md 说明如何解释与枚举复杂模式;references/drift-mapping.md 说明如何将 schema 变体映射到 Drift YAML(含 datasets、表达式、有状态用例的生命周期钩子、响应匹配器);references/example-repos.md 说明 konfig-sdks/openapi-examples 集合的导航命令。

适用场景与限制:面向 OpenAPI 3.x;Swagger 2.0 结构模式相同但信封语法不同,可能需手动调整字段名。资料未提供该技能的安装方式、收费、平台支持和效果数据。