48 lines
3.7 KiB
Markdown
48 lines
3.7 KiB
Markdown
# BaseAPITestCase 核心方法能力一览
|
||
|
||
## 1. 生命周期钩子方法(可重写)
|
||
|
||
| 方法名 | 能力描述 |
|
||
| ---------------------------- | ---------------------------------------------------------------- |
|
||
| `__init__` | 初始化测试用例,加载接口 schema、参数、上下文等 |
|
||
| `generate_path_params` | 生成/修改路径参数(如 `/user/{id}` 中的 `id`),支持动态构造 |
|
||
| `generate_query_params` | 生成/修改 query 参数,支持边界值、缺失、类型异常等场景 |
|
||
| `generate_headers` | 生成/修改请求头,支持鉴权、格式异常等测试 |
|
||
| `generate_request_body` | 生成/修改请求体,支持字段缺失、类型不符等复杂场景 |
|
||
| `modify_request_url` | 动态修改请求 URL,适用于特殊路径拼接等需求 |
|
||
| `validate_request_url` | 请求发送前校验 URL 合规性 |
|
||
| `validate_request_headers` | 请求发送前校验头部数据 |
|
||
| `validate_request_body` | 请求发送前校验请求体 |
|
||
| `validate_response` | 响应校验,断言状态码、响应体、业务逻辑等 |
|
||
| `check_performance` | 性能校验,检查响应耗时等 |
|
||
|
||
## 2. 辅助工具方法(极大简化用例开发)
|
||
|
||
| 方法名 | 能力描述 |
|
||
| ------------------------------------- | ------------------------------------------------------------- |
|
||
| `_get_resolved_request_body_schema` | 获取并解析当前接口的请求体 schema,自动处理 $ref |
|
||
| `_find_removable_field_path` | 查找可被移除的必填字段路径,便于生成“缺失字段”场景 |
|
||
| `_remove_value_at_path` | 按路径从数据中移除指定字段,支持嵌套结构 |
|
||
| `_find_simple_type_field_in_schema` | 查找 schema 中第一个简单类型字段,便于类型异常测试 |
|
||
| `_find_first_simple_type_parameter` | 查找第一个简单类型的参数(如 query/header),便于参数异常测试 |
|
||
| `_find_required_parameter_name` | 查找第一个必填参数名 |
|
||
| `expect_error_response` | 标准化校验错误响应(状态码、错误码等),减少样板代码 |
|
||
| `validate_data_against_schema` | 用 schema 校验任意数据结构,便于响应体合规性断言 |
|
||
| `passed` / `failed` | 快速生成验证结果对象,便于断言输出 |
|
||
|
||
## 3. 日志与上下文
|
||
|
||
| 方法名/属性 | 能力描述 |
|
||
| ------------------------ | -------------------------------- |
|
||
| `self.logger` | 统一日志输出,便于调试与结果追踪 |
|
||
| `self.endpoint_spec` | 当前接口的详细规范,已处理 $ref |
|
||
| `self.global_api_spec` | 全局 API 规范,便于跨接口引用 |
|
||
|
||
---
|
||
|
||
> **说明**:
|
||
>
|
||
> - 生命周期钩子方法由框架自动调用,用户可按需重写,实现灵活的请求构造与验证。
|
||
> - 辅助工具方法极大简化了 schema 处理、字段查找、数据操作等底层细节,让用例开发者专注于业务逻辑。
|
||
> - 通过这些方法,测试用例可轻松实现“字段缺失、类型异常、参数边界、响应断言、性能校验”等多种自动化测试能力。
|