compliance/log_stage.txt
2025-06-05 18:29:04 +08:00

2682 lines
801 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 18:28:02,489 - __main__ - DEBUG - 已启用详细日志模式
2025-06-05 18:28:02,490 - __main__ - INFO - 主输出目录设置为: /Users/zpc01/workspace/zzlh/compliance/test_reports
2025-06-05 18:28:02,490 - ddms_compliance_suite.test_case_registry - INFO - 开始从目录 './custom_testcases' 及其子目录发现测试用例...
2025-06-05 18:28:02,490 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py
2025-06-05 18:28:02,490 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' (路径: ./custom_testcases/basic_checks.py)
2025-06-05 18:28:02,490 - 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 18:28:02,491 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: https_mandatory_case 从 ./custom_testcases/compliance_catalog/security/https_mandatory_case.py
2025-06-05 18:28:02,491 - 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 18:28:02,491 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: url_llm_checks 从 ./custom_testcases/compliance_catalog/normative_spec/url_llm_checks.py
2025-06-05 18:28:02,491 - 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 18:28:02,491 - 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 18:28:02,491 - 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 18:28:02,492 - 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 18:28:02,492 - 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 18:28:02,492 - 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 18:28:02,492 - 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 18:28:02,492 - 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 18:28:02,492 - 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 18:28:02,492 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py
2025-06-05 18:28:02,492 - 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 18:28:02,492 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 7 个测试用例类进行了排序。
2025-06-05 18:28:02,492 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 7 个独特的测试用例 (基于ID)。发现并排序了 7 个测试用例类。
2025-06-05 18:28:02,492 - 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 18:28:02,492 - ddms_compliance_suite.test_orchestrator - INFO - LLMService initialized with model: qwen-plus.
2025-06-05 18:28:02,492 - ddms_compliance_suite.test_orchestrator - INFO - LLMService is initialized, but no LLM generation flags (--use-llm-for-*) are enabled.
2025-06-05 18:28:02,492 - ddms_compliance_suite.stage_registry - INFO - 开始从目录发现测试阶段: custom_stages
2025-06-05 18:28:02,493 - ddms_compliance_suite.stage_registry - DEBUG - 成功加载模块: ddms_compliance_suite.stages.keyword_driven_crud_stage 从 custom_stages/keyword_driven_crud_stage.py
2025-06-05 18:28:02,493 - ddms_compliance_suite.stage_registry - INFO - 成功注册测试阶段: generic_crud_validation_stage (来自 ddms_compliance_suite.stages.keyword_driven_crud_stage.GenericCRUDValidationStage)
2025-06-05 18:28:02,493 - ddms_compliance_suite.stage_registry - INFO - 测试阶段发现完成。共加载 1 个阶段。发现 0 个错误。
2025-06-05 18:28:02,493 - ddms_compliance_suite.test_orchestrator - INFO - StageRegistry initialized. Loaded 1 stages.
2025-06-05 18:28:02,493 - ddms_compliance_suite.test_orchestrator - INFO - Orchestrator output directory set to: /Users/zpc01/workspace/zzlh/compliance/test_reports
2025-06-05 18:28:02,493 - __main__ - INFO - 从YAPI文件运行测试: ./assets/doc/井筒API示例_simple.json
2025-06-05 18:28:02,493 - ddms_compliance_suite.test_orchestrator - INFO - 准备从YAPI文件运行测试用例: ./assets/doc/井筒API示例_simple.json
2025-06-05 18:28:02,493 - ddms_compliance_suite.input_parser.parser - INFO - Parsing YAPI spec from: ./assets/doc/井筒API示例_simple.json
2025-06-05 18:28:02,493 - ddms_compliance_suite.test_orchestrator - INFO - TestSummary initialized.
2025-06-05 18:28:02,493 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 18:28:02,493 - 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 18:28:02,493 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口)
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 18:28:02,494 - 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 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,494 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,494 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,494 - 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 18:28:02,571 - 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 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,571 - 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 18:28:02,571 - 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 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,571 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,571 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,571 - 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 18:28:02,571 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 18:28:02,571 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,572 - 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 18:28:02,596 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'
2025-06-05 18:28:02,596 - 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 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,596 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,596 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,596 - 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 18:28:02,596 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。
2025-06-05 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,596 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,597 - 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 18:28:02,618 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,618 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,618 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 18:28:02,618 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,618 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - 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 18:28:02,619 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,619 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:02,635 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 18:28:02,635 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.016556739807128906
2025-06-05 18:28:02,635 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,636 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:02,636 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:02,636 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 18:28:02,636 - 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 18:28:02,636 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,636 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 18:28:02,636 - 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 18:28:02,636 - 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 18:28:02,637 - 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 18:28:02,637 - 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 18:28:02,637 - 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 18:28:02,637 - 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 18:28:02,637 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,637 - 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 18:28:02,653 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '83'. (Field: body.isSearchCount)
2025-06-05 18:28:02,653 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.016505002975463867
2025-06-05 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:02,653 - 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 18:28:02,653 - 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 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,653 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,653 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,654 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,654 - 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 18:28:02,654 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 18:28:02,654 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 18:28:02,654 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 18:28:02,654 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,654 - 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 18:28:02,671 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 18:28:02,671 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 18:28:02,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 18:28:02,671 - 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 18:28:02,671 - 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 18:28:02,671 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,671 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,672 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('schema') 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('version') 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,672 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,672 - 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 18:28:02,672 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,672 - 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 18:28:02,688 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 测试完成,最终状态: 失败
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询)
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 18:28:02,689 - 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 18:28:02,689 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。
2025-06-05 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 18:28:02,689 - 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 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,689 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,689 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,689 - 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 18:28:02,689 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,689 - 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 18:28:02,705 - 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 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,705 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,705 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,705 - 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 18:28:02,705 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,705 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,706 - 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 18:28:02,721 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 18:28:02,721 - 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 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,721 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,721 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,722 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,722 - 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 18:28:02,722 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。
2025-06-05 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,722 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,723 - 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 18:28:02,738 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:02,738 - 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 18:28:02,738 - 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 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,738 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,738 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,738 - 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 18:28:02,738 - 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 18:28:02,738 - 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 18:28:02,738 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'pageNo'.
2025-06-05 18:28:02,738 - 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 18:28:02,738 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='pageNo', Path='pageNo', Type='string'
2025-06-05 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 pageNo (键 'pageNo') 处设置值为 '12345'
2025-06-05 18:28:02,739 - 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 18:28:02,739 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - 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 18:28:02,739 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,739 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:02,754 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '3'. (Query param: pageNo)
2025-06-05 18:28:02,754 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.015194177627563477
2025-06-05 18:28:02,754 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 18:28:02,754 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 18:28:02,755 - 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 18:28:02,755 - 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 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,755 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,755 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,755 - 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 18:28:02,755 - 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 18:28:02,755 - 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 18:28:02,755 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:02,755 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:02,755 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 18:28:02,755 - 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 18:28:02,755 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 18:28:02,755 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,756 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - 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 18:28:02,757 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,757 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:02,774 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '55'. (Field: body.isSearchCount)
2025-06-05 18:28:02,774 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.016716957092285156
2025-06-05 18:28:02,774 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:02,774 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:02,774 - 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 18:28:02,774 - 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 18:28:02,774 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,774 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,774 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,774 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,774 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,775 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,775 - 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 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 18:28:02,775 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 18:28:02,775 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 18:28:02,775 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 18:28:02,775 - 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 18:28:02,775 - 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 18:28:02,775 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,776 - 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 18:28:02,796 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,796 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('pageNo') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('pageSize') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('tenant-id') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[5] ('Authorization') 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:02,796 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,796 - 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 18:28:02,796 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,796 - 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 18:28:02,829 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 测试完成,最终状态: 失败
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改)
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,829 - 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 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,829 - 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 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,829 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,829 - 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 18:28:02,829 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - 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 18:28:02,829 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,829 - 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 18:28:02,843 - 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 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,843 - 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 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,843 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,843 - 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 18:28:02,843 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,843 - 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 18:28:02,843 - 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 18:28:02,843 - 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 18:28:02,843 - 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 18:28:02,843 - 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 18:28:02,843 - 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 18:28:02,844 - 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 18:28:02,844 - 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 18:28:02,844 - 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 18:28:02,844 - 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 18:28:02,844 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,844 - 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 18:28:02,859 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,863 - 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 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,863 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,863 - 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 18:28:02,863 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - 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 18:28:02,863 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,864 - 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 18:28:02,864 - 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 18:28:02,880 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,880 - 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 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,880 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,880 - 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 18:28:02,880 - 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 18:28:02,880 - 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 18:28:02,880 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'.
2025-06-05 18:28:02,880 - 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 18:28:02,880 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string'
2025-06-05 18:28:02,880 - 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 18:28:02,880 - 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 18:28:02,880 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 18:28:02,881 - 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 18:28:02,881 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,881 - 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 18:28:02,881 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - 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 18:28:02,881 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,881 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:02,894 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '15'. (Query param: id)
2025-06-05 18:28:02,895 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.013543844223022461
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,895 - 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 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,895 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,895 - 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 18:28:02,895 - 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 18:28:02,895 - 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 18:28:02,895 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:02,895 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:02,895 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=id, Type=string
2025-06-05 18:28:02,895 - 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 18:28:02,895 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): id, Original Type: string
2025-06-05 18:28:02,895 - 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 18:28:02,895 - 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 18:28:02,895 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,896 - 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 18:28:02,896 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'id'.
2025-06-05 18:28:02,896 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 18:28:02,896 - 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 18:28:02,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - 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 18:28:02,896 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,896 - 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 18:28:02,910 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'id' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '9'. (Field: body.id)
2025-06-05 18:28:02,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.013818025588989258
2025-06-05 18:28:02,910 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:02,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:02,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,910 - 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 18:28:02,910 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,911 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,911 - 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 18:28:02,911 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['id', 'version'], 属性: ['id', 'version']
2025-06-05 18:28:02,911 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'id'
2025-06-05 18:28:02,911 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'id'
2025-06-05 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,911 - 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 18:28:02,912 - 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 18:28:02,912 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'id' 成功移除字段 'id' (原值: 'example_string')。
2025-06-05 18:28:02,912 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'id'。
2025-06-05 18:28:02,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,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 18:28:02,935 - 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 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,935 - 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 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,935 - 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 18:28:02,935 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'.
2025-06-05 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - 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 18:28:02,935 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。
2025-06-05 18:28:02,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,935 - 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 18:28:02,949 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '76'. (Removed query param: id)
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除)
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:02,949 - 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 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,949 - 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 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,949 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,949 - 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 18:28:02,949 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - 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 18:28:02,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,949 - 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 18:28:02,964 - 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 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,964 - 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 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,964 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,964 - 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 18:28:02,964 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,964 - 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 18:28:02,965 - 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 18:28:02,965 - 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 18:28:02,965 - 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 18:28:02,965 - 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 18:28:02,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,965 - 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 18:28:02,979 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,980 - 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 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,980 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,980 - 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 18:28:02,980 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - 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 18:28:02,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,980 - 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 18:28:02,981 - 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 18:28:02,998 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:02,998 - 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 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:02,998 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - testcase.TC-ERROR-4001-QUERY - DEBUG - _find_first_simple_type_parameter: Checking query parameter 'id'.
2025-06-05 18:28:02,998 - 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 18:28:02,998 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Target for type mismatch (query): Param='id', Path='id', Type='string'
2025-06-05 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 id (键 'id') 处设置值为 '12345'
2025-06-05 18:28:02,998 - 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 18:28:02,998 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,998 - 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 18:28:02,998 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - 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 18:28:02,998 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:02,998 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:03,014 - testcase.TC-ERROR-4001-QUERY - WARNING - TC-ERROR-4001-QUERY: Failed. 当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '72'. (Query param: id)
2025-06-05 18:28:03,014 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.015112161636352539
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-QUERY' 执行失败。
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 失败
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,014 - 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 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,014 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:03,014 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:03,014 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string
2025-06-05 18:28:03,014 - 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 18:28:03,014 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string
2025-06-05 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,014 - 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 18:28:03,014 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'.
2025-06-05 18:28:03,014 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345'
2025-06-05 18:28:03,014 - 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 18:28:03,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - 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 18:28:03,014 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,014 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:03,031 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '54'. (Field: body.version)
2025-06-05 18:28:03,031 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.01698923110961914
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,031 - 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 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:03,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,032 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,032 - 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 18:28:03,032 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data']
2025-06-05 18:28:03,032 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 18:28:03,032 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 18:28:03,032 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - 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 18:28:03,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,032 - 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 18:28:03,047 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,047 - 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 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('id') 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('tenant-id') 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('Authorization') 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,047 - 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 18:28:03,047 - testcase.TC-ERROR-4003-QUERY - INFO - Found required 'query' parameter: 'id'.
2025-06-05 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - 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 18:28:03,047 - testcase.TC-ERROR-4003-QUERY - INFO - 为进行必填查询参数缺失测试,已从查询参数中移除 'id' (原值: 'dsid')。
2025-06-05 18:28:03,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,047 - 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 18:28:03,061 - testcase.TC-ERROR-4003-QUERY - WARNING - TC-ERROR-4003-QUERY: Failed. 当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'. (Removed query param: id)
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-QUERY' 执行失败。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 失败
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加)
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。
2025-06-05 18:28:03,061 - 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 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,061 - 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 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,061 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,062 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,062 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,062 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,062 - 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 18:28:03,062 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - 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 18:28:03,062 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,062 - 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 18:28:03,081 - 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 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,081 - 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 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,081 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,081 - 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 18:28:03,081 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - 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 18:28:03,081 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,082 - 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 18:28:03,096 - testcase.TC-CORE-FUNC-001 - INFO - 响应包含JSON体但在API规范中未找到针对状态码 200 的JSON schema。跳过schema验证。
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,096 - 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 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,096 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,096 - 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 18:28:03,096 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。
2025-06-05 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,096 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,097 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,097 - 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 18:28:03,097 - 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 18:28:03,110 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,110 - 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 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,110 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 18:28:03,110 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,110 - 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 18:28:03,111 - 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 18:28:03,111 - 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 18:28:03,111 - 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 18:28:03,111 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,111 - 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 18:28:03,111 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,111 - 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 18:28:03,111 - 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 18:28:03,111 - 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 18:28:03,111 - 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 18:28:03,111 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,111 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:03,124 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 18:28:03,124 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.013585090637207031
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,124 - 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 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,124 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,124 - 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 18:28:03,124 - 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 18:28:03,125 - 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 18:28:03,125 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:03,125 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:03,125 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string
2025-06-05 18:28:03,125 - 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 18:28:03,125 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string
2025-06-05 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,125 - 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 18:28:03,125 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'.
2025-06-05 18:28:03,125 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345'
2025-06-05 18:28:03,125 - 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 18:28:03,125 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - 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 18:28:03,125 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,125 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:03,139 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '92'. (Field: body.version)
2025-06-05 18:28:03,139 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.01363515853881836
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,139 - 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 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,139 - 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 18:28:03,139 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['version', 'data']
2025-06-05 18:28:03,139 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略2: 在数组属性 'data' (路径 root) 的元素内找到必填字段: 'bsflag'. 路径: ['data', 0, 'bsflag']
2025-06-05 18:28:03,139 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data.0.bsflag'
2025-06-05 18:28:03,139 - 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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,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 18:28:03,139 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data.0.bsflag' 成功移除字段 'bsflag' (原值: '0.0')。
2025-06-05 18:28:03,139 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data.0.bsflag'。
2025-06-05 18:28:03,139 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,139 - 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 18:28:03,156 - testcase.TC-ERROR-4003-BODY - WARNING - TC-ERROR-4003-BODY: Failed. 当移除必填请求体字段 'data.0.bsflag' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '35'. (Removed field: body.data.0.bsflag)
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,157 - 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 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('tenant-id') 的 schema...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('Authorization') 的 schema...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '201' content 'application/json' 的 schema...
2025-06-05 18:28:03,157 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,157 - 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 18:28:03,157 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - 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 18:28:03,157 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'dms_instance_code': 'example_dms_instance_code'}
2025-06-05 18:28:03,157 - 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 18:28:03,177 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 失败
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情)
2025-06-05 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,177 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,177 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,177 - 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 18:28:03,177 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。
2025-06-05 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,177 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,178 - 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 18:28:03,192 - 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 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过
2025-06-05 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,193 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,193 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,193 - 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 18:28:03,207 - testcase.TC-CORE-FUNC-001 - INFO - 将根据路径 'responses.200.content.application/json.schema' 的schema验证响应体。
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过
2025-06-05 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,207 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,207 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,207 - 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 18:28:03,207 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。
2025-06-05 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,207 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,208 - 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 18:28:03,221 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞API允许通过HTTP成功响应 (200)。
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败
2025-06-05 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,221 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,221 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters.
2025-06-05 18:28:03,221 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test.
2025-06-05 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,221 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - 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 18:28:03,222 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,222 - 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 18:28:03,235 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified.
2025-06-05 18:28:03,235 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.012937068939208984
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,235 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,235 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema under content type: application/json
2025-06-05 18:28:03,235 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema...
2025-06-05 18:28:03,235 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=isSearchCount, Type=boolean
2025-06-05 18:28:03,235 - 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 18:28:03,235 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): isSearchCount, Original Type: boolean
2025-06-05 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,235 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 isSearchCount (键 'isSearchCount') 处设置值为 'not-a-boolean'
2025-06-05 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - 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 18:28:03,236 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['tenant-id', 'Content-Type', 'Accept']
2025-06-05 18:28:03,236 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: <class 'dict'>
2025-06-05 18:28:03,251 - testcase.TC-ERROR-4001-BODY - WARNING - TC-ERROR-4001-BODY: Failed. 当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '62'. (Field: body.isSearchCount)
2025-06-05 18:28:03,251 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.015334129333496094
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败
2025-06-05 18:28:03,251 - 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 18:28:03,251 - 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 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,251 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,251 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,251 - 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 18:28:03,252 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: [], 属性: ['isSearchCount', 'query']
2025-06-05 18:28:03,252 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 在路径 root 未通过任何策略找到可移除的必填字段。
2025-06-05 18:28:03,252 - testcase.TC-ERROR-4003-BODY - INFO - No removable (required) field path found in 'request body' schema.
2025-06-05 18:28:03,252 - testcase.TC-ERROR-4003-BODY - INFO - 在请求体 schema 中未找到可用于测试 "必填字段缺失" 的字段(通过基类方法)。
2025-06-05 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,252 - 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 18:28:03,269 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过
2025-06-05 18:28:03,269 - 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 18:28:03,269 - 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 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['yapi_categories']
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas 进行 $ref 解析...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/RdbQueryPageInput
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/QueryVO
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,269 - ddms_compliance_suite.utils.schema_utils - DEBUG - 因 discard_refs=True丢弃 '$ref': #/components/schemas/FilterVO
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('dms_instance_code') 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[1] ('version') 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[2] ('id') 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[3] ('tenant-id') 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[4] ('Authorization') 的 schema...
2025-06-05 18:28:03,269 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema...
2025-06-05 18:28:03,270 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 <class 'ddms_compliance_suite.input_parser.parser.YAPIEndpoint'>) 中的 schemas $ref 解析完成。
2025-06-05 18:28:03,270 - 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 18:28:03,270 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec.
2025-06-05 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,270 - 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 18:28:03,284 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 测试完成,最终状态: 失败
2025-06-05 18:28:03,284 - __main__ - INFO - 开始执行API测试阶段 (Stages),目录: ./custom_stages
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行API测试阶段 (Stages)...
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - INFO - 发现了 1 个已定义的测试阶段: ['generic_crud_validation_stage']
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - INFO - 将针对 2 个API分组评估测试阶段: ['公共分类', '地质单元']
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - INFO - 处理测试阶段定义: ID='generic_crud_validation_stage', Name='Generic CRUD Validation Stage'
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'generic_crud_validation_stage' 的上下文针对API分组: '公共分类'
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG - For YAPI group '公共分类' (resolved ID: 17672), selected 1 endpoint objects.
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'generic_crud_validation_stage' 和分组 '公共分类' 实例化。API对象数量: 1. 元数据: {'name': '公共分类', 'description': '公共分类', 'id': 17672}
2025-06-05 18:28:03,284 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'generic_crud_validation_stage' 是否适用于API分组 '公共分类'...
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Checking applicability of 'Generic CRUD Validation Stage' for API group '公共分类'.
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Using default field/path configurations for group '公共分类'. Customize by overriding _determine_resource_config or cfg_* attributes.
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['add', 'create', 'new', '添加', '新建', '创建']', target_method='POST', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='数据推送接口', Method='POST', Path='/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '数据推送接口': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135716, 'method': 'POST', 'title': '数据推送接口', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 17672, 'markdown': '', 'uid': 808, 'add_time': 1744780583, 'up_time': 1744780741, '__v': 0}, 'title': '数据推送接口', 'desc': '', '_id': 135716, 'project_id': 1193, 'catid': 17672, 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 808, 'category_name': '公共分类', 'category_id': 17672, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Action match with '['add', 'create', 'new', '添加', '新建', '创建']'? False
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Method match with 'POST'? True (Endpoint method: POST)
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '数据推送接口': Checking req_params for path ID: [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}]
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '数据推送接口' (Action: False, Method: True, PathCond: True). Continuing search.
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['add', 'create', 'new', '添加', '新建', '创建']', method='POST', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,284 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']', target_method='None', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='数据推送接口', Method='POST', Path='/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '数据推送接口': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135716, 'method': 'POST', 'title': '数据推送接口', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 17672, 'markdown': '', 'uid': 808, 'add_time': 1744780583, 'up_time': 1744780741, '__v': 0}, 'title': '数据推送接口', 'desc': '', '_id': 135716, 'project_id': 1193, 'catid': 17672, 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 808, 'category_name': '公共分类', 'category_id': 17672, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Action match with '['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Method match with 'None'? True (Endpoint method: POST)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '数据推送接口': Checking req_params for path ID: [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '数据推送接口' (Action: False, Method: True, PathCond: True). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']', method='None', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']', target_method='GET', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='数据推送接口', Method='POST', Path='/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '数据推送接口': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135716, 'method': 'POST', 'title': '数据推送接口', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 17672, 'markdown': '', 'uid': 808, 'add_time': 1744780583, 'up_time': 1744780741, '__v': 0}, 'title': '数据推送接口', 'desc': '', '_id': 135716, 'project_id': 1193, 'catid': 17672, 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 808, 'category_name': '公共分类', 'category_id': 17672, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Method match with 'GET'? False (Endpoint method: POST)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '数据推送接口': Checking req_params for path ID: [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '数据推送接口' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']', method='GET', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['update', 'edit', 'put', '修改', '更新']', target_method='PUT', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='数据推送接口', Method='POST', Path='/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '数据推送接口': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135716, 'method': 'POST', 'title': '数据推送接口', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 17672, 'markdown': '', 'uid': 808, 'add_time': 1744780583, 'up_time': 1744780741, '__v': 0}, 'title': '数据推送接口', 'desc': '', '_id': 135716, 'project_id': 1193, 'catid': 17672, 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 808, 'category_name': '公共分类', 'category_id': 17672, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Action match with '['update', 'edit', 'put', '修改', '更新']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Method match with 'PUT'? False (Endpoint method: POST)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '数据推送接口': Checking req_params for path ID: [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '数据推送接口' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['update', 'edit', 'put', '修改', '更新']', method='PUT', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['delete', 'remove', '删除']', target_method='DELETE', path_id_required=False, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='数据推送接口', Method='POST', Path='/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '数据推送接口': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135716, 'method': 'POST', 'title': '数据推送接口', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}', 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 17672, 'markdown': '', 'uid': 808, 'add_time': 1744780583, 'up_time': 1744780741, '__v': 0}, 'title': '数据推送接口', 'desc': '', '_id': 135716, 'project_id': 1193, 'catid': 17672, 'req_params': [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '67ff3dc5335acf11b4926aba', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '67ff3dc5335acfae3f926ab9', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '67ff3dc5335acfad4f926ab8', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 808, 'category_name': '公共分类', 'category_id': 17672, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Action match with '['delete', 'remove', '删除']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Method match with 'DELETE'? False (Endpoint method: POST)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '数据推送接口': Checking req_params for path ID: [{'_id': '67ff3dc5335acf6754926ab7', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '67ff3dc5335acf0829926ab6', 'name': 'schema', 'desc': ''}, {'_id': '67ff3dc5335acf485f926ab5', 'name': 'version', 'desc': ''}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '数据推送接口': Calculated path_condition_met=True (required=False, forbidden=False)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '数据推送接口' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['delete', 'remove', '删除']', method='DELETE', path_id_required=False, path_id_forbidden=False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - 'Generic CRUD Validation Stage' is NOT APPLICABLE for group '公共分类'. Missing required operations: ['create', 'detail', 'delete']. Discovered keys: {'create': None, 'list': None, 'detail': None, 'update': None, 'delete': None}
2025-06-05 18:28:03,285 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'generic_crud_validation_stage' 不适用于API分组 '公共分类'。跳过此分组。
2025-06-05 18:28:03,285 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'generic_crud_validation_stage' 的上下文针对API分组: '地质单元'
2025-06-05 18:28:03,285 - ddms_compliance_suite.test_orchestrator - DEBUG - For YAPI group '地质单元' (resolved ID: 18705), selected 5 endpoint objects.
2025-06-05 18:28:03,285 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'generic_crud_validation_stage' 和分组 '地质单元' 实例化。API对象数量: 5. 元数据: {'name': '地质单元', 'description': None, 'id': 18705}
2025-06-05 18:28:03,285 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'generic_crud_validation_stage' 是否适用于API分组 '地质单元'...
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Checking applicability of 'Generic CRUD Validation Stage' for API group '地质单元'.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Using default field/path configurations for group '地质单元'. Customize by overriding _determine_resource_config or cfg_* attributes.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['add', 'create', 'new', '添加', '新建', '创建']', target_method='POST', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元列表查询': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135751, 'method': 'POST', 'title': '地质单元列表查询', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736910, 'up_time': 1745737050, '__v': 0}, 'title': '地质单元列表查询', 'desc': '', '_id': 135751, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Action match with '['add', 'create', 'new', '添加', '新建', '创建']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Method match with 'POST'? True (Endpoint method: POST)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元列表查询': Checking req_params for path ID: [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元列表查询' (Action: False, Method: True, PathCond: True). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据修改', Method='PUT', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据修改': {'method': 'PUT', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135749, 'method': 'PUT', 'title': '地质单元数据修改', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736976, '__v': 0}, 'title': '地质单元数据修改', 'desc': '', '_id': 135749, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'id': {'type': 'string', 'required': True}, 'version': {'type': 'string'}}, 'required': ['id', 'version']}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Action match with '['add', 'create', 'new', '添加', '新建', '创建']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Method match with 'POST'? False (Endpoint method: PUT)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据修改': Checking req_params for path ID: [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据修改' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据删除', Method='DELETE', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据删除': {'method': 'DELETE', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135750, 'method': 'DELETE', 'title': '地质单元数据删除', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736908, 'up_time': 1745736987, '__v': 0}, 'title': '地质单元数据删除', 'desc': '', '_id': 135750, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '版本号'}, 'data': {'type': 'array', 'items': {'type': 'string'}, 'title': '主键id数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Action match with '['add', 'create', 'new', '添加', '新建', '创建']'? False
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Method match with 'POST'? False (Endpoint method: DELETE)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据删除': Checking req_params for path ID: [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据删除' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,285 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据添加', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据添加': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'done', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135748, 'method': 'POST', 'title': '地质单元数据添加', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736959, '__v': 0}, 'title': '地质单元数据添加', 'desc': '', '_id': 135748, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'done', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '交换模型版本号'}, 'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, 'title': '交换模型数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Action match with '['add', 'create', 'new', '添加', '新建', '创建']'? True
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Method match with 'POST'? True (Endpoint method: POST)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据添加': Checking req_params for path ID: [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - SUCCESS: Op match for actions '['add', 'create', 'new', '添加', '新建', '创建']': Key='地质单元数据添加', MatchedText='地质单元数据添加', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']', target_method='None', path_id_required=False, path_id_forbidden=True
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元列表查询': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135751, 'method': 'POST', 'title': '地质单元列表查询', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736910, 'up_time': 1745737050, '__v': 0}, 'title': '地质单元列表查询', 'desc': '', '_id': 135751, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Action match with '['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']'? True
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Method match with 'None'? True (Endpoint method: POST)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元列表查询': Checking req_params for path ID: [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}]
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_condition_met=True (required=False, forbidden=True)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - SUCCESS: Op match for actions '['list', 'query', 'search', 'getall', 'getlist', '列表查询', '查询列表', '获取列表', '分页查询']': Key='地质单元列表查询', MatchedText='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']', target_method='GET', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元列表查询': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135751, 'method': 'POST', 'title': '地质单元列表查询', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736910, 'up_time': 1745737050, '__v': 0}, 'title': '地质单元列表查询', 'desc': '', '_id': 135751, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? False
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Method match with 'GET'? False (Endpoint method: POST)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元列表查询': Checking req_params for path ID: [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}]
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元列表查询' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据修改', Method='PUT', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据修改': {'method': 'PUT', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135749, 'method': 'PUT', 'title': '地质单元数据修改', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736976, '__v': 0}, 'title': '地质单元数据修改', 'desc': '', '_id': 135749, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'id': {'type': 'string', 'required': True}, 'version': {'type': 'string'}}, 'required': ['id', 'version']}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? False
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Method match with 'GET'? False (Endpoint method: PUT)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据修改': Checking req_params for path ID: [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据修改' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据删除', Method='DELETE', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据删除': {'method': 'DELETE', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135750, 'method': 'DELETE', 'title': '地质单元数据删除', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736908, 'up_time': 1745736987, '__v': 0}, 'title': '地质单元数据删除', 'desc': '', '_id': 135750, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '版本号'}, 'data': {'type': 'array', 'items': {'type': 'string'}, 'title': '主键id数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? False
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Method match with 'GET'? False (Endpoint method: DELETE)
2025-06-05 18:28:03,286 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据删除': Checking req_params for path ID: [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据删除' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据添加', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据添加': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'done', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135748, 'method': 'POST', 'title': '地质单元数据添加', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736959, '__v': 0}, 'title': '地质单元数据添加', 'desc': '', '_id': 135748, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'done', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '交换模型版本号'}, 'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, 'title': '交换模型数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? False
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Method match with 'GET'? False (Endpoint method: POST)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据添加': Checking req_params for path ID: [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据添加' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元查询详情', Method='GET', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元查询详情': {'method': 'GET', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', 'params': []}, 'edit_uid': 0, 'status': 'done', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135752, 'method': 'GET', 'title': '地质单元查询详情', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', 'req_params': [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd53d335acf68e4926d08', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd53d335acf9fb4926d07', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd53d335acf7a8d926d06', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736911, 'up_time': 1745737021, '__v': 0}, 'title': '地质单元查询详情', 'desc': '', '_id': 135752, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '680dd53d335acf68e4926d08', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd53d335acf9fb4926d07', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd53d335acf7a8d926d06', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'done', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Action match with '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']'? True
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Method match with 'GET'? True (Endpoint method: GET)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元查询详情': Checking req_params for path ID: [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Found ID path parameter in YAPI req_params: 'id'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Calculated path_contains_id_param=True (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Calculated path_condition_met=True (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - SUCCESS: Op match for actions '['detail', 'getbyid', 'getone', '查询详情', '获取详情', '根据ID获取']': Key='地质单元查询详情', MatchedText='地质单元查询详情', Method='GET', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['update', 'edit', 'put', '修改', '更新']', target_method='PUT', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元列表查询': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135751, 'method': 'POST', 'title': '地质单元列表查询', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736910, 'up_time': 1745737050, '__v': 0}, 'title': '地质单元列表查询', 'desc': '', '_id': 135751, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Action match with '['update', 'edit', 'put', '修改', '更新']'? False
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Method match with 'PUT'? False (Endpoint method: POST)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元列表查询': Checking req_params for path ID: [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元列表查询' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据修改', Method='PUT', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据修改': {'method': 'PUT', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135749, 'method': 'PUT', 'title': '地质单元数据修改', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736976, '__v': 0}, 'title': '地质单元数据修改', 'desc': '', '_id': 135749, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'id': {'type': 'string', 'required': True}, 'version': {'type': 'string'}}, 'required': ['id', 'version']}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Action match with '['update', 'edit', 'put', '修改', '更新']'? True
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Method match with 'PUT'? True (Endpoint method: PUT)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据修改': Checking req_params for path ID: [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据修改' (Action: True, Method: True, PathCond: False). Continuing search.
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据删除', Method='DELETE', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据删除': {'method': 'DELETE', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135750, 'method': 'DELETE', 'title': '地质单元数据删除', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736908, 'up_time': 1745736987, '__v': 0}, 'title': '地质单元数据删除', 'desc': '', '_id': 135750, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '版本号'}, 'data': {'type': 'array', 'items': {'type': 'string'}, 'title': '主键id数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Action match with '['update', 'edit', 'put', '修改', '更新']'? False
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Method match with 'PUT'? False (Endpoint method: DELETE)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据删除': Checking req_params for path ID: [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据删除' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据添加', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据添加': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'done', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135748, 'method': 'POST', 'title': '地质单元数据添加', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736959, '__v': 0}, 'title': '地质单元数据添加', 'desc': '', '_id': 135748, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '680dd4ff335acfc5c7926ceb', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd4ff335acff16f926cea', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd4ff335acf1a5c926ce9', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"交换模型版本号"},"data":{"type":"array","items":{"type":"object","properties":{"bsflag":{"type":"number","title":"必填字段删除标记"},"wellCommonName":{"type":"string"},"wellId":{"type":"string"},"dataRegion":{"type":"string"}},"required":["bsflag","wellCommonName","wellId","dataRegion"]},"title":"交换模型数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'done', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '交换模型版本号'}, 'data': {'type': 'array', 'items': {'type': 'object', 'properties': {'bsflag': {'type': 'number', 'title': '必填字段删除标记'}, 'wellCommonName': {'type': 'string'}, 'wellId': {'type': 'string'}, 'dataRegion': {'type': 'string'}}, 'required': ['bsflag', 'wellCommonName', 'wellId', 'dataRegion']}, 'title': '交换模型数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Action match with '['update', 'edit', 'put', '修改', '更新']'? False
2025-06-05 18:28:03,287 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Method match with 'PUT'? False (Endpoint method: POST)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据添加': Checking req_params for path ID: [{'_id': '680dd4ff335acf81b3926ce8', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据添加': Calculated path_condition_met=False (required=True, forbidden=False)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据添加' (Action: False, Method: False, PathCond: False). Continuing search.
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元查询详情', Method='GET', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', Type='YAPIEndpoint'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元查询详情': {'method': 'GET', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', 'params': []}, 'edit_uid': 0, 'status': 'done', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135752, 'method': 'GET', 'title': '地质单元查询详情', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}', 'req_params': [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd53d335acf68e4926d08', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd53d335acf9fb4926d07', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd53d335acf7a8d926d06', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736911, 'up_time': 1745737021, '__v': 0}, 'title': '地质单元查询详情', 'desc': '', '_id': 135752, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}], 'req_query': [], 'req_headers': [{'required': '1', '_id': '680dd53d335acf68e4926d08', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd53d335acf9fb4926d07', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd53d335acf7a8d926d06', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'done', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Action match with '['update', 'edit', 'put', '修改', '更新']'? False
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Method match with 'PUT'? False (Endpoint method: GET)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元查询详情': Checking req_params for path ID: [{'_id': '680dd53d335acf42db926d05', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd53d335acf2105926d04', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}, {'_id': '680dd53d335acf7970926d03', 'name': 'id', 'desc': ''}]
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Found ID path parameter in YAPI req_params: 'id'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Calculated path_contains_id_param=True (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元查询详情': Calculated path_condition_met=True (required=True, forbidden=False)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元查询详情' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - WARNING - FAILURE: No operation found after checking all endpoints for: actions='['update', 'edit', 'put', '修改', '更新']', method='PUT', path_id_required=True, path_id_forbidden=False
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Attempting to find operation: target_actions='['delete', 'remove', '删除']', target_method='DELETE', path_id_required=False, path_id_forbidden=False
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元列表查询', Method='POST', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', Type='YAPIEndpoint'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元列表查询': {'method': 'POST', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135751, 'method': 'POST', 'title': '地质单元列表查询', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}', 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736910, 'up_time': 1745737050, '__v': 0}, 'title': '地质单元列表查询', 'desc': '', '_id': 135751, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}], 'req_query': [{'required': '0', '_id': '680dd55a335acfabfa926d1a', 'name': 'pageNo', 'desc': '页码(从1开始)'}, {'required': '0', '_id': '680dd55a335acf831b926d19', 'name': 'pageSize', 'desc': '分页大小(最大值200)'}], 'req_headers': [{'required': '1', '_id': '680dd55a335acfb51b926d1d', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd55a335acf6226926d1c', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd55a335acf39a0926d1b', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"properties":{"isSearchCount":{"default":true,"description":"是否统计总条数","type":"boolean"},"query":{"description":"查询条件","properties":{"dataRegions":{"description":"数据域JD、DG、TL","items":{"description":"数据域JD、DG、TL","type":"string"},"type":"array"},"fields":{"description":"查询的字段","items":{"description":"查询的字段","type":"string"},"type":"array"},"filter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"groupFields":{"description":"分组字段group by","items":{"description":"分组字段group by","type":"string"},"type":"array"},"groupFilter":{"description":"筛选器","properties":{"key":{"description":"条件项","type":"string"},"logic":{"description":"逻辑操作符可选值为AND、OR","type":"string"},"realValue":{"description":"条件值","items":{"description":"条件值","type":"object","properties":{}},"type":"array"},"singleValue":{"type":"object","writeOnly":true,"properties":{}},"subFilter":{"description":"子条件","items":{"$ref":"#/components/schemas/FilterVO","type":"string"},"type":"array"},"symbol":{"description":"运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL","type":"string"}},"type":"object","$$ref":"#/components/schemas/FilterVO"},"sort":{"additionalProperties":{"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"string"},"description":"排序字段key=字段名value=排序方式ASC、DESC","type":"object","properties":{}}},"type":"object","$$ref":"#/components/schemas/QueryVO"}},"type":"object","$$ref":"#/components/schemas/RdbQueryPageInput"}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"object","properties":{"total":{"type":"number"},"list":{"type":"array","items":{"type":"object","properties":{"dsid":{"type":"string"},"dataRegion":{"type":"string"},"gasReleaseMon":{"type":"null"},"gasReleaseYear":{"type":"null"},"releaseGasCum":{"type":"null"}}}}}}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'properties': {'isSearchCount': {'default': True, 'description': '是否统计总条数', 'type': 'boolean'}, 'query': {'description': '查询条件', 'properties': {'dataRegions': {'description': '数据域JD、DG、TL', 'items': {'description': '数据域JD、DG、TL', 'type': 'string'}, 'type': 'array'}, 'fields': {'description': '查询的字段', 'items': {'description': '查询的字段', 'type': 'string'}, 'type': 'array'}, 'filter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'groupFields': {'description': '分组字段group by', 'items': {'description': '分组字段group by', 'type': 'string'}, 'type': 'array'}, 'groupFilter': {'description': '筛选器', 'properties': {'key': {'description': '条件项', 'type': 'string'}, 'logic': {'description': '逻辑操作符可选值为AND、OR', 'type': 'string'}, 'realValue': {'description': '条件值', 'items': {'description': '条件值', 'type': 'object', 'properties': {}}, 'type': 'array'}, 'singleValue': {'type': 'object', 'writeOnly': True, 'properties': {}}, 'subFilter': {'description': '子条件', 'items': {'$ref': '#/components/schemas/FilterVO', 'type': 'string'}, 'type': 'array'}, 'symbol': {'description': '运算符,可选值为:>、>=、<、<=、>、<、=、<>、!=、IN、NOTIN、LIKE、IS当运算符为 IS 时条件值只能为NULL或NOT NULL', 'type': 'string'}}, 'type': 'object', '$$ref': '#/components/schemas/FilterVO'}, 'sort': {'additionalProperties': {'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'string'}, 'description': '排序字段key=字段名value=排序方式ASC、DESC', 'type': 'object', 'properties': {}}}, 'type': 'object', '$$ref': '#/components/schemas/QueryVO'}}, 'type': 'object', '$$ref': '#/components/schemas/RdbQueryPageInput'}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'object', 'properties': {'total': {'type': 'number'}, 'list': {'type': 'array', 'items': {'type': 'object', 'properties': {'dsid': {'type': 'string'}, 'dataRegion': {'type': 'string'}, 'gasReleaseMon': {'type': 'null'}, 'gasReleaseYear': {'type': 'null'}, 'releaseGasCum': {'type': 'null'}}}}}}}}}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Action match with '['delete', 'remove', '删除']'? False
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Method match with 'DELETE'? False (Endpoint method: POST)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元列表查询': Checking req_params for path ID: [{'_id': '680dd55a335acff12e926d18', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}, {'_id': '680dd55a335acfc43d926d17', 'name': 'version', 'example': '1.0.0', 'desc': '交换模型版本'}]
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元列表查询': Calculated path_condition_met=True (required=False, forbidden=False)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元列表查询' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据修改', Method='PUT', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据修改': {'method': 'PUT', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135749, 'method': 'PUT', 'title': '地质单元数据修改', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736907, 'up_time': 1745736976, '__v': 0}, 'title': '地质单元数据修改', 'desc': '', '_id': 135749, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd510335acf1ed1926ced', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd510335acf7bb3926cf0', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd510335acf6953926cef', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd510335acfd86b926cee', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"id":{"type":"string","required":true},"version":{"type":"string"}},"required":["id","version"]}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'id': {'type': 'string', 'required': True}, 'version': {'type': 'string'}}, 'required': ['id', 'version']}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Action match with '['delete', 'remove', '删除']'? False
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Method match with 'DELETE'? False (Endpoint method: PUT)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据修改': Checking req_params for path ID: [{'_id': '680dd510335acf19c3926cec', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据修改': Calculated path_condition_met=True (required=False, forbidden=False)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Criteria NOT met for '地质单元数据修改' (Action: False, Method: False, PathCond: True). Continuing search.
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Checking endpoint: Title='地质单元数据删除', Method='DELETE', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit', Type='YAPIEndpoint'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Raw YAPIEndpoint object attributes for '地质单元数据删除': {'method': 'DELETE', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', '_raw_data': {'query_path': {'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'params': []}, 'edit_uid': 0, 'status': 'undone', 'type': 'var', 'req_body_is_json_schema': True, 'res_body_is_json_schema': True, 'api_opened': False, 'index': 0, 'tag': [], '_id': 135750, 'method': 'DELETE', 'title': '地质单元数据删除', 'desc': '', 'path': '/api/dms/{dms_instance_code}/v1/cd_geo_unit', 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_body_form': [], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_body_type': 'json', 'res_body_type': 'json', 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'project_id': 1193, 'catid': 18705, 'markdown': '', 'uid': 1103, 'add_time': 1745736908, 'up_time': 1745736987, '__v': 0}, 'title': '地质单元数据删除', 'desc': '', '_id': 135750, 'project_id': 1193, 'catid': 18705, 'req_params': [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}], 'req_query': [{'required': '1', '_id': '680dd51b335acf7441926cf2', 'name': 'id', 'example': 'dsid', 'desc': '主键id的key'}], 'req_headers': [{'required': '1', '_id': '680dd51b335acfb316926cf5', 'name': 'Content-Type', 'value': 'application/json'}, {'required': '1', '_id': '680dd51b335acf45f4926cf4', 'name': 'tenant-id', 'desc': 'tenant-id (Only:undefined)'}, {'required': '1', '_id': '680dd51b335acf0cfa926cf3', 'name': 'Authorization', 'desc': 'Authorization (Only:undefined)'}], 'req_body_form': [], 'req_body_type': 'json', 'req_body_is_json_schema': True, 'req_body_other': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"version":{"type":"string","title":"版本号"},"data":{"type":"array","items":{"type":"string"},"title":"主键id数据集"}}}', 'res_body_type': 'json', 'res_body_is_json_schema': True, 'res_body': '{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"code":{"type":"number"},"message":{"type":"string"},"data":{"type":"boolean"}}}', 'status': 'undone', 'api_opened': False, 'uid': 1103, 'category_name': '地质单元', 'category_id': 18705, '_parsed_req_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'version': {'type': 'string', 'title': '版本号'}, 'data': {'type': 'array', 'items': {'type': 'string'}, 'title': '主键id数据集'}}}, '_parsed_res_body_schema': {'$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'code': {'type': 'number'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Action match with '['delete', 'remove', '删除']'? True
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Method match with 'DELETE'? True (Endpoint method: DELETE)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For YAPI Endpoint '地质单元数据删除': Checking req_params for path ID: [{'_id': '680dd51b335acfe93a926cf1', 'name': 'dms_instance_code', 'desc': '注册实例code\n井筒中心 well_kd_wellbore_ideas01'}]
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_contains_id_param=False (cfg_path_param_name_for_id='id')
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - For '地质单元数据删除': Calculated path_condition_met=True (required=False, forbidden=False)
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - SUCCESS: Op match for actions '['delete', 'remove', '删除']': Key='地质单元数据删除', MatchedText='地质单元数据删除', Method='DELETE', Path='/api/dms/{dms_instance_code}/v1/cd_geo_unit'
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - 'Generic CRUD Validation Stage' is APPLICABLE for group '地质单元'. Required CRUD operations found. Discovered keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': None, 'delete': '地质单元数据删除'}
2025-06-05 18:28:03,288 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'generic_crud_validation_stage' 适用于API分组 '地质单元'。开始执行...
2025-06-05 18:28:03,288 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试阶段: ID='generic_crud_validation_stage', Name='Generic CRUD Validation Stage', API分组='地质单元'
2025-06-05 18:28:03,288 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'generic_crud_validation_stage' 的 before_stage 钩子。初始上下文: {}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Using default field/path configurations for group '地质单元'. Customize by overriding _determine_resource_config or cfg_* attributes.
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Starting stage 'Generic CRUD Validation Stage' for API group '地质单元'. Discovered op keys: {'create': '地质单元数据添加', 'list': '地质单元列表查询', 'detail': '地质单元查询详情', 'update': None, 'delete': '地质单元数据删除'}
2025-06-05 18:28:03,288 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Initial stage context (with cfg): {'unique_resource_name': 'TestResource_1749119283_3c0f3c', 'updated_resource_name': 'TestResource_1749119283_3c0f3c_UPDATED', 'unique_feature_value': 'Feature_1749119283', 'updated_feature_value': 'Feature_1749119283_UPDATED', 'cfg_list_path_in_listresponse': 'data.list', 'cfg_name_field_in_listitem': 'wellCommonName', 'cfg_id_field_in_listitem': 'dsid', 'cfg_resource_object_path_in_detailresponse': 'data.list.0', 'cfg_name_field_in_detailresponse': 'wellCommonName', 'cfg_id_field_in_detailresponse': 'dsid', 'cfg_resource_object_path_in_updateresponse': 'data.list.0', 'cfg_feature_field_name_for_validation': 'dataRegion', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 18:28:03,288 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 开始执行.
2025-06-05 18:28:03,288 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 调用 before_step 钩子. 上下文: {'unique_resource_name': 'TestResource_1749119283_3c0f3c', 'updated_resource_name': 'TestResource_1749119283_3c0f3c_UPDATED', 'unique_feature_value': 'Feature_1749119283', 'updated_feature_value': 'Feature_1749119283_UPDATED', 'cfg_list_path_in_listresponse': 'data.list', 'cfg_name_field_in_listitem': 'wellCommonName', 'cfg_id_field_in_listitem': 'dsid', 'cfg_resource_object_path_in_detailresponse': 'data.list.0', 'cfg_name_field_in_detailresponse': 'wellCommonName', 'cfg_id_field_in_detailresponse': 'dsid', 'cfg_resource_object_path_in_updateresponse': 'data.list.0', 'cfg_feature_field_name_for_validation': 'dataRegion', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 18:28:03,289 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Executing before_step for step 'Create New Resource' in stage 'generic_crud_validation_stage'
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 查找端点定义. Key='地质单元数据添加', Group='地质单元'
2025-06-05 18:28:03,289 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - 'generic_crud_validation_stage': 正在从 global_api_spec 中查找操作,键: '地质单元数据添加', API组: '地质单元'
2025-06-05 18:28:03,289 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - 'generic_crud_validation_stage': 找到匹配操作 '地质单元数据添加' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 已解析端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'. 准备请求数据.
2025-06-05 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - 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 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 应用请求覆盖: {'path_params': {'dms_instance_code': '{{stage_context.dms_instance_code}}'}, 'headers': {'tenant-id': 'your-tenant-id', 'Authorization': 'Bearer your-test-token'}, 'body': {'version': '{{stage_context.api_version}}', 'data': [{'wellCommonName': '{{stage_context.unique_resource_name}}', 'dataRegion': '{{stage_context.unique_feature_value}}'}]}}
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Create New Resource'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Create New Resource'] 从上下文解析到值 'your_dms_instance_code...' (路径: 'dms_instance_code')
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Create New Resource'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Create New Resource'] 从上下文解析到值 '1.0.0...' (路径: 'api_version')
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Create New Resource'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Create New Resource'] 从上下文解析到值 'TestResource_1749119283_3c0f3c...' (路径: 'unique_resource_name')
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Create New Resource'] 解析上下文路径: 'unique_feature_value' 来自模板 '{{stage_context.unique_feature_value}}'
2025-06-05 18:28:03,289 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Create New Resource'] 从上下文解析到值 'Feature_1749119283...' (路径: 'unique_feature_value')
2025-06-05 18:28:03,290 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 发送API请求: POST http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 收到响应. Status: 200. 验证中...
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 提取输出到上下文. Map: {'created_resource_id': 'data.0.dsid'}
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - [Create New Resource] 尝试提取 'data.0.dsid' 到上下文变量 'created_resource_id'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - WARNING - [Create New Resource] 未知的提取源类型 'data' in path 'data.0.dsid'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 调用 after_step 钩子.
2025-06-05 18:28:03,303 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Executing after_step for step 'Create New Resource' in stage 'generic_crud_validation_stage'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'Create New Resource': 执行完毕. 状态: 通过, 耗时: 0.01s
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 开始执行.
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 调用 before_step 钩子. 上下文: {'unique_resource_name': 'TestResource_1749119283_3c0f3c', 'updated_resource_name': 'TestResource_1749119283_3c0f3c_UPDATED', 'unique_feature_value': 'Feature_1749119283', 'updated_feature_value': 'Feature_1749119283_UPDATED', 'cfg_list_path_in_listresponse': 'data.list', 'cfg_name_field_in_listitem': 'wellCommonName', 'cfg_id_field_in_listitem': 'dsid', 'cfg_resource_object_path_in_detailresponse': 'data.list.0', 'cfg_name_field_in_detailresponse': 'wellCommonName', 'cfg_id_field_in_detailresponse': 'dsid', 'cfg_resource_object_path_in_updateresponse': 'data.list.0', 'cfg_feature_field_name_for_validation': 'dataRegion', 'dms_instance_code': 'your_dms_instance_code', 'api_version': '1.0.0'}
2025-06-05 18:28:03,303 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Executing before_step for step 'List and Find Created Resource' in stage 'generic_crud_validation_stage'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 查找端点定义. Key='地质单元列表查询', Group='地质单元'
2025-06-05 18:28:03,303 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - 'generic_crud_validation_stage': 正在从 global_api_spec 中查找操作,键: '地质单元列表查询', API组: '地质单元'
2025-06-05 18:28:03,303 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - 'generic_crud_validation_stage': 找到匹配操作 '地质单元列表查询' -> Method: POST, Path: /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 已解析端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'. 准备请求数据.
2025-06-05 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - 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 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 应用请求覆盖: {'path_params': {'dms_instance_code': '{{stage_context.dms_instance_code}}', 'version': '{{stage_context.api_version}}'}, 'headers': {'tenant-id': 'your-tenant-id', 'Authorization': 'Bearer your-test-token'}, 'query_params': {'pageNo': 1, 'pageSize': 10}, 'body': {'isSearchCount': True, 'query': {'fields': ['dsid', 'wellCommonName', 'dataRegion'], 'filter': {'key': 'wellCommonName', 'symbol': '=', 'realValue': ['{{stage_context.unique_resource_name}}']}}}}
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created Resource'] 解析上下文路径: 'dms_instance_code' 来自模板 '{{stage_context.dms_instance_code}}'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created Resource'] 从上下文解析到值 'your_dms_instance_code...' (路径: 'dms_instance_code')
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created Resource'] 解析上下文路径: 'api_version' 来自模板 '{{stage_context.api_version}}'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created Resource'] 从上下文解析到值 '1.0.0...' (路径: 'api_version')
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'List and Find Created Resource'] 解析上下文路径: 'unique_resource_name' 来自模板 '{{stage_context.unique_resource_name}}'
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'List and Find Created Resource'] 从上下文解析到值 'TestResource_1749119283_3c0f3c...' (路径: 'unique_resource_name')
2025-06-05 18:28:03,303 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 发送API请求: 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: 120' -d '{"version": "1.0.0", "data": [{"wellCommonName": "TestResource_1749119283_3c0f3c", "dataRegion": "Feature_1749119283"}]}' --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: 120\' -d \'{"version": "1.0.0", "data": [{"wellCommonName": "TestResource_1749119283_3c0f3c", "dataRegion": "Feature_1749119283"}]}\' --insecure http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/your_dms_instance_code/v1/cd_geo_unit'
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 收到响应. Status: 200. 验证中...
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 执行断言 'find_resource_in_list_and_extract_id'
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 断言 'find_resource_in_list_and_extract_id' 失败: Resource not found: Name 'TestResource_1749119283_3c0f3c' (field: wellCommonName) not found in list at path 'data.list'.
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 提取输出到上下文. Map: {'found_id_from_list': 'data.list.0.dsid'}
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - DEBUG - [List and Find Created Resource] 尝试提取 'data.list.0.dsid' 到上下文变量 'found_id_from_list'
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - WARNING - [List and Find Created Resource] 未知的提取源类型 'data' in path 'data.list.0.dsid'
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 调用 after_step 钩子.
2025-06-05 18:28:03,317 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - DEBUG - Executing after_step for step 'List and Find Created Resource' in stage 'generic_crud_validation_stage'
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 执行完毕. 状态: 失败, 耗时: 0.01s
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'generic_crud_validation_stage', Step 'List and Find Created Resource': 状态为 失败 且 continue_on_failure=False. 中止测试阶段 'generic_crud_validation_stage'.
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'generic_crud_validation_stage' 的 after_stage 钩子. 当前阶段结果状态: 失败
2025-06-05 18:28:03,317 - ddms_compliance_suite.stage_framework.GenericCRUDValidationStage - INFO - Finished stage 'Generic CRUD Validation Stage'. API Group: '地质单元'. Final Status: Status.FAILED. Final Context Keys: ['unique_resource_name', 'updated_resource_name', 'unique_feature_value', 'updated_feature_value', 'cfg_list_path_in_listresponse', 'cfg_name_field_in_listitem', 'cfg_id_field_in_listitem', 'cfg_resource_object_path_in_detailresponse', 'cfg_name_field_in_detailresponse', 'cfg_id_field_in_detailresponse', 'cfg_resource_object_path_in_updateresponse', 'cfg_feature_field_name_for_validation', 'dms_instance_code', 'api_version']
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'generic_crud_validation_stage' (API分组: '地质单元') 执行完毕. 最终状态: 失败, 耗时: 0.03s
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 2 (stage_definition x api_group) combinations.
2025-06-05 18:28:03,317 - __main__ - INFO - API测试阶段 (Stages) 执行完毕。
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - -------------------- API Test Summary --------------------
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Start Time: 2025-06-05T18:28:02.493962
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - End Time: 2025-06-05T18:28:03.317939
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Total Duration: 0.82 seconds
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - --- Endpoints ---
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Total Endpoints Defined: 6
2025-06-05 18:28:03,317 - ddms_compliance_suite.test_orchestrator - INFO - Endpoints Tested: 6
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 6
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Partial Success: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 0.00%
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - --- Test Cases ---
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Applicable: 42
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Executed: 42
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 24
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 18
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Skipped (within endpoints): 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 57.14%
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - --- Stages ---
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Defined: 1
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Executed: 1
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 1
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 0.00%
2025-06-05 18:28:03,318 - ddms_compliance_suite.test_orchestrator - INFO - --------------------------------------------------------
2025-06-05 18:28:03,319 - __main__ - INFO - 测试结果已保存为JSON: test_reports/summary.json
2025-06-05 18:28:03,319 - __main__ - INFO - API调用详情将以 Markdown 格式保存到目录 'test_reports' (使用默认文件名 'api_call_details.md')
2025-06-05 18:28:03,322 - __main__ - INFO - API调用详情已保存为 Markdown: test_reports/api_call_details.md
2025-06-05 18:28:03,322 - __main__ - INFO - 部分测试失败或出错,请检查报告。
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: 187' -d '{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName", "dataRegion"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["TestResource_1749119283_3c0f3c"]}}}' --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: 187\' -d \'{"isSearchCount": true, "query": {"fields": ["dsid", "wellCommonName", "dataRegion"], "filter": {"key": "wellCommonName", "symbol": "=", "realValue": ["TestResource_1749119283_3c0f3c"]}}}\' --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\''