























APIModule 是一个用于发送 HTTP 请求和管理 API 调用的模块。它支持从配置初始化、参数注入、上下文管理、请求重试等功能。以下是如何使用 APIModule 的详细指南。
初始化 APIModule,可以通过传递配置字典来初始化模块,配置字典中包含基础 URL、超时时间、重试次数等信息
api_module:
class_path: "src.modules.api.api.APIModule"
base_url: "http://10.245.218.237:8808/"
timeout: 30
retry_attempts: 3
retry_delay: 1
参数说明:
class_path: 模块对应的类路径。只能为: src.modules.api.api.APIModule base_url: 模块的基础URL。例如,http://10.245.209.149:81/。 timeout: 请求超时时间(秒),可选。例如,30。 retry_attempts: 重试次数,可选。例如,3。 retry_delay: 重试间隔时间(秒),可选。例如,1.
Action 配置为 ”send_request”,用于发送请求和接收响应。
参数说明。
!!!注意:以下参数必须通过ParamsSetID 传入,即参数必须写在测试数据表中。
API: str
method: str = 'GET'
body: Optional[Dict[str, Any]] = None
header: Optional[Dict[str, str]] = None
saveAsVariable:str,用于存储返回值
在测试用例表中:
Module:使用的模块名称,这里是 oah_api, 在yml中已配置。
Action:模块中的具体操作, send_request是API模块的核心方法。
Tag:可选的标签,用于分类或标识。
Description:描述当前操作,例如 validate 200 表示校验状态码为 2
ParamsSetID: 参数将从测试数据表获取
| Description | Module | Action | Tag | Params | ParamsSetID |
| basicConfig edit | oah_api | send_request | oah_request |
在测试数据表中, 参数与send_request 要求的参数一一对应,请看核心方法的参数描述
| ParamsSetID | ParamID | Name | Value | DataGroup |
| oah_request | P1 | API | /au/api/ops/oah/tenant/info/basicConfig/edit | 1 |
| oah_request | P2 | method | POST | 1 |
| oah_request | P3 | body | @body.string:value | 1 |
| oah_request | P4 | header | { "Content-Type": "application/json", "oah-app-id": "12323", "oah-sign": "@sign.string:value", "oah-sign-type": "ASK", "oah-timestamp": "1761113092294" } |
1 |
| oah_request | P5 | saveAsVariable | response | 1 |
这5个参数也可以写到一个表格中, Name需要定义为params
| ParamsSetID | ParamID | Name | Value | DataGroup | TestCaseID |
| 租户参数 | P1 | params | { "API": "au/api/ops/tenant/info/create", "header": { "Content-Type": "application/json", "Authorization": "@Atoken.string:value" }, "body": { "country": "CN", "timeZone": "Asia/Shanghai", "domain": "swjAPIT%random_string:4%", "tenantName": "framework_admin_auto_tenant%random_string:4%", "expiredTime": "2029-07-30 23:59:59", "adminAccount": "framework_admin_auto_%date%_b_%random_string:4%", "adminPassword": "Qa_119576", "confirmPassword": "Qa_119576" }, "method": "POST", "saveAsVariable": "response" } |
1 | TC_administrator_tenant_create |
如果该用例只有一组测试数据,那么params可以选择写在测试数据表,或在测试用例表
| TestCaseID | LFCaseID | ScenarioDescription | Step | Description | Module | Action | Tag | Params |
| TC_administrator_tenant_create | 新建租户 | 1 | 新增租户 | admin_api | send_request | regression,prepare | { "API": "au/api/ops/tenant/info/create", "header": { "Content-Type": "application/json", "Authorization": "@Atoken.string:value" }, "body": { "country": "CN", "timeZone": "Asia/Shanghai", "domain": "swjAPIT%random_string:4%", "tenantName": "framework_admin_auto_tenant%random_string:4%", "expiredTime": "2029-07-30 23:59:59", "adminAccount": "framework_admin_auto_%date%_b_%random_string:4%", "adminPassword": "Qa_119576", "confirmPassword": "Qa_119576" }, "method": "POST", "saveAsVariable": "response" } |
|
| 2 | 校验返回码200 | value_validation | validate_data | { "field_name": "status_code", "actual_value": "@response.json:data.code", "operator": "equal", "expect_value": "200" } |
||||
| 3 | 校验返回消息操作成功 | value_validation | validate_data | { "field_name": "msg", "actual_value": "@response.json:data.msg", "operator": "equal", "expect_value": "操作成功" } |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。