compliance/log_stage.txt
2025-06-05 15:31:22 +08:00

2663 lines
619 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2025-06-05 15:29:09,338 - __main__ - DEBUG - 已启用详细日志模式
2025-06-05 15:29:09,338 - __main__ - INFO - 主输出目录设置为: /Users/zpc01/workspace/zzlh/compliance/test_reports
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_orchestrator - INFO - 正在从目录加载自定义测试用例: ./custom_testcases
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_case_registry - INFO - 开始从目录 './custom_testcases' 及其子目录发现测试用例...
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' (路径: ./custom_testcases/basic_checks.py)
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_api_sanity_check_case 从 ./custom_testcases/setup_checks/basic_api_sanity_check_case.py
2025-06-05 15:29:09,339 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: https_mandatory_case 从 ./custom_testcases/compliance_catalog/security/https_mandatory_case.py
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) 来自类 'HTTPSMandatoryCase' (路径: ./custom_testcases/compliance_catalog/security/https_mandatory_case.py)
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: url_llm_checks 从 ./custom_testcases/compliance_catalog/normative_spec/url_llm_checks.py
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: http_method_usage_case 从 ./custom_testcases/compliance_catalog/normative_spec/http_method_usage_case.py
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: missing_required_field_query_case 从 ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) 来自类 'MissingRequiredFieldQueryCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py)
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_body_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py
2025-06-05 15:29:09,340 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) 来自类 'TypeMismatchBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py)
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: missing_required_field_body_case 从 ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) 来自类 'MissingRequiredFieldBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py)
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_query_param_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) 来自类 'TypeMismatchQueryParamCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py)
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) 来自类 'ResponseSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py)
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 7 个测试用例类进行了排序。
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 7 个独特的测试用例 (基于ID)。发现并排序了 7 个测试用例类。
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_orchestrator - INFO - 加载了 7 个自定义测试用例。
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_orchestrator - INFO - 未提供API场景目录跳过加载场景测试。
2025-06-05 15:29:09,341 - ddms_compliance_suite.test_orchestrator - INFO - APITestOrchestrator: 尝试从目录加载API测试阶段: ./custom_stages
2025-06-05 15:29:09,341 - ddms_compliance_suite.stage_registry - INFO - StageRegistry: 开始从目录 './custom_stages' 加载测试阶段...
2025-06-05 15:29:09,341 - ddms_compliance_suite.stage_registry - INFO - StageRegistry: 开始从目录 './custom_stages' 及其子目录发现测试阶段...
2025-06-05 15:29:09,342 - ddms_compliance_suite.stage_registry - DEBUG - StageRegistry: 成功导入模块: keyword_driven_crud_stage 从 ./custom_stages/keyword_driven_crud_stage.py
2025-06-05 15:29:09,342 - ddms_compliance_suite.stage_registry - INFO - StageRegistry: 已注册测试阶段: 'keyword_driven_crud_example' (类: KeywordDrivenCRUDStage) 从模块 'keyword_driven_crud_stage' (路径: ./custom_stages/keyword_driven_crud_stage.py)
2025-06-05 15:29:09,342 - ddms_compliance_suite.stage_registry - INFO - StageRegistry: 加载完成。共加载 1 个测试阶段。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_orchestrator - INFO - APITestOrchestrator: StageRegistry 初始化完毕。加载的API测试阶段数量: 1
2025-06-05 15:29:09,342 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_orchestrator - INFO - LLMService initialized successfully with model: qwen-plus.
2025-06-05 15:29:09,342 - __main__ - INFO - 从YAPI文件运行测试: ./assets/doc/井筒API示例_simple.json
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_orchestrator - INFO - 准备从YAPI文件运行测试用例: ./assets/doc/井筒API示例_simple.json
2025-06-05 15:29:09,342 - ddms_compliance_suite.input_parser.parser - INFO - Parsing YAPI spec from: ./assets/doc/井筒API示例_simple.json
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,342 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口)
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,343 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,343 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,343 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,344 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,392 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,392 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,393 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,412 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,412 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,412 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,412 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,413 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,413 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:09,445 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,445 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,445 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,446 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,446 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,446 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,446 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification.
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,446 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,446 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.018440961837768555
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'.
2025-06-05 15:29:09,465 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 15:29:09,465 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,465 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,466 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,466 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,466 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,466 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,466 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
2025-06-05 15:29:09,481 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '53'. (Field: body.isSearchCount)
2025-06-05 15:29:09,481 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.015290260314941406
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 15:29:09,481 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 15:29:09,481 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 15:29:09,481 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,482 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,500 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,501 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,501 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 15:29:09,501 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。Target param to remove: None
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716': application/json
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.isSearchCount): True
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.fields[0]): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.key): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.logic): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.filter.symbol): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_message_push_schema_version_135716] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_message_push_schema_version_135716_body.query.sort). Properties: []
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_message_push_schema_version_135716' (type: <class 'dict'>)
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'schema': 'example_schema', 'version': 'example_version'}
2025-06-05 15:29:09,501 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
2025-06-05 15:29:09,519 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 测试完成,最终状态: 失败
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询)
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,519 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,520 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,520 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,520 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,543 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,543 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,543 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,544 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
2025-06-05 15:29:09,560 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,560 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,560 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,561 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,561 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,561 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:09,578 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'pageNo'.
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'pageNo' (type: string) via its 'schema'.
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='pageNo', Path='pageNo', Type='string'
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['pageNo'], Original type: string
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'pageNo'.
2025-06-05 15:29:09,579 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 pageNo (键 'pageNo') 处设置值为 '12345'
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path.
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,579 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,579 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '70'. (Query param: pageNo)
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.01512289047241211
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'.
2025-06-05 15:29:09,595 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,595 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,595 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,614 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '71'. (Field: body.isSearchCount)
2025-06-05 15:29:09,614 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.01814103126525879
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 15:29:09,614 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 15:29:09,614 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 15:29:09,614 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,614 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,615 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=12345&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=12345&pageSize=query_val_pageSize\''
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
2025-06-05 15:29:09,631 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,631 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 15:29:09,631 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,632 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 15:29:09,632 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。Target param to remove: None
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:09,632 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:09,647 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 测试完成,最终状态: 失败
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改)
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,647 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,647 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,648 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,663 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,663 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,663 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,678 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,680 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,680 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,680 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:09,699 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'.
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'id' (type: string) via its 'schema'.
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string'
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['id'], Original type: string
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'id'.
2025-06-05 15:29:09,699 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path.
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,699 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,699 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '20'. (Query param: id)
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.013532876968383789
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=id, Type=string
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=id, Type=string
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): id, Original Type: string
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,713 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:09,713 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['id'], Original type: string
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'id'.
2025-06-05 15:29:09,714 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:09,714 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,714 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,714 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=query_val_pageNo&pageSize=query_val_pageSize\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345'
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 42' -d '{"id": 12345, "version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
2025-06-05 15:29:09,728 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'id' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '51'. (Field: body.id)
2025-06-05 15:29:09,728 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.014723777770996094
2025-06-05 15:29:09,728 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:09,728 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,728 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,729 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['id', 'version'], 属性: ['id', 'version']
2025-06-05 15:29:09,729 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'id'
2025-06-05 15:29:09,729 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'id'
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,729 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'id' 成功移除字段 'id' (原值: 'example_string')。
2025-06-05 15:29:09,729 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'id'。
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,729 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,742 - testcase.TC-ERROR-4003-BODY - INFO - TC-ERROR-4003-BODY: Passed (Fallback). HTTP status 200 (4xx) with matching business code '4003'. (Removed field: body.id)
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,742 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,743 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'.
2025-06-05 15:29:09,743 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: id
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'id': 'dsid'}
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749': application/json
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 object 类型数据 for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body). Properties: ['id', 'version']
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.id): example_string
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - [put__api_dms_dms_instance_code_v1_cd_geo_unit_135749] 生成 string 类型数据 ('') for (context: put__api_dms_dms_instance_code_v1_cd_geo_unit_135749_body.version): example_string
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'put__api_dms_dms_instance_code_v1_cd_geo_unit_135749' (type: <class 'dict'>)
2025-06-05 15:29:09,743 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,743 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,760 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '82'. (Removed query param: id)
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除)
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,760 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,760 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,775 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,775 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,775 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,803 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,803 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,803 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,804 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,804 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:09,831 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'.
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: Found simple type query parameter 'id' (type: string) via its 'schema'.
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string'
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Preparing to modify query params for type mismatch. Target path: ['id'], Original type: string
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Generated mismatched value '12345' for original type 'string' at query path 'id'.
2025-06-05 15:29:09,831 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - [TC-ERROR-4001-QUERY] Successfully set mismatched value in query params using util_set_value_at_path.
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,831 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,831 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '78'. (Query param: id)
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.015445947647094727
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['version'], Original type: string
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'.
2025-06-05 15:29:09,847 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345'
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,847 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,847 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,868 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '51'. (Field: body.version)
2025-06-05 15:29:09,868 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.02050924301147461
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,868 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data']
2025-06-05 15:29:09,868 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 15:29:09,868 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 15:29:09,868 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,868 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,883 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,883 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'.
2025-06-05 15:29:09,883 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: id
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'id': 'dsid'}
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750': application/json
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 object 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body). Properties: ['version', 'data']
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.version): example_string
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 array 类型数据 for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750] 生成 string 类型数据 ('') for (context: delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750_body.data[0]): example_string
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete__api_dms_dms_instance_code_v1_cd_geo_unit_135750' (type: <class 'dict'>)
2025-06-05 15:29:09,883 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,883 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 42\' -d \'{"id": 12345, "version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 29' -d '{"version": "example_string"}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 29\' -d \'{"version": "example_string"}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X PUT -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 53' -d '{"id": "example_string", "version": "example_string"}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -X PUT -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 53\' -d \'{"id": "example_string", "version": "example_string"}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=12345\''
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 46' -d '{"version": 12345, "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 46\' -d \'{"version": 12345, "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid'
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit?id=dsid\''
2025-06-05 15:29:09,897 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '22'. (Removed query param: id)
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加)
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,897 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,897 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,912 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,912 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,912 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,926 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,926 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,926 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,926 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:09,943 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification.
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,943 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:09,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,944 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,944 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.01344919204711914
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string
2025-06-05 15:29:09,957 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['version'], Original type: string
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'.
2025-06-05 15:29:09,958 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345'
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,958 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:09,958 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:09,976 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '56'. (Field: body.version)
2025-06-05 15:29:09,976 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.018712997436523438
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,977 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data']
2025-06-05 15:29:09,977 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略2: 在数组属性 'data' (路径 root) 的元素内找到必填字段: 'bsflag'. 路径: ['data', 0, 'bsflag']
2025-06-05 15:29:09,977 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data.0.bsflag'
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,977 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data.0.bsflag' 成功移除字段 'bsflag' (原值: '0.0')。
2025-06-05 15:29:09,977 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data.0.bsflag'。
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,977 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:09,993 - testcase.TC-ERROR-4003-BODY - WARNING - TC-ERROR-4003-BODY: Failed. 当移除必填请求体字段 'data.0.bsflag' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '49'. (Removed field: body.data.0.bsflag)
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:09,993 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 15:29:09,993 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。Target param to remove: None
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:09,994 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 57' -d '{"version": "example_string", "data": ["example_string"]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 57\' -d \'{"version": "example_string", "data": ["example_string"]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 141' -d '{"version": 12345, "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 141\' -d \'{"version": 12345, "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 137' -d '{"version": "example_string", "data": [{"wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 137\' -d \'{"version": "example_string", "data": [{"wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
2025-06-05 15:29:10,009 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情)
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 发现了 7 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-CORE-FUNC-001', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,009 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,009 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,009 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,024 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,024 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,024 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (Response Body JSON Schema Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,024 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,025 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,041 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 15:29:10,041 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 15:29:10,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 15:29:10,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,042 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,042 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS Protocol Mandatory Verification) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,042 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,042 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id' 不是HTTPS。跳过此测试用例的URL修改。
2025-06-05 15:29:10,056 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,056 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,056 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}
2025-06-05 15:29:10,056 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test.
2025-06-05 15:29:10,056 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 15:29:10,056 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (Error Code 4001 - Query Parameter Type Mismatch Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No target field or original type identified for query param type mismatch. Skipping query param modification.
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body.
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,057 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:10,057 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 152' -d '{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 152\' -d \'{"version": "example_string", "data": [{"bsflag": 0.0, "wellCommonName": "example_string", "wellId": "example_string", "dataRegion": "example_string"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.018019914627075195
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,075 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Initializing: Looking for a simple type field in request body for type mismatch test.
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=isSearchCount, Type=boolean
2025-06-05 15:29:10,075 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (Error Code 4001 - Request Body Type Mismatch Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,075 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters.
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Preparing to modify request body for type mismatch. Target path: ['isSearchCount'], Original type: boolean
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value 'not-a-boolean' for original type 'boolean' at path 'isSearchCount'.
2025-06-05 15:29:10,076 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path.
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,076 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook.
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 15:29:10,076 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 15:29:10,097 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '6'. (Field: body.isSearchCount)
2025-06-05 15:29:10,097 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.021120071411132812
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 15:29:10,097 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 15:29:10,097 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 15:29:10,097 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (Error Code 4003 - Missing Required Request Body Field Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,097 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,098 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,115 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 15:29:10,115 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 15:29:10,115 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 15:29:10,115 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>) to dict using .spec attribute.
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,116 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_yapi_id', '_yapi_raw_data', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['yapi_categories'])
2025-06-05 15:29:10,116 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 15:29:10,116 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。Target param to remove: None
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (Error Code 4003 - Missing Required Query Parameter Validation) for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752': application/json
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 使用 schema 中的 'default' 值 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.isSearchCount): True
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.fields[0]): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.key): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.logic): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.filter.symbol): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 array 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter). Items schema: {'type': 'string'}, minItems: 1
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 string 类型数据 ('') for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - [get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752] 生成 object 类型数据 for (context: get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752_body.query.sort). Properties: []
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'get__api_dms_dms_instance_code_v1_cd_geo_unit_version_id_135752' (type: <class 'dict'>)
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0', 'id': 'example_id'}
2025-06-05 15:29:10,116 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
2025-06-05 15:29:10,138 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 测试完成,最终状态: 失败
2025-06-05 15:29:10,139 - __main__ - INFO - 开始执行API测试阶段 (Stages),目录: ./custom_stages
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - Starting API Test Stage execution...
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - Evaluating test stages against 2 API group(s): ['公共分类', '地质单元']
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - 'keyword_driven_crud_example': Starting API endpoint matching within group 'Template Group'. Found 0 APIs in group.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - WARNING - 'keyword_driven_crud_example': No APIs found in the current group 'Template Group' to match against.
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - Processing Test Stage definition: ID='keyword_driven_crud_example', Name='Keyword-Driven Generic CRUD Stage Example'
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - WARNING - API group '公共分类' provided, but cannot determine group details or filter APIs for spec type <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - 'keyword_driven_crud_example': Starting API endpoint matching within group '公共分类'. Found 6 APIs in group.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}, Title: '地质单元列表查询') to operation type 'list_query' based on keyword '列表'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: PUT, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据修改') to operation type 'update' based on keyword '修改'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: DELETE, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据删除') to operation type 'delete' based on keyword '删除'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据添加') to operation type 'add' based on keyword '添加'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: GET, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}, Title: '地质单元查询详情') to operation type 'detail_query' based on keyword '详情'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - 'keyword_driven_crud_example': Finished API endpoint matching. Matched operations: ['list_query', 'update', 'delete', 'add', 'detail_query']
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Checking applicability of stage 'keyword_driven_crud_example' for API group '公共分类'...
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Checking applicability of 'Keyword-Driven Generic CRUD Stage Example' (RESOURCE_KEYWORD: '地质单元') for API group '公共分类'.
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['添加', '新建', '创建']', method='POST'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据添加', MatchedText='地质单元数据添加' (for resource='地质单元', action='['添加', '新建', '创建']', method='POST')
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['列表查询', '查询列表', '获取列表', '分页查询']', method='POST'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元列表查询', MatchedText='地质单元列表查询' (for resource='地质单元', action='['列表查询', '查询列表', '获取列表', '分页查询']', method='POST')
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['查询详情', '获取详情', '根据ID获取']', method='GET'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元查询详情', MatchedText='地质单元查询详情' (for resource='地质单元', action='['查询详情', '获取详情', '根据ID获取']', method='GET')
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['修改', '更新']', method='PUT'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据修改', MatchedText='地质单元数据修改' (for resource='地质单元', action='['修改', '更新']', method='PUT')
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['删除']', method='DELETE'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据删除', MatchedText='地质单元数据删除' (for resource='地质单元', action='['删除']', method='DELETE')
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'Keyword-Driven Generic CRUD Stage Example' is APPLICABLE for group '公共分类'. All CRUD operations found for '地质单元'. Discovered keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': '地质单元数据修改', 'delete': '地质单元数据删除'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - Test Stage 'keyword_driven_crud_example' is APPLICABLE to API group '公共分类'. Executing...
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_stage for stage 'keyword_driven_crud_example'. Context: {}
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Starting stage 'Keyword-Driven Generic CRUD Stage Example' for API group '公共分类'. Discovered op keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': '地质单元数据修改', 'delete': '地质单元数据删除'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Initial stage context: {'unique_resource_name': 'Test_地质单元_1749108550_93ddd2', 'updated_resource_name': 'Test_地质单元_1749108550_93ddd2_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_step for stage 'keyword_driven_crud_example', step 'Add New 地质单元'. Context: {'unique_resource_name': 'Test_地质单元_1749108550_93ddd2', 'updated_resource_name': 'Test_地质单元_1749108550_93ddd2_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing before_step for step 'Add New 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Looking up endpoint key='地质单元数据添加', group='公共分类'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 正在从 global_api_spec 中查找操作,键: '地质单元数据添加', API组: '公共分类'
2025-06-05 15:29:10,139 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 找到匹配操作 '地质单元数据添加' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Preparing request data for resolved endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,139 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_93ddd2' (路径: 'unique_resource_name')
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'your_dms_instance_code' (路径: 'dms_instance_code')
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_93ddd2' (路径: 'unique_resource_name')
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Constructed full_request_url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:10,140 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Executing API call POST http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Validating response. Status: 200
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Extracting outputs. Map: {}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_step for stage 'keyword_driven_crud_example', step 'Add New 地质单元'.
2025-06-05 15:29:10,155 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing after_step for step 'Add New 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_step for stage 'keyword_driven_crud_example', step 'List and Find Created 地质单元'. Context: {'unique_resource_name': 'Test_地质单元_1749108550_93ddd2', 'updated_resource_name': 'Test_地质单元_1749108550_93ddd2_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,155 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing before_step for step 'List and Find Created 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Looking up endpoint key='地质单元列表查询', group='公共分类'
2025-06-05 15:29:10,155 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 正在从 global_api_spec 中查找操作,键: '地质单元列表查询', API组: '公共分类'
2025-06-05 15:29:10,155 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 找到匹配操作 '地质单元列表查询' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Preparing request data for resolved endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,155 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_93ddd2' (路径: 'unique_resource_name')
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'your_dms_instance_code' (路径: 'dms_instance_code')
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_93ddd2' (路径: 'unique_resource_name')
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Constructed full_request_url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:10,156 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Executing API call POST http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 488' -d '{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 488\' -d \'{"isSearchCount": "not-a-boolean", "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -X GET -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: header_val_tenant-id' -H 'Content-Type: application/json' -H 'Content-Length: 477' -d '{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id
DEBUG: curlify generated command (repr): 'curl -X GET -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: header_val_tenant-id\' -H \'Content-Type: application/json\' -H \'Content-Length: 477\' -d \'{"isSearchCount": true, "query": {"dataRegions": ["example_string"], "fields": ["example_string"], "filter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "groupFields": ["example_string"], "groupFilter": {"key": "example_string", "logic": "example_string", "realValue": [{}], "singleValue": {}, "subFilter": ["example_string"], "symbol": "example_string"}, "sort": {}}}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: your-tenant-id' -H 'Content-Type: application/json' -H 'Authorization: Bearer your-test-token' -H 'Content-Length: 181' -d '{"version": "1.0.0", "data": [{"bsflag": 0, "wellCommonName": "Test_\u5730\u8d28\u5355\u5143_1749108550_93ddd2", "wellId": "ExampleWellID_1749108550", "dataRegion": "TEST_REGION"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: your-tenant-id\' -H \'Content-Type: application/json\' -H \'Authorization: Bearer your-test-token\' -H \'Content-Length: 181\' -d \'{"version": "1.0.0", "data": [{"bsflag": 0, "wellCommonName": "Test_\\u5730\\u8d28\\u5355\\u5143_1749108550_93ddd2", "wellId": "ExampleWellID_1749108550", "dataRegion": "TEST_REGION"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit'
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Validating response. Status: 200
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Running assertion 'find_and_extract_id_by_name'
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Assertion 'find_and_extract_id_by_name' failed: 在列表响应中未找到名称为 'Test_地质单元_1749108550_93ddd2' (字段: wellCommonName) 的资源。
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Extracting outputs. Map: {'created_resource_id': 'body.data.list[0].dsid'}
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元''] 尝试提取 'body.data.list[0].dsid' 到上下文变量 'created_resource_id'
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - WARNING - [阶段步骤 'Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元''] 未能从路径 'body.data.list[0].dsid' 提取到值。
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_step for stage 'keyword_driven_crud_example', step 'List and Find Created 地质单元'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing after_step for step 'List and Find Created 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元' status 失败, continue_on_failure=False. Aborting stage.
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_stage for stage 'keyword_driven_crud_example'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 结束阶段 'Keyword-Driven Generic CRUD Stage Example' (资源关键字: '地质单元'). API分组: '公共分类'. 最终状态: Status.FAILED. 最终上下文: {'unique_resource_name': 'Test_地质单元_1749108550_93ddd2', 'updated_resource_name': 'Test_地质单元_1749108550_93ddd2_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example' execution finished. API Group: '公共分类', Final Status: 失败, Duration: 0.03s
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - WARNING - API group '地质单元' provided, but cannot determine group details or filter APIs for spec type <class 'ddms_compliance_suite.input_parser.parser.ParsedYAPISpec'>.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - 'keyword_driven_crud_example': Starting API endpoint matching within group '地质单元'. Found 6 APIs in group.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}, Title: '地质单元列表查询') to operation type 'list_query' based on keyword '列表'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: PUT, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据修改') to operation type 'update' based on keyword '修改'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: DELETE, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据删除') to operation type 'delete' based on keyword '删除'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit, Title: '地质单元数据添加') to operation type 'add' based on keyword '添加'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': Matched API (Method: GET, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}, Title: '地质单元查询详情') to operation type 'detail_query' based on keyword '详情'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - 'keyword_driven_crud_example': Finished API endpoint matching. Matched operations: ['list_query', 'update', 'delete', 'add', 'detail_query']
2025-06-05 15:29:10,170 - ddms_compliance_suite.test_orchestrator - DEBUG - Checking applicability of stage 'keyword_driven_crud_example' for API group '地质单元'...
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Checking applicability of 'Keyword-Driven Generic CRUD Stage Example' (RESOURCE_KEYWORD: '地质单元') for API group '地质单元'.
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['添加', '新建', '创建']', method='POST'
2025-06-05 15:29:10,170 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据添加', MatchedText='地质单元数据添加' (for resource='地质单元', action='['添加', '新建', '创建']', method='POST')
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['列表查询', '查询列表', '获取列表', '分页查询']', method='POST'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元列表查询', MatchedText='地质单元列表查询' (for resource='地质单元', action='['列表查询', '查询列表', '获取列表', '分页查询']', method='POST')
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['查询详情', '获取详情', '根据ID获取']', method='GET'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元查询详情', MatchedText='地质单元查询详情' (for resource='地质单元', action='['查询详情', '获取详情', '根据ID获取']', method='GET')
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['修改', '更新']', method='PUT'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据修改', MatchedText='地质单元数据修改' (for resource='地质单元', action='['修改', '更新']', method='PUT')
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Searching for op with resource='地质单元', actions='['删除']', method='DELETE'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Discovered endpoint: Key='地质单元数据删除', MatchedText='地质单元数据删除' (for resource='地质单元', action='['删除']', method='DELETE')
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'Keyword-Driven Generic CRUD Stage Example' is APPLICABLE for group '地质单元'. All CRUD operations found for '地质单元'. Discovered keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': '地质单元数据修改', 'delete': '地质单元数据删除'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - Test Stage 'keyword_driven_crud_example' is APPLICABLE to API group '地质单元'. Executing...
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_stage for stage 'keyword_driven_crud_example'. Context: {}
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Starting stage 'Keyword-Driven Generic CRUD Stage Example' for API group '地质单元'. Discovered op keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': '地质单元数据修改', 'delete': '地质单元数据删除'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - Initial stage context: {'unique_resource_name': 'Test_地质单元_1749108550_4a265e', 'updated_resource_name': 'Test_地质单元_1749108550_4a265e_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_step for stage 'keyword_driven_crud_example', step 'Add New 地质单元'. Context: {'unique_resource_name': 'Test_地质单元_1749108550_4a265e', 'updated_resource_name': 'Test_地质单元_1749108550_4a265e_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing before_step for step 'Add New 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Looking up endpoint key='地质单元数据添加', group='地质单元'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 正在从 global_api_spec 中查找操作,键: '地质单元数据添加', API组: '地质单元'
2025-06-05 15:29:10,171 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 找到匹配操作 '地质单元数据添加' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Preparing request data for resolved endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748': application/json
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body). Properties: ['version', 'data']
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.version): example_string
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data). Items schema: {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, minItems: 1
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0]). Properties: ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 number/integer 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].bsflag): 0.0
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellCommonName): example_string
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].wellId): example_string
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_135748] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_135748_body.data[0].dataRegion): example_string
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_135748' (type: <class 'dict'>)
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_4a265e' (路径: 'unique_resource_name')
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'your_dms_instance_code' (路径: 'dms_instance_code')
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Add New 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Add New 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_4a265e' (路径: 'unique_resource_name')
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Constructed full_request_url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:10,171 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Executing API call POST http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Validating response. Status: 200
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'Add New 地质单元': Extracting outputs. Map: {}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_step for stage 'keyword_driven_crud_example', step 'Add New 地质单元'.
2025-06-05 15:29:10,188 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing after_step for step 'Add New 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling before_step for stage 'keyword_driven_crud_example', step 'List and Find Created 地质单元'. Context: {'unique_resource_name': 'Test_地质单元_1749108550_4a265e', 'updated_resource_name': 'Test_地质单元_1749108550_4a265e_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,188 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing before_step for step 'List and Find Created 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Looking up endpoint key='地质单元列表查询', group='地质单元'
2025-06-05 15:29:10,188 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 正在从 global_api_spec 中查找操作,键: '地质单元列表查询', API组: '地质单元'
2025-06-05 15:29:10,188 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 'keyword_driven_crud_example': 找到匹配操作 '地质单元列表查询' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Preparing request data for resolved endpoint: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'dms_instance_code': 'example_dms_instance_code', 'version': '1.0.0'}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial query param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'pageNo': 'query_val_pageNo', 'pageSize': 'query_val_pageSize'}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial custom header param for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': {'tenant-id': 'header_val_tenant-id'}
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751': application/json
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body). Properties: ['isSearchCount', 'query']
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 使用 schema 中的 'default' 值 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.isSearchCount): True
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query). Properties: ['dataRegions', 'fields', 'filter', 'groupFields', 'groupFilter', 'sort']
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions). Items schema: {'description': '数据域JD、DG、TL', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.dataRegions[0]): example_string
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields). Items schema: {'description': '查询的字段', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.fields[0]): example_string
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.key): example_string
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.logic): example_string
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.realValue[0]). Properties: []
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.singleValue). Properties: []
2025-06-05 15:29:10,188 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter). Items schema: {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.subFilter[0]): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.filter.symbol): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields). Items schema: {'description': '分组字段group by', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFields[0]): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter). Properties: ['key', 'logic', 'realValue', 'singleValue', 'subFilter', 'symbol']
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.key): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.logic): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue). Items schema: {'description': '条件值', 'type': 'object', 'properties': {}}, minItems: 1
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.realValue[0]). Properties: []
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.singleValue). Properties: []
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 array 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter). Items schema: {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, minItems: 1
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.subFilter[0]): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 string 类型数据 ('') for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.groupFilter.symbol): example_string
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751] 生成 object 类型数据 for (context: post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751_body.query.sort). Properties: []
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'post__api_dms_dms_instance_code_v1_cd_geo_unit_version_135751' (type: <class 'dict'>)
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_4a265e' (路径: 'unique_resource_name')
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'your_dms_instance_code' (路径: 'dms_instance_code')
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 '1.0.0' (路径: 'api_version')
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created 地质单元'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created 地质单元'] 从上下文解析到值 'Test_地质单元_1749108550_4a265e' (路径: 'unique_resource_name')
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Constructed full_request_url: http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:10,189 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Executing API call POST http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Validating response. Status: 200
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Running assertion 'find_and_extract_id_by_name'
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Assertion 'find_and_extract_id_by_name' failed: 在列表响应中未找到名称为 'Test_地质单元_1749108550_4a265e' (字段: wellCommonName) 的资源。
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元': Extracting outputs. Map: {'created_resource_id': 'body.data.list[0].dsid'}
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元''] 尝试提取 'body.data.list[0].dsid' 到上下文变量 'created_resource_id'
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - WARNING - [阶段步骤 'Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元''] 未能从路径 'body.data.list[0].dsid' 提取到值。
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_step for stage 'keyword_driven_crud_example', step 'List and Find Created 地质单元'.
2025-06-05 15:29:10,206 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - DEBUG - Executing after_step for step 'List and Find Created 地质单元' in stage 'keyword_driven_crud_example'
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'keyword_driven_crud_example', Step 'List and Find Created 地质单元' status 失败, continue_on_failure=False. Aborting stage.
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - DEBUG - Calling after_stage for stage 'keyword_driven_crud_example'.
2025-06-05 15:29:10,206 - ddms_compliance_suite.stage_framework.KeywordDrivenCRUDStage - INFO - 结束阶段 'Keyword-Driven Generic CRUD Stage Example' (资源关键字: '地质单元'). API分组: '地质单元'. 最终状态: Status.FAILED. 最终上下文: {'unique_resource_name': 'Test_地质单元_1749108550_4a265e', 'updated_resource_name': 'Test_地质单元_1749108550_4a265e_UPDATED', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'keyword_driven_crud_example' execution finished. API Group: '地质单元', Final Status: 失败, Duration: 0.04s
2025-06-05 15:29:10,206 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 2 (stage_definition x api_group) combinations.
2025-06-05 15:29:10,206 - __main__ - INFO - API测试阶段 (Stages) 执行完毕。
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: your-tenant-id' -H 'Content-Type: application/json' -H 'Authorization: Bearer your-test-token' -H 'Content-Length: 190' -d '{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["Test_\u5730\u8d28\u5355\u5143_1749108550_93ddd2"]}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=1&pageSize=10'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: your-tenant-id\' -H \'Content-Type: application/json\' -H \'Authorization: Bearer your-test-token\' -H \'Content-Length: 190\' -d \'{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["Test_\\u5730\\u8d28\\u5355\\u5143_1749108550_93ddd2"]}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=1&pageSize=10\''
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: your-tenant-id' -H 'Content-Type: application/json' -H 'Authorization: Bearer your-test-token' -H 'Content-Length: 181' -d '{"version": "1.0.0", "data": [{"bsflag": 0, "wellCommonName": "Test_\u5730\u8d28\u5355\u5143_1749108550_4a265e", "wellId": "ExampleWellID_1749108550", "dataRegion": "TEST_REGION"}]}' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: your-tenant-id\' -H \'Content-Type: application/json\' -H \'Authorization: Bearer your-test-token\' -H \'Content-Length: 181\' -d \'{"version": "1.0.0", "data": [{"bsflag": 0, "wellCommonName": "Test_\\u5730\\u8d28\\u5355\\u5143_1749108550_4a265e", "wellId": "ExampleWellID_1749108550", "dataRegion": "TEST_REGION"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit'
DEBUG: curlify generated command (raw): curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'tenant-id: your-tenant-id' -H 'Content-Type: application/json' -H 'Authorization: Bearer your-test-token' -H 'Content-Length: 190' -d '{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["Test_\u5730\u8d28\u5355\u5143_1749108550_4a265e"]}}}' --insecure 'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=1&pageSize=10'
DEBUG: curlify generated command (repr): 'curl -H \'User-Agent: python-requests/2.32.3\' -H \'Accept-Encoding: gzip, deflate, br, zstd\' -H \'Accept: application/json\' -H \'Connection: keep-alive\' -H \'tenant-id: your-tenant-id\' -H \'Content-Type: application/json\' -H \'Authorization: Bearer your-test-token\' -H \'Content-Length: 190\' -d \'{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["Test_\\u5730\\u8d28\\u5355\\u5143_1749108550_4a265e"]}}}\' --insecure \'http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit/1.0.0?pageNo=1&pageSize=10\''
===== 测试运行摘要 =====
开始时间: 2025-06-05T15:29:09.342664
结束时间: 2025-06-05T15:29:10.206388
总耗时: 0.86 秒
--- 端点统计 ---
定义的端点总数: 6
实际测试的端点数: 6
通过: 0
失败: 6
部分成功: 0
执行错误: 0
跳过执行: 0
端点通过率: 0.00%
--- 测试用例统计 ---
适用的测试用例总数 (计划执行): 42
实际执行的测试用例总数: 42
通过: 24
失败: 18
执行错误 (测试用例代码问题): 0
跳过 (在端点内被跳过): 0
测试用例通过率: 57.14%
--- 失败的端点摘要 ---
端点: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '53'.
端点: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation)
- 验证点: 当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '70'.
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '71'.
端点: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation)
- 验证点: 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '20'.
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'id' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '51'.
- 测试用例失败: TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation)
- 验证点: 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '82'.
端点: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
2025-06-05 15:29:10,208 - __main__ - INFO - 测试结果已保存为JSON: test_reports/summary.json
2025-06-05 15:29:10,208 - __main__ - INFO - API调用详情将以 Markdown 格式保存到目录 'test_reports' (使用默认文件名 'api_call_details.md')
2025-06-05 15:29:10,210 - __main__ - INFO - API调用详情已保存为 Markdown: test_reports/api_call_details.md
2025-06-05 15:29:10,210 - __main__ - INFO - 部分测试失败或出错,请检查报告。
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-QUERY (Error Code 4001 - Query Parameter Type Mismatch Validation)
- 验证点: 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '78'.
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '51'.
- 测试用例失败: TC-ERROR-4003-QUERY (Error Code 4003 - Missing Required Query Parameter Validation)
- 验证点: 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '22'.
端点: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '56'.
- 测试用例失败: TC-ERROR-4003-BODY (Error Code 4003 - Missing Required Request Body Field Validation)
- 验证点: 当移除必填请求体字段 'data.0.bsflag' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '49'.
端点: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情) - 状态: 失败
- 测试用例失败: TC-SECURITY-001 (HTTPS Protocol Mandatory Verification)
- 验证点: API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id) 响应了成功的状态码 200这违反了HTTPS强制策略。
- 测试用例失败: TC-ERROR-4001-BODY (Error Code 4001 - Request Body Type Mismatch Validation)
- 验证点: 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '6'.
--- API测试阶段 (Stage) 统计 ---
定义的API阶段总数: 1
实际执行的API阶段数: 2
通过: 0
失败: 2
跳过: 0
阶段通过率: 0.00%
--- 失败的API阶段摘要 ---
阶段: keyword_driven_crud_example (Keyword-Driven Generic CRUD Stage Example) - 应用于分组: '公共分类' - 状态: 失败
- 步骤失败: List and Find Created 地质单元 - 消息: Assertion 'find_and_extract_id_by_name' failed: 在列表响应中未找到名称为 'Test_地质单元_1749108550_93ddd2' (字段: wellCommonName) 的资源。.
阶段: keyword_driven_crud_example (Keyword-Driven Generic CRUD Stage Example) - 应用于分组: '地质单元' - 状态: 失败
- 步骤失败: List and Find Created 地质单元 - 消息: Assertion 'find_and_extract_id_by_name' failed: 在列表响应中未找到名称为 'Test_地质单元_1749108550_4a265e' (字段: wellCommonName) 的资源。.