## Purpose 定义 HTTP 类型拨测目标:通过 `type: http` 配置 HTTP/HTTPS 探测,支持请求方法、headers、body、SSL 校验、重定向和响应体大小限制,捕获 HTTP 状态码、响应头、响应体和执行耗时,按 expect 规则校验并生成 matched 判定。 ## Requirements ### Requirement: HTTP target 配置 系统 SHALL 支持 `type: http` 的 target 配置,通过 `http.url` 描述目标 HTTP 地址,并通过可选字段控制请求方法、请求体、headers、SSL 校验、重定向和响应体大小限制。 #### Scenario: 解析最简 HTTP target - **WHEN** YAML 中 target 配置 `type: http` 和 `http.url: "https://example.com"` - **THEN** 系统 SHALL 将其解析为 HTTP checker,并填充 `method=GET`、`maxBodyBytes=100MB`、`ignoreSSL=false`、`maxRedirects=0`、headers、body、interval、timeout、group 和 expect 配置 #### Scenario: HTTP target 缺少 url - **WHEN** YAML 中 target 配置 `type: http` 但缺少 `http.url` - **THEN** 系统 SHALL 以配置错误退出,并提示该 target 缺少 http.url 字段 #### Scenario: HTTP target 覆盖请求方法 - **WHEN** YAML 中某个 HTTP target 显式配置 `http.method: POST` - **THEN** 该 target SHALL 使用自身 method 字段的值,而不是内置默认值 GET #### Scenario: HTTP target 覆盖响应体大小限制 - **WHEN** YAML 中某个 HTTP target 显式配置 `http.maxBodyBytes` - **THEN** 该 target SHALL 使用自身 maxBodyBytes 字段的值,而不是内置默认值 100MB #### Scenario: HTTP target 覆盖 headers - **WHEN** YAML 中某个 HTTP target 显式配置 `http.headers` - **THEN** 该 target SHALL 使用自身 headers 字段的值,不再与规则文件级 defaults 合并 #### Scenario: HTTP 序列化展示摘要 - **WHEN** 系统同步 HTTP target 到 targets 表 - **THEN** `target` 展示摘要 SHALL 为 HTTP URL,`config` JSON SHALL 包含 resolved 后的 url、method、headers、body、ignoreSSL、maxBodyBytes 和 maxRedirects