diff --git a/ddms_compliance_suite/__pycache__/stage_framework.cpython-312.pyc b/ddms_compliance_suite/__pycache__/stage_framework.cpython-312.pyc index d7b7b10..0b825ab 100644 Binary files a/ddms_compliance_suite/__pycache__/stage_framework.cpython-312.pyc and b/ddms_compliance_suite/__pycache__/stage_framework.cpython-312.pyc differ diff --git a/ddms_compliance_suite/__pycache__/test_orchestrator.cpython-312.pyc b/ddms_compliance_suite/__pycache__/test_orchestrator.cpython-312.pyc index cac7b5a..9fbb302 100644 Binary files a/ddms_compliance_suite/__pycache__/test_orchestrator.cpython-312.pyc and b/ddms_compliance_suite/__pycache__/test_orchestrator.cpython-312.pyc differ diff --git a/ddms_compliance_suite/models/__pycache__/config_models.cpython-312.pyc b/ddms_compliance_suite/models/__pycache__/config_models.cpython-312.pyc new file mode 100644 index 0000000..9da7cc9 Binary files /dev/null and b/ddms_compliance_suite/models/__pycache__/config_models.cpython-312.pyc differ diff --git a/ddms_compliance_suite/models/__pycache__/test_models.cpython-312.pyc b/ddms_compliance_suite/models/__pycache__/test_models.cpython-312.pyc index 7a4333f..3b582f7 100644 Binary files a/ddms_compliance_suite/models/__pycache__/test_models.cpython-312.pyc and b/ddms_compliance_suite/models/__pycache__/test_models.cpython-312.pyc differ diff --git a/ddms_compliance_suite/stage_framework.py b/ddms_compliance_suite/stage_framework.py index fe4f54c..a2b23ae 100644 --- a/ddms_compliance_suite/stage_framework.py +++ b/ddms_compliance_suite/stage_framework.py @@ -14,7 +14,7 @@ from pydantic import BaseModel from .test_framework_core import ValidationResult, APIResponseContext from .api_caller.caller import APICallDetail # Import ParsedAPISpec and endpoint types for type hinting and usage -from .input_parser.parser import ParsedAPISpec, YAPIEndpoint, SwaggerEndpoint +from .input_parser.parser import ParsedAPISpec, BaseEndpoint, YAPIEndpoint, SwaggerEndpoint, DMSEndpoint # 尝试从 .llm_utils 导入,如果失败则 LLMService 为 None try: @@ -199,7 +199,7 @@ class BaseAPIStage: def __init__(self, api_group_metadata: Dict[str, Any], - apis_in_group: List[Union[YAPIEndpoint, SwaggerEndpoint]], # MODIFIED TYPE HINT + apis_in_group: List[BaseEndpoint], # MODIFIED TYPE HINT to use BaseEndpoint llm_service: Optional[LLMService] = None, global_api_spec: Optional[ParsedAPISpec] = None, # <--- 修改类型注解 operation_keywords: Optional[Dict[str, List[str]]] = None): @@ -541,6 +541,7 @@ class ExecutedStageStepResult: validation_points: Optional[List[ValidationResult]] = None, duration: float = 0.0, api_call_detail: Optional[APICallDetail] = None, + api_operation_spec: Optional[BaseEndpoint] = None, # <--- 添加此行 extracted_outputs: Optional[Dict[str, Any]] = None, description: Optional[str] = None, lookup_key: Optional[Union[str, Dict[str, str]]] = None, @@ -555,6 +556,7 @@ class ExecutedStageStepResult: self.duration = duration self.timestamp = time.time() self.api_call_detail = api_call_detail + self.api_operation_spec = api_operation_spec # <--- 添加此行 self.extracted_outputs = extracted_outputs or {} self.description = description self.lookup_key = lookup_key @@ -608,6 +610,10 @@ class ExecutedStageStepResult: if failed_vp_messages: current_message = "; ".join(failed_vp_messages) + api_op_dict = self.api_operation_spec # Changed from self.api_operation + if isinstance(api_op_dict, BaseEndpoint): + api_op_dict = api_op_dict.model_dump() + return { "step_name": self.step_name, "description": self.description, @@ -619,6 +625,7 @@ class ExecutedStageStepResult: "timestamp": time.strftime('%Y-%m-%dT%H:%M:%S%z', time.localtime(self.timestamp)), "validation_points": vps_details_for_output, "api_call_curl": getattr(getattr(self, 'api_call_detail', None), 'curl_command', 'N/A'), + "api_operation_spec": api_op_dict, # <--- 添加此行 "request_details": self.request_details, "extracted_outputs": {k: str(v)[:200] + '...' if isinstance(v, (str, bytes)) and len(v) > 200 else v for k, v in self.extracted_outputs.items()}, @@ -672,17 +679,17 @@ class ExecutedStageResult: if not self.executed_steps and self.overall_status == ExecutedStageResult.Status.SKIPPED: # 如果没有执行任何步骤且状态是初始的 SKIPPED,则保持 if not self.message: self.message = "此阶段没有执行任何步骤,被跳过。" - elif any(step.status == ExecutedStageStepResult.Status.ERROR for step in self.executed_steps): + elif any(step.status == ExecutedStageResult.Status.ERROR for step in self.executed_steps): self.overall_status = ExecutedStageResult.Status.FAILED # 步骤执行错误导致阶段失败 if not self.message: self.message = "一个或多个步骤执行时发生内部错误。" - elif any(step.status == ExecutedStageStepResult.Status.FAILED for step in self.executed_steps): + elif any(step.status == ExecutedStageResult.Status.FAILED for step in self.executed_steps): self.overall_status = ExecutedStageResult.Status.FAILED if not self.message: self.message = "一个或多个步骤验证失败。" - elif all(step.status == ExecutedStageStepResult.Status.SKIPPED for step in self.executed_steps) and self.executed_steps: + elif all(step.status == ExecutedStageResult.Status.SKIPPED for step in self.executed_steps) and self.executed_steps: self.overall_status = ExecutedStageResult.Status.SKIPPED # 所有步骤都跳过了 if not self.message: self.message = "所有步骤均被跳过。" - elif all(step.status == ExecutedStageStepResult.Status.PASSED or step.status == ExecutedStageStepResult.Status.SKIPPED for step in self.executed_steps) and \ - any(step.status == ExecutedStageStepResult.Status.PASSED for step in self.executed_steps) : + elif all(step.status == ExecutedStageResult.Status.PASSED or step.status == ExecutedStageResult.Status.SKIPPED for step in self.executed_steps) and \ + any(step.status == ExecutedStageResult.Status.PASSED for step in self.executed_steps) : self.overall_status = ExecutedStageResult.Status.PASSED # 至少一个通过,其他是跳过或通过 if not self.message: self.message = "阶段执行成功。" else: # 其他情况,例如没有步骤但状态不是 SKIPPED (不应发生),或者混合状态未被明确处理 diff --git a/ddms_compliance_suite/test_orchestrator.py b/ddms_compliance_suite/test_orchestrator.py index 04d6e1d..5b28553 100644 --- a/ddms_compliance_suite/test_orchestrator.py +++ b/ddms_compliance_suite/test_orchestrator.py @@ -24,7 +24,7 @@ from pydantic import BaseModel, Field, create_model, HttpUrl # Added HttpUrl for from pydantic.networks import EmailStr from pydantic.types import Literal # Explicitly import Literal -from .input_parser.parser import InputParser, YAPIEndpoint, SwaggerEndpoint, ParsedYAPISpec, ParsedSwaggerSpec, ParsedAPISpec, DMSEndpoint, ParsedDMSSpec +from .input_parser.parser import InputParser, BaseEndpoint, YAPIEndpoint, SwaggerEndpoint, ParsedYAPISpec, ParsedSwaggerSpec, ParsedAPISpec, DMSEndpoint, ParsedDMSSpec from .api_caller.caller import APICaller, APIRequest, APIResponse, APICallDetail # Ensure APICallDetail is imported from .json_schema_validator.validator import JSONSchemaValidator from .test_framework_core import ValidationResult, TestSeverity, APIRequestContext, APIResponseContext, BaseAPITestCase @@ -342,8 +342,14 @@ class TestSummary: return data def to_json(self, pretty=True) -> str: - indent = 2 if pretty else None - return json.dumps(self.to_dict(), indent=indent, ensure_ascii=False) + def custom_serializer(obj): + """JSON serializer for objects not serializable by default json code""" + if isinstance(obj, BaseEndpoint): + return obj.to_dict() + raise TypeError(f"Object of type {type(obj).__name__} is not JSON serializable") + + indent = 4 if pretty else None + return json.dumps(self.to_dict(), indent=indent, ensure_ascii=False, default=custom_serializer) def print_summary_to_console(self): # Renamed from print_summary # (Implementation can be more detailed based on the new stats) diff --git a/log_dms.txt b/log_dms.txt index fe30baf..821132a 100644 --- a/log_dms.txt +++ b/log_dms.txt @@ -1,1346 +1,1303 @@ -2025-07-11 17:53:11,342 - __main__ - DEBUG - 已启用详细日志模式 -2025-07-11 17:53:11,342 - __main__ - INFO - 测试报告将保存到: /Users/zpc01/workspace/zzlh/compliance/test_reports/2025-07-11_17-53-11 -2025-07-11 17:53:11,342 - ddms_compliance_suite.test_case_registry - INFO - Discovering custom test cases from: ./custom_testcases -2025-07-11 17:53:11,342 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: security_checks 从 ./custom_testcases/security_checks.py -2025-07-11 17:53:11,342 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-002' (敏感字段加密检查) 来自类 'EncryptedFieldsCheck' (路径: ./custom_testcases/security_checks.py) -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' (路径: ./custom_testcases/basic_checks.py) -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_llm_compliance_check 从 ./custom_testcases/llm/tc_llm_compliance_check.py -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) 来自类 'LLMComplianceCheckTestCase' (路径: ./custom_testcases/llm/tc_llm_compliance_check.py) -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: required_headers_check 从 ./custom_testcases/setup_checks/required_headers_check.py -2025-07-11 17:53:11,343 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-HEADER-001' (必需请求头Schema验证) 来自类 'RequiredHeadersSchemaCheck' (路径: ./custom_testcases/setup_checks/required_headers_check.py) -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_response_schema_format_001 从 ./custom_testcases/井筒/DMS增加核心存储服务API/tc_response_schema_format_001.py -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) 来自类 'ResponseSchemaFormatCheck' (路径: ./custom_testcases/井筒/DMS增加核心存储服务API/tc_response_schema_format_001.py) -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_url_version_check_001 从 ./custom_testcases/井筒/DMS增加核心存储服务API/tc_url_version_check_001.py -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) 来自类 'URLVersionCheckCase' (路径: ./custom_testcases/井筒/DMS增加核心存储服务API/tc_url_version_check_001.py) -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_pagination_params_check 从 ./custom_testcases/井筒/开发指南-后端/tc_pagination_params_check.py -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-PAGINATION-001' (分页参数检查) 来自类 'PaginationParamsCheckTestCase' (路径: ./custom_testcases/井筒/开发指南-后端/tc_pagination_params_check.py) -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_002 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_002.py -2025-07-11 17:53:11,344 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-002' (资源路径名词检查) 来自类 'ResourcePathNounCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_002.py) -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_003 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_003.py -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-003' (时间字段ISO 8601格式检查) 来自类 'TimeFormatCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_003.py) -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_combined_001 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_combined_001.py -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-001' (核心命名与结构规范检查) 来自类 'CoreNamingStructureTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_combined_001.py) -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_004 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_004.py -2025-07-11 17:53:11,345 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-004' (资源集合复数命名检查) 来自类 'ResourceCollectionPluralCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_004.py) -2025-07-11 17:53:11,346 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: https_mandatory_case 从 ./custom_testcases/compliance_catalog/security/https_mandatory_case.py -2025-07-11 17:53:11,346 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-001' (HTTPS 协议强制性检查) 来自类 'HTTPSMandatoryCase' (路径: ./custom_testcases/compliance_catalog/security/https_mandatory_case.py) -2025-07-11 17:53:11,346 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: url_llm_checks 从 ./custom_testcases/compliance_catalog/normative_spec/url_llm_checks.py -2025-07-11 17:53:11,346 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: http_method_usage_case 从 ./custom_testcases/compliance_catalog/normative_spec/http_method_usage_case.py -2025-07-11 17:53:11,346 - 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-07-11 17:53:11,346 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) 来自类 'MissingRequiredFieldQueryCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py) -2025-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: invalid_enum_value_case 从 ./custom_testcases/compliance_catalog/error_handling/invalid_enum_value_case.py -2025-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4006' (非法枚举值检查) 来自类 'InvalidEnumValueCase' (路径: ./custom_testcases/compliance_catalog/error_handling/invalid_enum_value_case.py) -2025-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_body_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py -2025-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) 来自类 'TypeMismatchBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py) -2025-07-11 17:53:11,347 - 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-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) 来自类 'MissingRequiredFieldBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py) -2025-07-11 17:53:11,347 - 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-07-11 17:53:11,347 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) 来自类 'TypeMismatchQueryParamCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py) -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: number_out_of_range_case 从 ./custom_testcases/compliance_catalog/error_handling/number_out_of_range_case.py -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4002' (数值参数越界检查) 来自类 'NumberOutOfRangeCase' (路径: ./custom_testcases/compliance_catalog/error_handling/number_out_of_range_case.py) -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-001' (返回体JSON Schema验证) 来自类 'ResponseSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py) -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: flexible_schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/flexible_schema_validation_case.py -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) 来自类 'FlexibleSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/flexible_schema_validation_case.py) -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 20 个测试用例类进行了排序。 -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 20 个独特的测试用例 (基于ID)。发现并排序了 20 个测试用例类。 -2025-07-11 17:53:11,348 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1 -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_orchestrator - INFO - LLMService initialized with model: qwen-plus. -2025-07-11 17:53:11,348 - ddms_compliance_suite.test_orchestrator - INFO - LLMService is initialized, but no LLM generation flags (--use-llm-for-*) are enabled. -2025-07-11 17:53:11,348 - ddms_compliance_suite.stage_registry - INFO - 开始从目录发现测试阶段: custom_stages -2025-07-11 17:53:11,349 - ddms_compliance_suite.stage_registry - DEBUG - 成功加载模块: ddms_compliance_suite.stages.keyword_driven_crud_stage 从 custom_stages/keyword_driven_crud_stage.py -2025-07-11 17:53:11,349 - ddms_compliance_suite.stage_registry - DEBUG - 成功加载模块: ddms_compliance_suite.stages.dms_crud_scenario_stage 从 custom_stages/dms_crud_scenario_stage.py -2025-07-11 17:53:11,349 - ddms_compliance_suite.stage_registry - INFO - 成功注册测试阶段: dms_crud_scenario_stage (来自 ddms_compliance_suite.stages.dms_crud_scenario_stage.DmsCrudScenarioStage) -2025-07-11 17:53:11,349 - ddms_compliance_suite.stage_registry - INFO - 测试阶段发现完成。共加载 1 个阶段。发现 0 个错误。 -2025-07-11 17:53:11,349 - ddms_compliance_suite.test_orchestrator - INFO - StageRegistry initialized. Loaded 1 stages. -2025-07-11 17:53:11,349 - ddms_compliance_suite.test_orchestrator - INFO - Orchestrator output directory set to: /Users/zpc01/workspace/zzlh/compliance/test_reports/2025-07-11_17-53-11 -2025-07-11 17:53:11,349 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,349 - __main__ - INFO - 从DMS服务动态发现运行测试: ./assets/doc/dms/domain.json -2025-07-11 17:53:11,349 - ddms_compliance_suite.test_orchestrator - INFO - TestSummary initialized. -2025-07-11 17:53:11,349 - ddms_compliance_suite.test_orchestrator - INFO - 从DMS动态服务启动测试... -2025-07-11 17:53:11,349 - ddms_compliance_suite.input_parser.parser - INFO - Starting DMS spec parsing. Base URL: http://127.0.0.1:5001, Domain Map: ./assets/doc/dms/domain.json -2025-07-11 17:53:11,350 - ddms_compliance_suite.input_parser.parser - INFO - Fetching API list from: http://127.0.0.1:5001/api/schema/manage/schema -2025-07-11 17:53:11,358 - ddms_compliance_suite.input_parser.parser - INFO - Fetching model for 'lujing_test' from: http://127.0.0.1:5001/api/schema/manage/schema/lujing_test.1.0.0 -2025-07-11 17:53:11,360 - ddms_compliance_suite.input_parser.parser - INFO - Fetching model for 'wb_dr_pro_daily_report' from: http://127.0.0.1:5001/api/schema/manage/schema/wb_dr_pro_daily_report.1.0.0 -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行API测试阶段 (Stages)... -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 发现了 1 个已定义的测试阶段: ['dms_crud_scenario_stage'] -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - WARNING - 未知的解析规范类型: 。将阶段应用于整个规范 (api_group_name=None). -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 将针对 1 个API分组评估测试阶段: [None] -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 处理测试阶段定义: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'dms_crud_scenario_stage' 的上下文,针对API分组: 'Global' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - For Global context, selected 10 endpoint objects. -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'dms_crud_scenario_stage' 和分组 'Global' 实例化。API对象数量: 10. 元数据: {'name': 'Global (所有API)', 'description': '适用于规范中的所有API'} -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'dms_crud_scenario_stage' 是否适用于API分组 'Global'... -2025-07-11 17:53:11,361 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'lujing_test' -2025-07-11 17:53:11,361 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'wb_dr_pro_daily_report' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' 适用于API分组 'Global'。开始执行... -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试阶段: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario', API分组='Global' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 before_stage 钩子。初始上下文: {} -2025-07-11 17:53:11,361 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Setting up before_stage for scenario: ['create', 'list', 'read', 'update', 'delete'] -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 开始执行. -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 before_step 钩子. 上下文: {'pk_name': 'description', 'pk_value': 'b35c0305-7a09-40e3-a657-2abf4edb3b5f', 'current_payload': {'description': 'test-entry-from-scenario'}, 'update_payload': {'description': 'updated-test-entry-from-scenario'}, 'scenario_endpoints': {'create': , 'list': , 'read': , 'update': , 'delete': }} -2025-07-11 17:53:11,361 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing before_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 查找端点定义. Key='CREATE', Group='None' -2025-07-11 17:53:11,361 - ddms_compliance_suite.test_orchestrator - ERROR - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 步骤执行期间发生意外错误: name 'BaseEndpoint' is not defined -Traceback (most recent call last): - File "/Users/zpc01/workspace/zzlh/compliance/ddms_compliance_suite/test_orchestrator.py", line 2181, in execute_single_stage - if isinstance(api_op_spec, BaseEndpoint): - ^^^^^^^^^^^^ -NameError: name 'BaseEndpoint' is not defined. Did you mean: 'YAPIEndpoint'? -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 after_step 钩子. -2025-07-11 17:53:11,363 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing after_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行完毕. 状态: 执行错误, 耗时: 0.00s -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 状态为 执行错误 且 continue_on_failure=False. 中止测试阶段 'dms_crud_scenario_stage'. -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 after_stage 钩子. 当前阶段结果状态: 执行错误 -2025-07-11 17:53:11,363 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Finished scenario 1/2 for this group. -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' (API分组: 'Global') 执行完毕. 最终状态: 失败, 耗时: 0.00s -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 1 (stage_definition x api_group) combinations. -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,363 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_ml/v1/lujing_test (Create lujing_test) -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,364 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,365 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.365352 -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,365 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,368 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,368 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.368844 -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,368 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,370 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,370 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.370422 -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,370 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,371 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,371 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,371 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,371 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,371 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.372101 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,372 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.373196 -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,373 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,374 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,374 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,374 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.374582 -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,374 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.375834 -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,375 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.376983 -2025-07-11 17:53:11,376 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.365352"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.365352"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.368844"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.368844"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.370422"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.370422"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.372101"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.372101"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.373196"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.373196"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,869 - __main__ - DEBUG - 已启用详细日志模式 +2025-07-11 18:57:44,869 - __main__ - INFO - 测试报告将保存到: /Users/zpc01/workspace/zzlh/compliance/test_reports/2025-07-11_18-57-44 +2025-07-11 18:57:44,869 - ddms_compliance_suite.test_case_registry - INFO - Discovering custom test cases from: ./custom_testcases +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: security_checks 从 ./custom_testcases/security_checks.py +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-002' (敏感字段加密检查) 来自类 'EncryptedFieldsCheck' (路径: ./custom_testcases/security_checks.py) +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' (路径: ./custom_testcases/basic_checks.py) +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_llm_compliance_check 从 ./custom_testcases/llm/tc_llm_compliance_check.py +2025-07-11 18:57:44,870 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) 来自类 'LLMComplianceCheckTestCase' (路径: ./custom_testcases/llm/tc_llm_compliance_check.py) +2025-07-11 18:57:44,871 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: required_headers_check 从 ./custom_testcases/setup_checks/required_headers_check.py +2025-07-11 18:57:44,871 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-HEADER-001' (必需请求头Schema验证) 来自类 'RequiredHeadersSchemaCheck' (路径: ./custom_testcases/setup_checks/required_headers_check.py) +2025-07-11 18:57:44,871 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_response_schema_format_001 从 ./custom_testcases/井筒/DMS增加核心存储服务API/tc_response_schema_format_001.py +2025-07-11 18:57:44,871 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) 来自类 'ResponseSchemaFormatCheck' (路径: ./custom_testcases/井筒/DMS增加核心存储服务API/tc_response_schema_format_001.py) +2025-07-11 18:57:44,872 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_url_version_check_001 从 ./custom_testcases/井筒/DMS增加核心存储服务API/tc_url_version_check_001.py +2025-07-11 18:57:44,872 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) 来自类 'URLVersionCheckCase' (路径: ./custom_testcases/井筒/DMS增加核心存储服务API/tc_url_version_check_001.py) +2025-07-11 18:57:44,872 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_pagination_params_check 从 ./custom_testcases/井筒/开发指南-后端/tc_pagination_params_check.py +2025-07-11 18:57:44,872 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-DMS-PAGINATION-001' (分页参数检查) 来自类 'PaginationParamsCheckTestCase' (路径: ./custom_testcases/井筒/开发指南-后端/tc_pagination_params_check.py) +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_002 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_002.py +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-002' (资源路径名词检查) 来自类 'ResourcePathNounCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_002.py) +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_003 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_003.py +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-003' (时间字段ISO 8601格式检查) 来自类 'TimeFormatCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_003.py) +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_combined_001 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_combined_001.py +2025-07-11 18:57:44,873 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-001' (核心命名与结构规范检查) 来自类 'CoreNamingStructureTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_combined_001.py) +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: tc_normative_004 从 ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_004.py +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-RESTful-004' (资源集合复数命名检查) 来自类 'ResourceCollectionPluralCheckTestCase' (路径: ./custom_testcases/井筒/RESTful接口设计要求/tc_normative_004.py) +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: https_mandatory_case 从 ./custom_testcases/compliance_catalog/security/https_mandatory_case.py +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-SECURITY-001' (HTTPS 协议强制性检查) 来自类 'HTTPSMandatoryCase' (路径: ./custom_testcases/compliance_catalog/security/https_mandatory_case.py) +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: url_llm_checks 从 ./custom_testcases/compliance_catalog/normative_spec/url_llm_checks.py +2025-07-11 18:57:44,874 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: http_method_usage_case 从 ./custom_testcases/compliance_catalog/normative_spec/http_method_usage_case.py +2025-07-11 18:57:44,875 - 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-07-11 18:57:44,875 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) 来自类 'MissingRequiredFieldQueryCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_query_case.py) +2025-07-11 18:57:44,875 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: invalid_enum_value_case 从 ./custom_testcases/compliance_catalog/error_handling/invalid_enum_value_case.py +2025-07-11 18:57:44,875 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4006' (非法枚举值检查) 来自类 'InvalidEnumValueCase' (路径: ./custom_testcases/compliance_catalog/error_handling/invalid_enum_value_case.py) +2025-07-11 18:57:44,875 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: type_mismatch_body_case 从 ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py +2025-07-11 18:57:44,875 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) 来自类 'TypeMismatchBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_body_case.py) +2025-07-11 18:57:44,876 - 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-07-11 18:57:44,876 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) 来自类 'MissingRequiredFieldBodyCase' (路径: ./custom_testcases/compliance_catalog/error_handling/missing_required_field_body_case.py) +2025-07-11 18:57:44,876 - 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-07-11 18:57:44,876 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) 来自类 'TypeMismatchQueryParamCase' (路径: ./custom_testcases/compliance_catalog/error_handling/type_mismatch_query_param_case.py) +2025-07-11 18:57:44,876 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: number_out_of_range_case 从 ./custom_testcases/compliance_catalog/error_handling/number_out_of_range_case.py +2025-07-11 18:57:44,876 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-ERROR-4002' (数值参数越界检查) 来自类 'NumberOutOfRangeCase' (路径: ./custom_testcases/compliance_catalog/error_handling/number_out_of_range_case.py) +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-001' (返回体JSON Schema验证) 来自类 'ResponseSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/schema_validation_case.py) +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: flexible_schema_validation_case 从 ./custom_testcases/compliance_catalog/core_functionality/flexible_schema_validation_case.py +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) 来自类 'FlexibleSchemaValidationCase' (路径: ./custom_testcases/compliance_catalog/core_functionality/flexible_schema_validation_case.py) +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 20 个测试用例类进行了排序。 +2025-07-11 18:57:44,877 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 20 个独特的测试用例 (基于ID)。发现并排序了 20 个测试用例类。 +2025-07-11 18:57:44,878 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1 +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - LLMService initialized with model: qwen-plus. +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - LLMService is initialized, but no LLM generation flags (--use-llm-for-*) are enabled. +2025-07-11 18:57:44,878 - ddms_compliance_suite.stage_registry - INFO - 开始从目录发现测试阶段: custom_stages +2025-07-11 18:57:44,878 - ddms_compliance_suite.stage_registry - DEBUG - 成功加载模块: ddms_compliance_suite.stages.keyword_driven_crud_stage 从 custom_stages/keyword_driven_crud_stage.py +2025-07-11 18:57:44,878 - ddms_compliance_suite.stage_registry - DEBUG - 成功加载模块: ddms_compliance_suite.stages.dms_crud_scenario_stage 从 custom_stages/dms_crud_scenario_stage.py +2025-07-11 18:57:44,878 - ddms_compliance_suite.stage_registry - INFO - 成功注册测试阶段: dms_crud_scenario_stage (来自 ddms_compliance_suite.stages.dms_crud_scenario_stage.DmsCrudScenarioStage) +2025-07-11 18:57:44,878 - ddms_compliance_suite.stage_registry - INFO - 测试阶段发现完成。共加载 1 个阶段。发现 0 个错误。 +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - StageRegistry initialized. Loaded 1 stages. +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - Orchestrator output directory set to: /Users/zpc01/workspace/zzlh/compliance/test_reports/2025-07-11_18-57-44 +2025-07-11 18:57:44,878 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,878 - __main__ - INFO - 从DMS服务动态发现运行测试: ./assets/doc/dms/domain.json +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - TestSummary initialized. +2025-07-11 18:57:44,878 - ddms_compliance_suite.test_orchestrator - INFO - 从DMS动态服务启动测试... +2025-07-11 18:57:44,878 - ddms_compliance_suite.input_parser.parser - INFO - Starting DMS spec parsing. Base URL: http://127.0.0.1:5001, Domain Map: ./assets/doc/dms/domain.json +2025-07-11 18:57:44,879 - ddms_compliance_suite.input_parser.parser - INFO - Fetching API list from: http://127.0.0.1:5001/api/schema/manage/schema +2025-07-11 18:57:44,885 - ddms_compliance_suite.input_parser.parser - INFO - Fetching model for 'lujing_test' from: http://127.0.0.1:5001/api/schema/manage/schema/lujing_test.1.0.0 +2025-07-11 18:57:44,886 - ddms_compliance_suite.input_parser.parser - INFO - Fetching model for 'wb_dr_pro_daily_report' from: http://127.0.0.1:5001/api/schema/manage/schema/wb_dr_pro_daily_report.1.0.0 +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行API测试阶段 (Stages)... +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 发现了 1 个已定义的测试阶段: ['dms_crud_scenario_stage'] +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - WARNING - 未知的解析规范类型: 。将阶段应用于整个规范 (api_group_name=None). +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 将针对 1 个API分组评估测试阶段: [None] +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 处理测试阶段定义: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'dms_crud_scenario_stage' 的上下文,针对API分组: 'Global' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - For Global context, selected 10 endpoint objects. +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'dms_crud_scenario_stage' 和分组 'Global' 实例化。API对象数量: 10. 元数据: {'name': 'Global (所有API)', 'description': '适用于规范中的所有API'} +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'dms_crud_scenario_stage' 是否适用于API分组 'Global'... +2025-07-11 18:57:44,887 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'lujing_test' +2025-07-11 18:57:44,887 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'wb_dr_pro_daily_report' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' 适用于API分组 'Global'。开始执行... +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试阶段: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario', API分组='Global' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 before_stage 钩子。初始上下文: {} +2025-07-11 18:57:44,887 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Setting up before_stage for scenario: ['create', 'list', 'read', 'update', 'delete'] +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 开始执行. +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 before_step 钩子. 上下文: {'pk_name': 'description', 'pk_value': 'c3782722-693c-41e0-8f7a-6121c09ab40e', 'current_payload': {'description': 'test-entry-from-scenario'}, 'update_payload': {'description': 'updated-test-entry-from-scenario'}, 'scenario_endpoints': {'create': , 'list': , 'read': , 'update': , 'delete': }} +2025-07-11 18:57:44,887 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing before_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 查找端点定义. Key='CREATE', Group='None' +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 已解析端点 'POST /api/dms/wb_ml/v1/lujing_test'. 准备请求数据. +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,887 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.888069 +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 应用请求覆盖: {'body': {'data': ['{{stage_context.current_payload}}']}} +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Step 1: Create Resource'] 解析上下文路径: 'current_payload' 来自模板 '{{stage_context.current_payload}}' +2025-07-11 18:57:44,888 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Step 1: Create Resource'] 从上下文解析到值 '{'description': 'test-entry-from-scenario'}...' (路径: 'current_payload') +2025-07-11 18:57:44,889 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 发送API请求: POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 收到响应. Status: 400. 验证中... +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 预期状态码为 [200, 201], 实际为 400. +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行断言 'validate_response_is_true' +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 断言 'validate_response_is_true' 失败: Expected response data to be true, but it was 'None'. +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 提取输出到上下文. Map: {} +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 after_step 钩子. +2025-07-11 18:57:44,890 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing after_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行完毕. 状态: 失败, 耗时: 0.00s +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 状态为 失败 且 continue_on_failure=False. 中止测试阶段 'dms_crud_scenario_stage'. +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 after_stage 钩子. 当前阶段结果状态: 失败 +2025-07-11 18:57:44,890 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Finished scenario 1/2 for this group. +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' (API分组: 'Global') 执行完毕. 最终状态: 失败, 耗时: 0.00s +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 1 (stage_definition x api_group) combinations. +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,890 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,891 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_ml/v1/lujing_test (Create lujing_test) +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,892 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.892671 +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,892 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,893 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,893 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.893971 +2025-07-11 18:57:44,893 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,894 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,894 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,895 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.895131 +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,895 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,895 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,895 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,896 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,896 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.896599 +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,896 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.897636 +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,897 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,898 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:44,898 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:44,898 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.898778 +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,898 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.899742 +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,899 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 'Content-Type: application/json' -H 'Content-Length: 55' -d '{"data": [{"description": "test-entry-from-scenario"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 55\' -d \'{"data": [{"description": "test-entry-from-scenario"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.892671"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.892671"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.893971"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.893971"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.895131"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.895131"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.896599"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.896599"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.897636"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.897636"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' status_code: 200 responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.374582"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.374582"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.375834"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.375834"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.376983"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,377 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.378001 -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,378 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,379 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.379166 -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,379 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,380 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,380 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.381778 -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,381 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,382 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.383039 -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,383 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,384 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.384282 -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,384 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,385 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.385306 -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,385 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,385 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,386 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.386350 -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,386 - 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-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,386 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,386 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0015761852264404297 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,388 - 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-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.388387 -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,388 - 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-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,388 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,388 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,388 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.376983"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.378001"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.378001"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.379166"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.379166"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.381778"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.381778"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.383039"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.383039"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.384282"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.384282"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.385306"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.385306"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.386350"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.386350"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0007448196411132812 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.389858 -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,389 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,389 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,389 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,390 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0007638931274414062 -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,390 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,391 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,391 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.391574 -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,391 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,392 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] -2025-07-11 17:53:11,392 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,392 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.392751 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,392 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.392751'}]')。 -2025-07-11 17:53:11,392 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,392 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,393 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,393 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,393 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.394004 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,394 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,394 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,394 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,394 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 (List lujing_test) -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,394 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,395 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,395 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,395 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,396 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,396 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': [{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.394004'}], 'message': "获取 'lujing_test' 列表成功"} -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': [{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.394004'}], 'message': "获取 'lujing_test' 列表成功"} -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - response_data:[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.394004'}] -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - response_data:{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.394004'} -2025-07-11 17:53:11,397 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,397 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,398 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,398 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,399 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}}}}}}}} -2025-07-11 17:53:11,399 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.388387"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 193\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.388387"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.389858"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 199\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.389858"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.391574"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.391574"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.898778"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.898778"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.899742"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.900781 +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,900 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.901796 +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,901 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,902 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.902823 +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,902 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,903 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:44,903 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.904921 +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,904 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,905 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.906008 +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,906 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,907 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.907137 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,907 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,907 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.908090 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,908 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:44,908 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,908 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.909170 +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,909 - 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-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,909 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,909 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.899742"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.900781"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.900781"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.901796"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.901796"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.902823"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.902823"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.904921"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.904921"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.906008"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.906008"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.907137"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.907137"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.908090"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.908090"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0007529258728027344 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,910 - 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-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.910366 +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,910 - 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-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:44,910 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,910 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,910 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0008378028869628906 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' +2025-07-11 18:57:44,911 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,911 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.912003 +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,912 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,912 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0007319450378417969 +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,912 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,913 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:44,913 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:44,913 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.913606 +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,913 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,914 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] +2025-07-11 18:57:44,914 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:44,914 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.914705 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,914 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.914705'}]')。 +2025-07-11 18:57:44,914 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,914 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,915 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:44,915 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.915752 +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,915 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,916 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,916 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,916 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,916 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 (List lujing_test) +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0'。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,916 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,917 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,917 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,917 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,917 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,918 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,918 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': [{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.915752'}], 'message': "获取 'lujing_test' 列表成功"} +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': [{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.915752'}], 'message': "获取 'lujing_test' 列表成功"} +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - response_data:[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.915752'}] +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - response_data:{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.915752'} +2025-07-11 18:57:44,919 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,919 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,919 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.909170"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.909170"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.910366"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 193\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.910366"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.912003"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 199\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.912003"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.913606"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.913606"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 30\' -d \'{"version": "1.0.0", "act": 0}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.394004"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.394004"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.915752"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.915752"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,920 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,921 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}}}}}}}} +2025-07-11 18:57:44,921 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:44,921 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-001' 执行失败。 +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,921 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,922 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,923 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,924 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,925 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,925 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,926 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:44,926 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,926 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-003' 执行失败。 +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 失败 +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,927 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,928 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,928 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,929 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,929 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:44,929 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,929 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,929 - 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-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,929 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" status_code: 200 -responses: 2025-07-11 17:53:11,399 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-001' 执行失败。 -2025-07-11 17:53:11,399 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,400 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,401 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,402 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,403 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,403 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,404 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,404 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,404 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-003' 执行失败。 -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 失败 -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,405 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,406 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,406 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,407 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。 -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,407 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,407 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,408 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,408 - 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-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,408 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,408 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006561279296875 -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,409 - 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-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - No suitable request body schema found -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No request body schema found for endpoint. Skipping type mismatch target search. -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Conclusion: No target field identified for request body type mismatch test. -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No target field or original type identified for body type mismatch. Skipping body modification. -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,409 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,409 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Skipped type mismatch (body) validation: No target field was identified. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0007050037384033203 -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-BODY' 执行成功。 -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - No suitable request body schema found -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,410 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,410 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -{'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}}}}}}}} +responses: {'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}}}}}}}} DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 @@ -1359,342 +1316,378 @@ DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requ DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006449222564697266 +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - 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-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - No suitable request body schema found +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No request body schema found for endpoint. Skipping type mismatch target search. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Conclusion: No target field identified for request body type mismatch test. +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No target field or original type identified for body type mismatch. Skipping body modification. +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,930 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,930 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Skipped type mismatch (body) validation: No target field was identified. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006871223449707031 +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-BODY' 执行成功。 +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - No suitable request body schema found +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,931 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,931 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,932 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006368160247802734 +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,932 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:44,932 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:44,932 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,932 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,933 - testcase.TC-ERROR-4003-BODY - INFO - 此端点规范中未定义或找到请求体 schema(通过基类方法)。 +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,933 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,934 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,934 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:44,934 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。Target param to remove: None +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,934 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +2025-07-11 18:57:44,935 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,935 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,935 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,935 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 测试完成,最终状态: 通过 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id} (Read lujing_test) +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('id') 的 schema... +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,935 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 初始化。 +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'read_lujing_test': {'id': 'param_id'} +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'read_lujing_test': None +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'read_lujing_test': application/json +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'read_lujing_test' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'id': 'param_id'} +2025-07-11 18:57:44,935 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id +2025-07-11 18:57:44,936 - testcase.TC-STATUS-001 - WARNING - 状态码验证失败: 期望 200, 实际 404 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - ERROR - 关键的前置测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 失败。后续测试将被跳过。原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-STATUS-001' 执行失败。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-HEADER-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-HEADER-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-002' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-LLM-COMPLIANCE-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-LLM-COMPLIANCE-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-PAGINATION-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-PAGINATION-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-004' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-004' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-002' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-CORE-SCHEMA-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-CORE-SCHEMA-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-003' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-003' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-URL-VERSION-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-URL-VERSION-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-002' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-001' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-QUERY' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-BODY' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4002' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4006' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4006' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-BODY' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-QUERY' 被跳过。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 跳过 +2025-07-11 18:57:44,936 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,936 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,936 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 测试完成,最终状态: 失败 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/wb_ml/v1/lujing_test (Update lujing_test) +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,936 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,937 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.937246 +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,937 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,938 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,938 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.938274 +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,938 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,938 - RequiredHeadersSchemaCheck - INFO - API端点: PUT /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,938 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,938 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,939 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,939 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,939 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,939 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,939 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,939 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.939302 +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,939 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,940 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,940 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,940 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,940 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.940349 +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,940 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" -2025-07-11 17:53:11,411 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.000762939453125 -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,411 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,411 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,411 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,411 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,412 - testcase.TC-ERROR-4003-BODY - INFO - 此端点规范中未定义或找到请求体 schema(通过基类方法)。 -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,412 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,413 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,413 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,413 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 初始化。Target param to remove: None -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_lujing_test': application/json -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_lujing_test': application/json -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,413 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 -2025-07-11 17:53:11,414 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,414 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,414 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,414 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_ml/v1/lujing_test/1.0.0' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id} (Read lujing_test) -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('id') 的 schema... -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,414 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 初始化。 -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'read_lujing_test': {'id': 'param_id'} -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'read_lujing_test': None -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'read_lujing_test': application/json -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'read_lujing_test' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'id': 'param_id'} -2025-07-11 17:53:11,414 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id -2025-07-11 17:53:11,415 - testcase.TC-STATUS-001 - WARNING - 状态码验证失败: 期望 200, 实际 404 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - ERROR - 关键的前置测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 失败。后续测试将被跳过。原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-STATUS-001' 执行失败。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-HEADER-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-HEADER-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-002' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-LLM-COMPLIANCE-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-LLM-COMPLIANCE-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-PAGINATION-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-PAGINATION-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-004' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-004' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-002' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-CORE-SCHEMA-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-CORE-SCHEMA-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-003' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-003' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-URL-VERSION-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-URL-VERSION-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-002' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-001' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-001' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-QUERY' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-BODY' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4002' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4002' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4006' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4006' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-BODY' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-QUERY' 被跳过。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,415 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,415 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,415 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}' 测试完成,最终状态: 失败 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/wb_ml/v1/lujing_test (Update lujing_test) -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,415 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,416 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.416328 -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,416 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,417 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,417 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.417493 -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,417 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - INFO - API端点: PUT /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,418 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,418 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.418636 -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,418 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,419 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,419 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,419 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,419 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.419742 -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,419 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,420 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.421044 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 @@ -1705,764 +1698,768 @@ DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requ DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/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' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id 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' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id" -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.416328"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.416328"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.417493"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.417493"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.418636"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.418636"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.419742"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.419742"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.421044"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,421 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,421 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,421 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,421 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.422184 -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,422 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.423306 -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,423 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.424326 -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,424 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.425368 -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,425 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,426 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.426346 -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,426 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,427 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,427 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.427322 -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,427 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.428394 -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,428 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,429 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.429420 -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,429 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.421044"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.937246"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.937246"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.938274"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.938274"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.939302"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.939302"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.940349"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.941289 +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,941 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,941 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:44,941 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:44,942 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.942224 +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,942 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.943255 +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,943 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.944255 +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,944 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.945356 +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,945 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,946 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.946323 +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,946 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,947 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:44,947 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.947295 +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,947 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.948436 +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,948 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.940349"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.941289"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.941289"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' status_code: 200 responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.422184"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.422184"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.423306"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.423306"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.424326"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.424326"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.425368"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.425368"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.426346"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.426346"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.427322"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.427322"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.428394"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.428394"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,430 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.430437 -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,430 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,430 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,431 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.431487 -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,431 - 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-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,431 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,431 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006959438323974609 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,432 - 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-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.432731 -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,432 - 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-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,432 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,432 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,432 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,433 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0009379386901855469 -2025-07-11 17:53:11,433 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,433 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,433 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,433 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,433 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.434687 -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,434 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,434 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,434 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,435 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0009801387786865234 -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,435 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,435 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,435 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,435 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.436122 -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,436 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,437 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] -2025-07-11 17:53:11,437 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,437 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.437424 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,437 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.437424'}]')。 -2025-07-11 17:53:11,437 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,437 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,438 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,438 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T17:53:11.438603 -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,438 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,439 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,439 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,439 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,439 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/wb_ml/v1/lujing_test (Delete lujing_test) -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,439 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,440 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,440 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.429420"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.429420"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.430437"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.430437"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.431487"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.431487"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.432731"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 193\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.432731"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.434687"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 199\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.434687"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.436122"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.436122"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.942224"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.942224"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.943255"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.943255"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.944255"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.944255"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.945356"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.945356"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.946323"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.946323"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.947295"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.947295"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,949 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.949567 +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,949 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,950 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.950599 +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,950 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,950 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:44,951 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.951607 +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,951 - 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-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,951 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,951 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006699562072753906 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,952 - 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-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.952712 +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,952 - 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-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:44,952 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,952 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,952 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006530284881591797 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: PUT /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.953838 +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,953 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,953 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,953 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,954 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006530284881591797 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,954 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:44,954 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:44,954 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.954880 +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,954 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,955 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] +2025-07-11 18:57:44,955 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:44,955 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.955852 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,955 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'lujing_test_id': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.955852'}]')。 +2025-07-11 18:57:44,955 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,955 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,956 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:44,956 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'PUT /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'PUT /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_lujing_test': application/json +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_lujing_test': application/json +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 使用 schema 中的 'example' 值 for (context: update_lujing_test_body.act): 0 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 array 类型数据 for (context: update_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 object 类型数据 for (context: update_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 number/integer 类型数据 for (context: update_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('') for (context: update_lujing_test_body.data[0].status): active +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_lujing_test] 生成 string 类型数据 ('date-time') for (context: update_lujing_test_body.data[0].update_date): 2025-07-11T18:57:44.956832 +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_lujing_test' (type: ) +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,956 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.948436"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.948436"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.949567"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.949567"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.950599"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.950599"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.951607"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.951607"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.952712"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 193\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.952712"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.953838"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 199\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.953838"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.954880"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.954880"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 30\' -d \'{"version": "1.0.0", "act": 0}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.438603"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.438603"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,441 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,441 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,441 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - INFO - API端点: DELETE /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,442 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,442 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,442 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,443 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 404, 'data': False, 'message': '未找到要删除的资源'} -2025-07-11 17:53:11,443 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 404, 'data': False, 'message': '未找到要删除的资源'} -2025-07-11 17:53:11,443 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,443 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,443 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,444 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,445 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,445 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,445 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,445 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,446 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,447 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,448 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,449 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,449 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,957 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,957 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,957 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,957 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/wb_ml/v1/lujing_test (Delete lujing_test) +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_ml/v1/lujing_test'。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,957 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,957 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,958 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,958 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,958 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - INFO - API端点: DELETE /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,959 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,959 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,959 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,960 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 404, 'data': False, 'message': '未找到要删除的资源'} +2025-07-11 18:57:44,960 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 404, 'data': False, 'message': '未找到要删除的资源'} +2025-07-11 18:57:44,960 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,960 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,960 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,961 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,962 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:44,962 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:44,962 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,962 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,963 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,964 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,965 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.956832"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 195\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.956832"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test @@ -2482,282 +2479,281 @@ DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,966 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,966 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,967 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:44,967 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,967 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,968 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,969 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,969 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,970 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,970 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,970 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:44,971 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,971 - 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-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,971 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,971 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006310939788818359 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,972 - 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-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,972 - 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-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:44,972 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,972 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,972 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006258487701416016 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,973 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,973 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,974 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006501674652099609 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,974 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:44,974 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:44,974 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,974 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,975 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'data'] +2025-07-11 18:57:44,975 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:44,975 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,975 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string'}]')。 +2025-07-11 18:57:44,975 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,975 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,450 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,450 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,450 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,451 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,452 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,452 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,453 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,453 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,453 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,454 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,454 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,454 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,454 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,454 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,454 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,454 - 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-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,455 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,455 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,455 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.001287221908569336 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,456 - 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-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,456 - 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-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,456 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,456 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,456 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.001188039779663086 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: DELETE /api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,458 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,458 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,459 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0011968612670898438 -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,459 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,459 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,459 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,459 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,460 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,461 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'data'] -2025-07-11 17:53:11,461 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,461 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,461 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string'}]')。 -2025-07-11 17:53:11,461 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,461 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,462 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,462 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,462 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' @@ -2776,967 +2772,972 @@ DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 20' -d '{"version": "1.0.0"}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,976 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:44,976 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 初始化。Target param to remove: None +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'DELETE /api/dms/wb_ml/v1/lujing_test' +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_lujing_test': application/json +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_lujing_test': application/json +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body). Properties: ['version', 'data'] +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 使用 schema 中的 'example' 值 for (context: delete_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 array 类型数据 for (context: delete_lujing_test_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 object 类型数据 for (context: delete_lujing_test_body.data[0]). Properties: ['description'] +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_lujing_test] 生成 string 类型数据 ('') for (context: delete_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_lujing_test' (type: ) +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,976 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:44,977 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,977 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,977 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,977 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Create wb_dr_pro_daily_report) +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,977 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.977510 +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,977 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,978 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,978 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.978653 +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,978 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,979 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,979 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.979718 +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,979 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,980 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,980 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:44,980 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,980 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.980783 +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,980 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.981767 +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,981 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,982 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:44,982 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:44,982 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.982732 +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,982 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.983732 +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,983 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 20\' -d \'{"version": "1.0.0"}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test -2025-07-11 17:53:11,463 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,463 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,463 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,463 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_ml/v1/lujing_test' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Create wb_dr_pro_daily_report) -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,463 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.463505 -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,463 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,464 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,464 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.464607 -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,464 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,465 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,465 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.465794 -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,465 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,466 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,466 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,466 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,466 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,466 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.467072 -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,467 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.468262 -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,468 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,469 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,469 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,469 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.469471 -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,469 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.470481 -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,470 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.463505", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.463505", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.464607", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.464607", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.465794", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.465794", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.467072", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.467072", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.468262", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.468262", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.977510", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.977510", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.978653", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.978653", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.979718", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.979718", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.980783", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.980783", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.981767", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.981767", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' status_code: 200 responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.469471", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.469471", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.470481", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.471574 -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,471 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.472663 -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,472 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,473 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.473661 -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,473 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,474 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,474 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.474859 -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,474 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,475 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,475 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.476219 -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,476 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,477 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.477409 -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,477 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,478 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.478509 -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,478 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,478 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,479 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.479566 -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,479 - 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-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,479 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,479 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.470481", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.471574", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.471574", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.472663", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.472663", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.473661", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.473661", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.474859", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.474859", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.476219", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.476219", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.477409", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.477409", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.478509", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.478509", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0007660388946533203 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,480 - 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-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.480753 -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,480 - 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-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,480 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,480 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,480 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006856918334960938 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.481922 -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,481 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,481 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,481 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0007860660552978516 -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,482 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,482 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,483 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,483 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.483139 -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,483 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,484 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] -2025-07-11 17:53:11,484 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,484 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.484551 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,484 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.484551', 'wb_dr_pro_daily_report_id': 'example_string'}]')。 -2025-07-11 17:53:11,484 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,484 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,485 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,485 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.485883 -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,485 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,486 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,486 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,486 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,486 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (List wb_dr_pro_daily_report) -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,486 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,487 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,487 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,487 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,488 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,488 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,489 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,489 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,489 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,489 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,489 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,489 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': [{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.485883', 'wb_dr_pro_daily_report_id': 'example_string'}], 'message': "获取 'wb_dr_pro_daily_report' 列表成功"} -2025-07-11 17:53:11,489 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': [{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.485883', 'wb_dr_pro_daily_report_id': 'example_string'}], 'message': "获取 'wb_dr_pro_daily_report' 列表成功"} -2025-07-11 17:53:11,489 - testcase.TC-SECURITY-002 - INFO - response_data:[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.485883', 'wb_dr_pro_daily_report_id': 'example_string'}] -2025-07-11 17:53:11,490 - testcase.TC-SECURITY-002 - INFO - response_data:{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.485883', 'wb_dr_pro_daily_report_id': 'example_string'} -2025-07-11 17:53:11,490 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,490 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.479566", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.479566", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.480753", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 204\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.480753", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.481922", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 210\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.481922", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.483139", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.483139", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.982732", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.982732", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.984770 +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,984 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.985762 +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,985 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,986 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.986728 +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,986 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,987 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:44,987 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.987723 +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,987 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.988633 +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,988 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,989 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.989583 +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,989 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,990 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.990573 +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,990 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,990 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.983732", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.983732", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.984770", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.984770", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.985762", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.985762", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.986728", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.986728", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.987723", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.987723", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.988633", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.988633", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.989583", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.989583", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.990573", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,991 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.991641 +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,991 - 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-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,991 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,991 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006771087646484375 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,992 - 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-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.992709 +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,992 - 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-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:44,992 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,992 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,992 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006499290466308594 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.993812 +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,993 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,993 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:44,993 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:44,994 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006861686706542969 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,994 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:44,994 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:44,994 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.994895 +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,994 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,995 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] +2025-07-11 18:57:44,995 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:44,995 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.995899 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,995 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.995899', 'wb_dr_pro_daily_report_id': 'example_string'}]')。 +2025-07-11 18:57:44,995 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,995 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,996 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:44,996 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: create_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: create_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: create_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: create_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:44.996881 +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: create_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,996 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:44,997 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:44,997 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,997 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:44,997 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (List wb_dr_pro_daily_report) +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0'。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,997 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,997 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:44,998 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,998 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,998 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - INFO - API端点: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:44,999 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:44,999 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:44,999 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.990573", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.991641", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.991641", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.992709", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 204\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.992709", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.993812", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 210\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.993812", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.994895", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.994895", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 30\' -d \'{"version": "1.0.0", "act": 0}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.485883", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.485883", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.996881", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.996881", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" +2025-07-11 18:57:45,000 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': [{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.996881', 'wb_dr_pro_daily_report_id': 'example_string'}], 'message': "获取 'wb_dr_pro_daily_report' 列表成功"} +2025-07-11 18:57:45,000 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': [{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.996881', 'wb_dr_pro_daily_report_id': 'example_string'}], 'message': "获取 'wb_dr_pro_daily_report' 列表成功"} +2025-07-11 18:57:45,000 - testcase.TC-SECURITY-002 - INFO - response_data:[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.996881', 'wb_dr_pro_daily_report_id': 'example_string'}] +2025-07-11 18:57:45,000 - testcase.TC-SECURITY-002 - INFO - response_data:{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:44.996881', 'wb_dr_pro_daily_report_id': 'example_string'} +2025-07-11 18:57:45,000 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,000 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,000 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,001 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,002 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}}}}}}}} +2025-07-11 18:57:45,002 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:45,002 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-001' 执行失败。 +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,002 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,003 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,004 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,005 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,005 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,006 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:45,006 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,006 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-003' 执行失败。 +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 失败 +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,007 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,008 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,008 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" -2025-07-11 17:53:11,490 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,491 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Successful Operation', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'array', 'items': {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}}}}}}}} -2025-07-11 17:53:11,491 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,491 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-001' 执行失败。 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,491 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,492 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,493 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-004' 执行失败。 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 失败 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,494 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,495 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,495 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,496 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,496 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,496 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-RESTful-003' 执行失败。 -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 失败 -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,497 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,498 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,498 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,499 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,499 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,499 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。 DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 @@ -3758,375 +3759,393 @@ DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-re DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,009 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。 +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,009 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,009 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:45,010 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,010 - 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-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,010 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,010 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0007340908050537109 +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,011 - 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-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - No suitable request body schema found +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No request body schema found for endpoint. Skipping type mismatch target search. +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Conclusion: No target field identified for request body type mismatch test. +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No target field or original type identified for body type mismatch. Skipping body modification. +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,011 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,011 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Skipped type mismatch (body) validation: No target field was identified. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006318092346191406 +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-BODY' 执行成功。 +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - No suitable request body schema found +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,012 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,012 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,013 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006000995635986328 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,013 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:45,013 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:45,013 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,013 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,014 - testcase.TC-ERROR-4003-BODY - INFO - 此端点规范中未定义或找到请求体 schema(通过基类方法)。 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,014 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,014 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:45,014 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。Target param to remove: None +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,014 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +2025-07-11 18:57:45,015 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,015 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,015 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,015 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 测试完成,最终状态: 通过 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id} (Read wb_dr_pro_daily_report) +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('id') 的 schema... +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,015 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 初始化。 +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'read_wb_dr_pro_daily_report': {'id': 'param_id'} +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'read_wb_dr_pro_daily_report': None +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'read_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'read_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'id': 'param_id'} +2025-07-11 18:57:45,015 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id +2025-07-11 18:57:45,016 - testcase.TC-STATUS-001 - WARNING - 状态码验证失败: 期望 200, 实际 404 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - ERROR - 关键的前置测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 失败。后续测试将被跳过。原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-STATUS-001' 执行失败。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-HEADER-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-HEADER-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-002' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-LLM-COMPLIANCE-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-LLM-COMPLIANCE-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-PAGINATION-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-PAGINATION-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-004' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-004' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-002' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-CORE-SCHEMA-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-CORE-SCHEMA-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-003' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-003' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-URL-VERSION-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-URL-VERSION-001' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-002' 被跳过。 +2025-07-11 18:57:45,016 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-001' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-QUERY' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-BODY' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4002' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4006' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4006' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-BODY' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-QUERY' 被跳过。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 跳过 +2025-07-11 18:57:45,017 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,017 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,017 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 测试完成,最终状态: 失败 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Update wb_dr_pro_daily_report) +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,017 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.017555 +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,017 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,018 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,018 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.018628 +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,018 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - INFO - API端点: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,019 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,019 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.019752 +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,019 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,500 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,500 - 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-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,500 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,500 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006802082061767578 -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,501 - 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-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - No suitable request body schema found -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No request body schema found for endpoint. Skipping type mismatch target search. -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Conclusion: No target field identified for request body type mismatch test. -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] No target field or original type identified for body type mismatch. Skipping body modification. -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,501 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,501 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Skipped type mismatch (body) validation: No target field was identified. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006651878356933594 -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-BODY' 执行成功。 -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - No suitable request body schema found -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,502 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,502 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,503 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006749629974365234 -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,503 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,503 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,503 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,503 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,505 - testcase.TC-ERROR-4003-BODY - INFO - 此端点规范中未定义或找到请求体 schema(通过基类方法)。 -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,505 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,506 - testcase.TC-ERROR-4003-BODY - INFO - 由于未识别到可移除的必填请求体字段,跳过此测试用例的验证。 -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-BODY' 执行成功。 -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,506 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,506 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 初始化。Target param to remove: None -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'list_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'list_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,506 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 -2025-07-11 17:53:11,507 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,507 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,507 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,507 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id} (Read wb_dr_pro_daily_report) -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'。 -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 parameters[0] ('id') 的 schema... -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,507 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,508 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 初始化。 -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial path param for 'read_wb_dr_pro_daily_report': {'id': 'param_id'} -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'read_wb_dr_pro_daily_report': None -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'read_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - No request body schema found or applicable for 'read_wb_dr_pro_daily_report' with Content-Type 'application/json'. Initial body is None. -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {'id': 'param_id'} -2025-07-11 17:53:11,508 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id -2025-07-11 17:53:11,509 - testcase.TC-STATUS-001 - WARNING - 状态码验证失败: 期望 200, 实际 404 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - ERROR - 关键的前置测试用例 'TC-STATUS-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 失败。后续测试将被跳过。原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-STATUS-001' 执行失败。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-HEADER-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-HEADER-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-002' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-LLM-COMPLIANCE-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-LLM-COMPLIANCE-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-PAGINATION-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-PAGINATION-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-004' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-004' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-002' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-CORE-SCHEMA-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-CORE-SCHEMA-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-RESTful-003' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-RESTful-003' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-DMS-URL-VERSION-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-DMS-URL-VERSION-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-CORE-FUNC-002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-CORE-FUNC-002' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-SECURITY-001' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-SECURITY-001' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-QUERY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-QUERY' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4001-BODY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4001-BODY' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4002' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4002' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4006' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4006' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-BODY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-BODY' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - WARNING - 由于关键的前置测试用例失败,跳过测试用例 'TC-ERROR-4003-QUERY' for 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}'. 原因: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG -  ⏭️ 测试用例 'TC-ERROR-4003-QUERY' 被跳过。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 跳过 -2025-07-11 17:53:11,509 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,509 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,509 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}' 测试完成,最终状态: 失败 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Update wb_dr_pro_daily_report) -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,509 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,509 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.510034 -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,510 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,511 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,511 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.511494 -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,511 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - INFO - API端点: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,512 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,512 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,512 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.513055 -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,513 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" @@ -4142,735 +4161,713 @@ DEBUG: curlify generated command (raw): curl -X POST -H 'User-Agent: python-requ DEBUG: curlify generated command (repr): "curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/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' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id 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' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id" -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.510034", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.510034", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.511494", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.511494", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.513055", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,514 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,514 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} -2025-07-11 17:53:11,514 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,514 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.514395 -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,514 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.515490 -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,515 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,516 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,516 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,516 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.516632 -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,516 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.517851 -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,517 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.519352 -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,519 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.520539 -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,520 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,521 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.521621 -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,521 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.513055", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.514395", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.514395", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.515490", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.515490", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.017555", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.017555", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.018628", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.018628", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,020 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:45,020 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 0, 'data': True, 'message': '创建成功'} +2025-07-11 18:57:45,020 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,020 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.020868 +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,020 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.021872 +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,021 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,022 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:45,022 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +2025-07-11 18:57:45,022 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.022916 +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,022 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.023841 +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,023 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.025258 +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,025 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.026325 +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,026 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,027 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.027303 +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,027 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.019752", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.019752", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.020868", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.020868", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.021872", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.021872", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' status_code: 200 responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.516632", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.516632", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.517851", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.517851", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.519352", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.519352", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.520539", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.520539", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.521621", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,522 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,522 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.522712 -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,522 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.523702 -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,523 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,524 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.524881 -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,524 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,525 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,526 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.526135 -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,526 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,526 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,527 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.527721 -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,527 - 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-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,527 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,527 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0008268356323242188 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,528 - 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-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,528 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.528974 -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,528 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,529 - 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-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,529 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,529 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0007300376892089844 -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,529 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.530185 -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,530 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,530 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,530 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.521621", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.522712", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.522712", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.523702", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.523702", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.524881", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.524881", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.526135", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.526135", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.527721", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.527721", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.528974", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 204\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.528974", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.530185", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,531 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0008039474487304688 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,531 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,531 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,531 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.531448 -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,531 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,532 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] -2025-07-11 17:53:11,532 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,532 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.532704 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,532 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T17:53:11.532704', 'wb_dr_pro_daily_report_id': 'example_string'}]')。 -2025-07-11 17:53:11,532 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,532 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,533 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,533 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T17:53:11.533933 -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,533 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,534 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,534 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,534 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,534 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Delete wb_dr_pro_daily_report) -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,534 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,535 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,535 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,536 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,536 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,536 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - INFO - API端点: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None -2025-07-11 17:53:11,538 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,538 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'location', 'position', 'coord'} -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,538 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,539 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 404, 'data': False, 'message': '未找到要删除的资源'} -2025-07-11 17:53:11,539 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 404, 'data': False, 'message': '未找到要删除的资源'} -2025-07-11 17:53:11,539 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,539 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,539 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,540 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,541 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,541 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] -2025-07-11 17:53:11,541 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,541 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 210\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T17:53:11.530185", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.531448", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.531448", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.022916", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.022916", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.023841", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.023841", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.025258", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.025258", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.026325", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.026325", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,028 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:45,028 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.028365 +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,028 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.029281 +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,029 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,030 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.030259 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,030 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,031 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.031193 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,031 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:45,031 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,031 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.032208 +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,032 - 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-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,032 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,032 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006859302520751953 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,033 - 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-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.033300 +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,033 - 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-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:45,033 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,033 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,033 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006568431854248047 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - 在路径 data.0.record_count 找到范围受限字段。 +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Found ranged numeric field in BODY at path: data.0.record_count +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Target found in 'body' at path 'data.0.record_count'. Type: integer, Min: 0, Max: 10000, Desc: '' +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Setting out-of-range value to 10001 (max is 10000). +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.034394 +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,034 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 data.0.record_count (键 'record_count') 处设置值为 '10001' +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Successfully injected out-of-range value into parameters. +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,034 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,034 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.027303", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.027303", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.028365", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.028365", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.029281", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.029281", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.030259", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.030259", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.031193", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.031193", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.032208", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.032208", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.033300", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 204\' -d \'{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.033300", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,035 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006802082061767578 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4002' 执行失败。 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 失败 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,035 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:45,035 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:45,035 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.035468 +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,035 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,036 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'act', 'data'] +2025-07-11 18:57:45,036 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:45,036 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.036432 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,036 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string', 'record_count': 0, 'status': 'active', 'update_date': '2025-07-11T18:57:45.036432', 'wb_dr_pro_daily_report_id': 'example_string'}]')。 +2025-07-11 18:57:45,036 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,036 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,037 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:45,037 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'update_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: update_wb_dr_pro_daily_report_body.act): 0 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: update_wb_dr_pro_daily_report_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}, 'wb_dr_pro_daily_report_id': {'description': '主键 for wb_dr_pro_daily_report', 'title': '主键', 'type': 'string'}}, 'required': ['wb_dr_pro_daily_report_id', 'status'], 'title': '钻井日报数据', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0]). Properties: ['description', 'record_count', 'status', 'update_date', 'wb_dr_pro_daily_report_id'] +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 number/integer 类型数据 for (context: update_wb_dr_pro_daily_report_body.data[0].record_count): 0 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].status): active +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('date-time') for (context: update_wb_dr_pro_daily_report_body.data[0].update_date): 2025-07-11T18:57:45.037422 +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - [update_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: update_wb_dr_pro_daily_report_body.data[0].wb_dr_pro_daily_report_id): example_string +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'update_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,037 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,038 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,038 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,038 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,038 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report (Delete wb_dr_pro_daily_report) +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-004' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-RESTful-003' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-CORE-FUNC-002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-SECURITY-001' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4002' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4006' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 适用于端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report'。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 发现了 20 个适用的测试用例 (已排序): ['TC-STATUS-001', 'TC-HEADER-001', 'TC-SECURITY-002', 'TC-LLM-COMPLIANCE-001', 'TC-RESTful-001', 'TC-DMS-PAGINATION-001', 'TC-RESTful-004', 'TC-RESTful-002', 'TC-DMS-CORE-SCHEMA-001', 'TC-CORE-FUNC-001', 'TC-RESTful-003', 'TC-DMS-URL-VERSION-001', 'TC-CORE-FUNC-002', 'TC-SECURITY-001', 'TC-ERROR-4001-QUERY', 'TC-ERROR-4001-BODY', 'TC-ERROR-4002', 'TC-ERROR-4006', 'TC-ERROR-4003-BODY', 'TC-ERROR-4003-QUERY'] +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: StatusCode200Check 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,038 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-STATUS-001' (基本状态码 200 检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,038 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,039 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: RequiredHeadersSchemaCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,039 - RequiredHeadersSchemaCheck - INFO - 测试用例 TC-HEADER-001 (必需请求头Schema验证) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-HEADER-001' (必需请求头Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,039 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - INFO - API端点: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - INFO - 发现的header参数: [] +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Tenant-ID: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Tenant-ID +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - INFO - 检查请求头 X-Data-Domain: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 X-Data-Domain +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - INFO - 检查请求头 Authorization: 找到=False, 必需=False, 名称=None +2025-07-11 18:57:45,040 - RequiredHeadersSchemaCheck - WARNING - 规范验证失败: 缺少必需的请求头 Authorization +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: EncryptedFieldsCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,040 - testcase.TC-SECURITY-002 - INFO - 测试用例 TC-SECURITY-002 (敏感字段加密检查) 已初始化,将检查以下敏感字段是否加密: {'coord', 'position', 'location'} +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-002' (敏感字段加密检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,040 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,041 - testcase.TC-SECURITY-002 - INFO - response_context.json_content: {'code': 404, 'data': False, 'message': '未找到要删除的资源'} +2025-07-11 18:57:45,041 - testcase.TC-SECURITY-002 - INFO - response_data:{'code': 404, 'data': False, 'message': '未找到要删除的资源'} +2025-07-11 18:57:45,041 - testcase.TC-SECURITY-002 - INFO - 未在响应中找到需要检查的敏感字段。 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-SECURITY-002' 执行成功。 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-LLM-COMPLIANCE-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: LLMComplianceCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,041 - testcase.TC-LLM-COMPLIANCE-001 - INFO - 已加载合规性标准: [] +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-LLM-COMPLIANCE-001' (LLM合规性综合检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,041 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-LLM-COMPLIANCE-001' 执行成功。 +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-LLM-COMPLIANCE-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: CoreNamingStructureTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-001' (核心命名与结构规范检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,042 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,043 - testcase.TC-RESTful-001 - INFO - responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} +2025-07-11 18:57:45,043 - testcase.TC-RESTful-001 - INFO - 检查响应定义: status_code=200, 可用响应定义=['200'] +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:45.034394", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 210\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:45.034394", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.035468", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.035468", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 30\' -d \'{"version": "1.0.0", "act": 0}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' -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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.533933", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T17:53:11.533933", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.037422", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +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 \'Content-Type: application/json\' -H \'Content-Length: 206\' -d \'{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.037422", "wb_dr_pro_daily_report_id": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report @@ -4882,215 +4879,237 @@ DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' status_code: 200 +2025-07-11 18:57:45,043 - testcase.TC-RESTful-001 - INFO - 找到精确状态码 200 的响应定义 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-001' 执行成功。 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-PAGINATION-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: PaginationParamsCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-PAGINATION-001' (分页参数检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,043 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,044 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,045 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,046 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,046 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,047 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 +2025-07-11 18:57:45,047 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,047 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,048 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,049 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,049 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,050 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,050 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,050 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 +2025-07-11 18:57:45,051 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,051 - 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-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,051 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,051 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: responses: {'200': {'description': 'Success', 'content': {'application/json': {'schema': {'type': 'object', 'properties': {'code': {'type': 'integer'}, 'message': {'type': 'string'}, 'data': {'type': 'boolean'}}}}}}} -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-DMS-PAGINATION-001' 执行失败。 -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-PAGINATION-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-004' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourceCollectionPluralCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-004' (资源集合复数命名检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,542 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-004' 执行成功。 -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-004' 执行完毕,状态: 通过 -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResourcePathNounCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-002' (资源路径名词检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,543 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-002' 执行成功。 -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-CORE-SCHEMA-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaFormatCheck 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-CORE-SCHEMA-001' (DMS核心存储服务API响应格式检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,544 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行成功。 -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-CORE-SCHEMA-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: ResponseSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,545 - testcase.TC-CORE-FUNC-001 - INFO - 测试用例 'TC-CORE-FUNC-001' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-001' (返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,545 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,546 - ddms_compliance_suite.utils.schema_provider - DEBUG - 尝试从API规范中为状态码 200 查找Schema。 -2025-07-11 17:53:11,546 - testcase.TC-CORE-FUNC-001 - INFO - 将根据从API规范中获取的schema验证响应体。 -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-001' 执行成功。 -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-RESTful-003' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,546 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TimeFormatCheckTestCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-RESTful-003' (时间字段ISO 8601格式检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-RESTful-003' 执行成功。 -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-RESTful-003' 执行完毕,状态: 通过 -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-DMS-URL-VERSION-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,547 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: URLVersionCheckCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-DMS-URL-VERSION-001' (DMS API URL版本号检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-DMS-URL-VERSION-001' 执行成功。 -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-DMS-URL-VERSION-001' 执行完毕,状态: 通过 -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-CORE-FUNC-002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,548 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: FlexibleSchemaValidationCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,549 - testcase.TC-CORE-FUNC-002 - INFO - 测试用例 'TC-CORE-FUNC-002' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-CORE-FUNC-002' (灵活的返回体JSON Schema验证) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-CORE-FUNC-002' 执行成功。 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-CORE-FUNC-002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-SECURITY-001' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,549 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: HTTPSMandatoryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,550 - testcase.TC-SECURITY-001 - INFO - 测试用例 'TC-SECURITY-001' 已为端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-SECURITY-001' (HTTPS 协议强制性检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,550 - testcase.TC-SECURITY-001 - WARNING - 原始URL 'http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 不是HTTPS。跳过此测试用例的URL修改。 -2025-07-11 17:53:11,550 - testcase.TC-SECURITY-001 - ERROR - 安全漏洞:API允许通过HTTP成功响应 (200)。 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-SECURITY-001' 执行失败。 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-SECURITY-001' 执行完毕,状态: 失败 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-QUERY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,550 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchQueryParamCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Initializing: Looking for a simple type query parameter for type mismatch test. -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - INFO - _find_first_simple_type_parameter: No suitable simple type field found for query parameters. -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] No suitable simple type query parameter found for type mismatch test. -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-QUERY' (查询参数类型不匹配检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,551 - 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-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - TC-ERROR-4001-QUERY is focused on query parameters, generate_request_body will not modify the body. -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,551 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Test case 'TC-ERROR-4001-QUERY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,551 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: validate_request_body, body type: 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report @@ -5110,234 +5129,251 @@ DEBUG: curlify generated command (repr): 'curl -X DELETE -H \'User-Agent: python 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0009348392486572266 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,552 - 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-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,552 - 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-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. -2025-07-11 17:53:11,552 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,552 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,552 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0008347034454345703 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,553 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] -2025-07-11 17:53:11,553 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: -2025-07-11 17:53:11,554 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0007030963897705078 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,554 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... -2025-07-11 17:53:11,554 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. -2025-07-11 17:53:11,554 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,554 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,555 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'data'] -2025-07-11 17:53:11,555 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' -2025-07-11 17:53:11,555 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,555 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string'}]')。 -2025-07-11 17:53:11,555 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,555 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) -2025-07-11 17:53:11,556 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. -2025-07-11 17:53:11,556 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} -2025-07-11 17:53:11,556 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report -2025-07-11 17:53:11,557 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 -2025-07-11 17:53:11,557 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,557 - root - INFO - strictness_level: TestSeverity.CRITICAL -2025-07-11 17:53:11,557 - root - INFO - relevant_failed_tcs: [] -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 -2025-07-11 17:53:11,557 - __main__ - INFO - 开始执行API测试阶段 (Stages),目录: ./custom_stages -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行API测试阶段 (Stages)... -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 发现了 1 个已定义的测试阶段: ['dms_crud_scenario_stage'] -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - WARNING - 未知的解析规范类型: 。将阶段应用于整个规范 (api_group_name=None). -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 将针对 1 个API分组评估测试阶段: [None] -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 处理测试阶段定义: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'dms_crud_scenario_stage' 的上下文,针对API分组: 'Global' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - For Global context, selected 10 endpoint objects. -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'dms_crud_scenario_stage' 和分组 'Global' 实例化。API对象数量: 10. 元数据: {'name': 'Global (所有API)', 'description': '适用于规范中的所有API'} -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'dms_crud_scenario_stage' 是否适用于API分组 'Global'... -2025-07-11 17:53:11,557 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'lujing_test' -2025-07-11 17:53:11,557 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'wb_dr_pro_daily_report' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' 适用于API分组 'Global'。开始执行... -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试阶段: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario', API分组='Global' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 before_stage 钩子。初始上下文: {} -2025-07-11 17:53:11,557 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Setting up before_stage for scenario: ['create', 'list', 'read', 'update', 'delete'] -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 开始执行. -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 before_step 钩子. 上下文: {'pk_name': 'description', 'pk_value': '7cca7504-2eaa-44e7-aad9-9e9c6b1ce671', 'current_payload': {'description': 'test-entry-from-scenario'}, 'update_payload': {'description': 'updated-test-entry-from-scenario'}, 'scenario_endpoints': {'create': , 'list': , 'read': , 'update': , 'delete': }} -2025-07-11 17:53:11,557 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing before_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 查找端点定义. Key='CREATE', Group='None' -2025-07-11 17:53:11,557 - ddms_compliance_suite.test_orchestrator - ERROR - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 步骤执行期间发生意外错误: name 'BaseEndpoint' is not defined -Traceback (most recent call last): - File "/Users/zpc01/workspace/zzlh/compliance/ddms_compliance_suite/test_orchestrator.py", line 2181, in execute_single_stage - if isinstance(api_op_spec, BaseEndpoint): - ^^^^^^^^^^^^ -NameError: name 'BaseEndpoint' is not defined. Did you mean: 'YAPIEndpoint'? -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 after_step 钩子. -2025-07-11 17:53:11,559 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing after_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行完毕. 状态: 执行错误, 耗时: 0.00s -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 状态为 执行错误 且 continue_on_failure=False. 中止测试阶段 'dms_crud_scenario_stage'. -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 after_stage 钩子. 当前阶段结果状态: 执行错误 -2025-07-11 17:53:11,559 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Finished scenario 1/2 for this group. -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' (API分组: 'Global') 执行完毕. 最终状态: 失败, 耗时: 0.00s -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 1 (stage_definition x api_group) combinations. -2025-07-11 17:53:11,559 - __main__ - INFO - API测试阶段 (Stages) 执行完毕。 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - -------------------- API Test Summary -------------------- -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Start Time: 2025-07-11T17:53:11.349827 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - End Time: 2025-07-11T17:53:11.559561 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Duration: 0.21 seconds -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - --- Endpoints --- -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Endpoints Defined: 10 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Endpoints Tested: 10 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 8 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 2 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Partial Success: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 80.00% -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - --- Test Cases --- -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Applicable: 200 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Executed: 200 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 112 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 50 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Skipped (within endpoints): 38 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 56.00% -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - --- Stages --- -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Defined: 1 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Executed: 2 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 2 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0 -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 0.00% -2025-07-11 17:53:11,559 - ddms_compliance_suite.test_orchestrator - INFO - -------------------------------------------------------- -2025-07-11 17:53:11,562 - __main__ - INFO - 测试结果已保存为JSON: test_reports/2025-07-11_17-53-11/summary.json -2025-07-11 17:53:11,562 - __main__ - INFO - 开始生成PDF报告: test_reports/2025-07-11_17-53-11/report_cn.pdf -2025-07-11 17:53:11,704 - __main__ - INFO - PDF报告已成功生成: test_reports/2025-07-11_17-53-11/report_cn.pdf -2025-07-11 17:53:11,708 - __main__ - INFO - API调用详情已保存为 Markdown: test_reports/2025-07-11_17-53-11/api_call_details.md -2025-07-11 17:53:11,708 - __main__ - INFO - 部分测试失败或出错,请检查报告。 +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-QUERY - INFO - [TC-ERROR-4001-QUERY] Skipped type mismatch (query) validation: No target query parameter was identified. +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-QUERY - DEBUG - Hook: check_performance, elapsed: 0.0006961822509765625 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4001-QUERY' 执行成功。 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4001-BODY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: TypeMismatchBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,052 - 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-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - _find_simple_type_field_in_schema: Searching for simple type field in 'request body' schema... +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - INFO - Found simple type field: Path=version, Type=string +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - INFO - _find_simple_type_field_in_schema: Found simple type field in 'request body': Path=version, Type=string +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Target field for type mismatch (body): version, Original Type: string +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4001-BODY' (请求体字段类型不匹配检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - TC-ERROR-4001-BODY is focused on request body, generate_query_params will not modify query parameters. +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: generate_headers, current keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,052 - 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-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - INFO - [TC-ERROR-4001-BODY] Generated mismatched value '12345' for original type 'string' at path 'version'. +2025-07-11 18:57:45,052 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 在路径 version (键 'version') 处设置值为 '12345' +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - [TC-ERROR-4001-BODY] Successfully set mismatched value at path using util_set_value_at_path. +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,052 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Test case 'TC-ERROR-4001-BODY' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,052 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4001-BODY - DEBUG - Hook: check_performance, elapsed: 0.0006220340728759766 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4001-BODY' 执行失败。 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4001-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4002' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: NumberOutOfRangeCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' initialized for endpoint: DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] Searching for a ranged numeric field... +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Found request body schema in content type: application/json +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in request body. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in query parameters. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in path parameters. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - [TC-ERROR-4002] Checking for ranged numeric field in header parameters. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No ranged numeric field found in any location. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - INFO - [TC-ERROR-4002] No suitable ranged numeric field found for this endpoint. +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4002' (数值参数越界检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,053 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Hook: modify_request_url, original URL: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Test case 'TC-ERROR-4002' did not modify the URL via modify_request_url hook. +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_url, url: http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_headers, header keys: ['Content-Type', 'Accept'] +2025-07-11 18:57:45,053 - testcase.TC-ERROR-4002 - DEBUG - Hook: validate_request_body, body type: +2025-07-11 18:57:45,054 - testcase.TC-ERROR-4002 - DEBUG - Hook: check_performance, elapsed: 0.0006330013275146484 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4002' 执行成功。 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4002' 执行完毕,状态: 通过 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4006' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: InvalidEnumValueCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,054 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] Searching for a field with enum constraints... +2025-07-11 18:57:45,054 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No field with enum constraints found in any location. +2025-07-11 18:57:45,054 - testcase.TC-ERROR-4006 - INFO - [TC-ERROR-4006] No suitable enum field found for this endpoint. +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4006' (非法枚举值检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,054 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4006' 执行成功。 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4006' 执行完毕,状态: 通过 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-BODY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldBodyCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,055 - ddms_compliance_suite.utils.schema_utils - DEBUG - [Util] 递归查找路径: [], 当前层级必填字段: ['data'], 属性: ['version', 'data'] +2025-07-11 18:57:45,055 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 策略1: 在路径 root 找到可直接移除的必填字段: 'data' +2025-07-11 18:57:45,055 - testcase.TC-ERROR-4003-BODY - INFO - Found a removable field path in 'request body' schema: 'data' +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-BODY' (缺失必填请求体字段检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,055 - ddms_compliance_suite.utils.schema_utils - INFO - [Util] 从路径 'data' 成功移除字段 'data' (原值: '[{'description': 'example_string'}]')。 +2025-07-11 18:57:45,055 - testcase.TC-ERROR-4003-BODY - INFO - 为进行必填字段缺失测试,已通过工具方法从请求体中移除字段路径 'data'。 +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,055 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-ERROR-4003-BODY' 执行失败。 +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-BODY' 执行完毕,状态: 失败 +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-ERROR-4003-QUERY' for 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Successfully converted/retrieved global_api_spec (type: ) to dict using .spec attribute. +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - global_spec_dict keys for $ref resolution: ['dms_api_list'] +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 开始为 endpoint_spec_dict (来自 ) 中的 schemas 进行 $ref 解析... +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 requestBody content 'application/json' 的 schema... +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 正在解析 responses '200' content 'application/json' 的 schema... +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - INFO - Endpoint spec (来自 ) 中的 schemas $ref 解析完成。 +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备实例化测试用例类: MissingRequiredFieldQueryCase 使用 endpoint_spec (keys: ['method', 'path', 'title', 'summary', 'description', 'operationId', 'tags', 'parameters', 'requestBody', 'responses', '_source_format', '_dms_raw_record', '_test_mode', '_global_api_spec_for_resolution']) 和 global_api_spec (keys: ['dms_api_list']) +2025-07-11 18:57:45,056 - testcase.TC-ERROR-4003-QUERY - INFO - No required 'query' parameter found in endpoint_spec. +2025-07-11 18:57:45,056 - testcase.TC-ERROR-4003-QUERY - INFO - 测试用例 TC-ERROR-4003-QUERY (缺失必填查询参数检查) 已针对端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 初始化。Target param to remove: None +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试用例 'TC-ERROR-4003-QUERY' (缺失必填查询参数检查) for endpoint 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'delete_wb_dr_pro_daily_report': application/json +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body). Properties: ['version', 'data'] +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 使用 schema 中的 'example' 值 for (context: delete_wb_dr_pro_daily_report_body.version): 1.0.0 +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 array 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data). Items schema: {'type': 'object', 'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}}, 'required': ['description']}, minItems: 1 +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 object 类型数据 for (context: delete_wb_dr_pro_daily_report_body.data[0]). Properties: ['description'] +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - [delete_wb_dr_pro_daily_report] 生成 string 类型数据 ('') for (context: delete_wb_dr_pro_daily_report_body.data[0].description): example_string +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'delete_wb_dr_pro_daily_report' (type: ) +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - Path parameters to be substituted: {} +2025-07-11 18:57:45,056 - ddms_compliance_suite.test_orchestrator - DEBUG - URL after path parameter substitution (before TC modify_request_url hook): http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +2025-07-11 18:57:45,057 - testcase.TC-ERROR-4003-QUERY - INFO - 由于未识别到可移除的必填查询参数,跳过此测试用例。 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-ERROR-4003-QUERY' 执行成功。 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-ERROR-4003-QUERY' 执行完毕,状态: 通过 +2025-07-11 18:57:45,057 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,057 - root - INFO - strictness_level: TestSeverity.CRITICAL +2025-07-11 18:57:45,057 - root - INFO - relevant_failed_tcs: [] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report' 测试完成,最终状态: 通过 +2025-07-11 18:57:45,057 - __main__ - INFO - 开始执行API测试阶段 (Stages),目录: ./custom_stages +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行API测试阶段 (Stages)... +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 发现了 1 个已定义的测试阶段: ['dms_crud_scenario_stage'] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - WARNING - 未知的解析规范类型: 。将阶段应用于整个规范 (api_group_name=None). +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 将针对 1 个API分组评估测试阶段: [None] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 处理测试阶段定义: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备阶段 'dms_crud_scenario_stage' 的上下文,针对API分组: 'Global' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - For Global context, selected 10 endpoint objects. +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - 为阶段 'dms_crud_scenario_stage' 和分组 'Global' 实例化。API对象数量: 10. 元数据: {'name': 'Global (所有API)', 'description': '适用于规范中的所有API'} +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - 检查阶段 'dms_crud_scenario_stage' 是否适用于API分组 'Global'... +2025-07-11 18:57:45,057 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'lujing_test' +2025-07-11 18:57:45,057 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Found complete CRUD scenario for DMS resource: 'wb_dr_pro_daily_report' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' 适用于API分组 'Global'。开始执行... +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - 开始执行测试阶段: ID='dms_crud_scenario_stage', Name='DMS Full CRUD Scenario', API分组='Global' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 before_stage 钩子。初始上下文: {} +2025-07-11 18:57:45,057 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Setting up before_stage for scenario: ['create', 'list', 'read', 'update', 'delete'] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 开始执行. +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 before_step 钩子. 上下文: {'pk_name': 'description', 'pk_value': 'b54b5f8c-01ac-49c2-a846-2bdb8454b087', 'current_payload': {'description': 'test-entry-from-scenario'}, 'update_payload': {'description': 'updated-test-entry-from-scenario'}, 'scenario_endpoints': {'create': , 'list': , 'read': , 'update': , 'delete': }} +2025-07-11 18:57:45,057 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing before_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 查找端点定义. Key='CREATE', Group='None' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 已解析端点 'POST /api/dms/wb_ml/v1/lujing_test'. 准备请求数据. +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Content-Type for 'create_lujing_test': application/json +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial Accept header for 'create_lujing_test': application/json +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body). Properties: ['version', 'act', 'data'] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.version): 1.0.0 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 使用 schema 中的 'example' 值 for (context: create_lujing_test_body.act): 0 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 array 类型数据 for (context: create_lujing_test_body.data). Items schema: {'properties': {'description': {'description': '一个简单的描述字段', 'title': '描述', 'type': 'string'}, 'lujing_test_id': {'description': '主键 for lujing_test', 'title': '主键', 'type': 'string'}, 'record_count': {'maximum': 10000, 'minimum': 0, 'title': '记录数', 'type': 'integer'}, 'status': {'enum': ['active', 'inactive', 'archived'], 'title': '状态', 'type': 'string'}, 'update_date': {'format': 'date-time', 'title': '更新日期', 'type': 'string'}}, 'required': ['lujing_test_id', 'status'], 'title': '测试', 'type': 'object'}, minItems: 1 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 object 类型数据 for (context: create_lujing_test_body.data[0]). Properties: ['description', 'lujing_test_id', 'record_count', 'status', 'update_date'] +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].description): example_string +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].lujing_test_id): example_string +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 number/integer 类型数据 for (context: create_lujing_test_body.data[0].record_count): 0 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('') for (context: create_lujing_test_body.data[0].status): active +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [create_lujing_test] 生成 string 类型数据 ('date-time') for (context: create_lujing_test_body.data[0].update_date): 2025-07-11T18:57:45.057534 +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Initial request body generated for 'create_lujing_test' (type: ) +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 应用请求覆盖: {'body': {'data': ['{{stage_context.current_payload}}']}} +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - DEBUG - [阶段步骤 'Step 1: Create Resource'] 解析上下文路径: 'current_payload' 来自模板 '{{stage_context.current_payload}}' +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - [测试阶段步骤 'Step 1: Create Resource'] 从上下文解析到值 '{'description': 'test-entry-from-scenario'}...' (路径: 'current_payload') +2025-07-11 18:57:45,057 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 发送API请求: POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 收到响应. Status: 400. 验证中... +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 预期状态码为 [200, 201], 实际为 400. +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行断言 'validate_response_is_true' +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 断言 'validate_response_is_true' 失败: Expected response data to be true, but it was 'None'. +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 提取输出到上下文. Map: {} +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - DEBUG - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 调用 after_step 钩子. +2025-07-11 18:57:45,058 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - DEBUG - Executing after_step for step 'Step 1: Create Resource' in stage 'dms_crud_scenario_stage' +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 执行完毕. 状态: 失败, 耗时: 0.00s +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - WARNING - Stage 'dms_crud_scenario_stage', Step 'Step 1: Create Resource': 状态为 失败 且 continue_on_failure=False. 中止测试阶段 'dms_crud_scenario_stage'. +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - DEBUG - 调用 stage 'dms_crud_scenario_stage' 的 after_stage 钩子. 当前阶段结果状态: 失败 +2025-07-11 18:57:45,058 - ddms_compliance_suite.stage_framework.DmsCrudScenarioStage - INFO - Finished scenario 1/2 for this group. +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - 测试阶段 'dms_crud_scenario_stage' (API分组: 'Global') 执行完毕. 最终状态: 失败, 耗时: 0.00s +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - API Test Stage execution processed. Considered 1 (stage_definition x api_group) combinations. +2025-07-11 18:57:45,058 - __main__ - INFO - API测试阶段 (Stages) 执行完毕。 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - -------------------- API Test Summary -------------------- +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Start Time: 2025-07-11T18:57:44.878856 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - End Time: 2025-07-11T18:57:45.058583 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Duration: 0.18 seconds +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - --- Endpoints --- +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Endpoints Defined: 10 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Endpoints Tested: 10 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 8 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 2 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Partial Success: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 80.00% +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - --- Test Cases --- +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Applicable: 200 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Test Cases Executed: 200 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 112 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 50 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Skipped (within endpoints): 38 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 56.00% +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - --- Stages --- +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Defined: 1 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Total Stages Executed: 2 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Passed: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Failed: 2 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Error: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Skipped: 0 +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - Success Rate: 0.00% +2025-07-11 18:57:45,058 - ddms_compliance_suite.test_orchestrator - INFO - -------------------------------------------------------- +2025-07-11 18:57:45,062 - __main__ - INFO - 测试结果已保存为JSON: test_reports/2025-07-11_18-57-44/summary.json +2025-07-11 18:57:45,062 - __main__ - INFO - 开始生成PDF报告: test_reports/2025-07-11_18-57-44/report_cn.pdf +2025-07-11 18:57:45,197 - __main__ - INFO - PDF报告已成功生成: test_reports/2025-07-11_18-57-44/report_cn.pdf +2025-07-11 18:57:45,201 - __main__ - INFO - API调用详情已保存为 Markdown: test_reports/2025-07-11_18-57-44/api_call_details.md +2025-07-11 18:57:45,201 - __main__ - INFO - 部分测试失败或出错,请检查报告。 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 63' -d '{"version": 12345, "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 63\' -d \'{"version": 12345, "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' @@ -5349,3 +5385,5 @@ DEBUG: curlify generated command (raw): curl -X DELETE -H 'User-Agent: python-re 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 \'Content-Type: application/json\' -H \'Content-Length: 20\' -d \'{"version": "1.0.0"}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report 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 \'Content-Type: application/json\' -H \'Content-Length: 65\' -d \'{"version": "1.0.0", "data": [{"description": "example_string"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report' +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 'Content-Type: application/json' -H 'Content-Length: 55' -d '{"data": [{"description": "test-entry-from-scenario"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +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 \'Content-Type: application/json\' -H \'Content-Length: 55\' -d \'{"data": [{"description": "test-entry-from-scenario"}]}\' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test' diff --git a/test_reports/2025-07-11_18-01-51/api_call_details.md b/test_reports/2025-07-11_18-01-51/api_call_details.md new file mode 100644 index 0000000..59197d9 --- /dev/null +++ b/test_reports/2025-07-11_18-01-51/api_call_details.md @@ -0,0 +1,8140 @@ +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.203437"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.203437" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0009s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.206751"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.206751" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.208115"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.208115" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.209605"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.209605" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.210708"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.210708" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.211952"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.211952" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.213145"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.213145" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.214290"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.214290" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.215306"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.215306" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.216345"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.216345" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.219172"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.219172" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.220335"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.220335" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.221488"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.221488" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.222530"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.222530" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.223593"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.223593" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.224686"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.224686" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:01:51.226063"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:01:51.226063" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.227693"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.227693" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.229797"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0010s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0007s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0007s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0007s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.229797" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `GET http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id` +**cURL Command:** +```sh +curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id +``` +### Request Details +- **Method:** `GET` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id` +- **Headers:** +```json +{ + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `404` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "91", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "message": "资源 'lujing_test' with ID 'param_id' 未找到." +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.252633"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.252633" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.253839"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.253839" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.254906"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.254906" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.255925"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.255925" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.256775"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.256775" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.257699"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.257699" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.258764"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.258764" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.259719"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.259719" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.260710"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.260710" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.261660"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.261660" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.262634"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.262634" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.263722"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.263722" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.264737"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.264737" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.265823"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.265823" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.266836"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.266836" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.267996"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.267996" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:01:51.269211"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:01:51.269211" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.270282"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.270282" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.272228"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.272228" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 63' -d '{"version": 12345, "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 20' -d '{"version": "1.0.0"}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0" +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [{pk: value}, ...]}" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.291384", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.291384", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.292297", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.292297", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.293321", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.293321", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.294296", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.294296", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.295160", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.295160", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.296078", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.296078", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.296967", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.296967", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.297843", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.297843", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.298737", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.298737", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.299660", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.299660", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.300637", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.300637", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.301558", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.301558", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.302491", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.302491", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.303362", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.303362", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.304351", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.304351", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.305354", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.305354", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:01:51.306412", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:01:51.306412", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.307369", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.307369", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.309333", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0031s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.309333", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `GET http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id` +**cURL Command:** +```sh +curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id +``` +### Request Details +- **Method:** `GET` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id` +- **Headers:** +```json +{ + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `404` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "message": "资源 'wb_dr_pro_daily_report' with ID 'param_id' 未找到." +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.334564", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.334564", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.335719", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.335719", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.336765", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.336765", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.337787", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.337787", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.338722", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.338722", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.339719", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.339719", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.340712", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.340712", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.341658", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.341658", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.342565", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.342565", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.343525", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.343525", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.344532", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.344532", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.345416", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.345416", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.346389", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.346389", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.347307", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.347307", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.348279", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.348279", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.349336", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.349336", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:01:51.350398", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:01:51.350398", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.351442", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.351442", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:01:51.353469", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:01:51.353469", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0011s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 63' -d '{"version": 12345, "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 20' -d '{"version": "1.0.0"}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0" +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [{pk: value}, ...]}" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:01:51 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- \ No newline at end of file diff --git a/test_reports/2025-07-11_18-01-51/report_cn.pdf b/test_reports/2025-07-11_18-01-51/report_cn.pdf new file mode 100644 index 0000000..1a03598 Binary files /dev/null and b/test_reports/2025-07-11_18-01-51/report_cn.pdf differ diff --git a/test_reports/2025-07-11_18-01-51/summary.json b/test_reports/2025-07-11_18-01-51/summary.json new file mode 100644 index 0000000..2cd6948 --- /dev/null +++ b/test_reports/2025-07-11_18-01-51/summary.json @@ -0,0 +1,3373 @@ +{ + "start_time": "2025-07-11T18:01:51.189965", + "end_time": "2025-07-11T18:01:51.375546", + "duration_seconds": "0.19", + "overall_summary": { + "total_endpoints_defined": 10, + "endpoints_tested": 10, + "endpoints_passed": 8, + "endpoints_failed": 2, + "endpoints_error": 0, + "endpoints_skipped": 0, + "endpoints_partial_success": 0, + "endpoint_success_rate": "80.00%", + "total_test_cases_applicable": 200, + "total_test_cases_executed": 200, + "test_cases_passed": 112, + "test_cases_failed": 50, + "test_cases_error": 0, + "test_cases_skipped_in_endpoint": 38, + "test_case_success_rate": "56.00%", + "total_stages_defined": 1, + "total_stages_executed": 2, + "stages_passed": 0, + "stages_failed": 2, + "stages_error": 0, + "stages_skipped": 0, + "stage_success_rate": "0.00%" + }, + "errors": [], + "endpoint_results": [ + { + "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Create lujing_test", + "overall_status": "通过", + "duration_seconds": 0.027555, + "start_time": "2025-07-11T18:01:51.203022", + "end_time": "2025-07-11T18:01:51.230577", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0032178749970626086, + "timestamp": "2025-07-11T18:01:51.206414", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.001403832997311838, + "timestamp": "2025-07-11T18:01:51.207862", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0011797500046668574, + "timestamp": "2025-07-11T18:01:51.209077", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0013407500082394108, + "timestamp": "2025-07-11T18:01:51.210452", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.001211082999361679, + "timestamp": "2025-07-11T18:01:51.211706", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0010931659926427528, + "timestamp": "2025-07-11T18:01:51.212836", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 的最后一个路径分段 'lujing_test' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0011302079947199672, + "timestamp": "2025-07-11T18:01:51.214035", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "segment": "lujing_test" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0009812920034164563, + "timestamp": "2025-07-11T18:01:51.215060", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009785000002011657, + "timestamp": "2025-07-11T18:01:51.216080", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0027952080126851797, + "timestamp": "2025-07-11T18:01:51.218917", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0011146670003654435, + "timestamp": "2025-07-11T18:01:51.220077", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.001100459005101584, + "timestamp": "2025-07-11T18:01:51.221221", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0009897919953800738, + "timestamp": "2025-07-11T18:01:51.222261", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0010139589867321774, + "timestamp": "2025-07-11T18:01:51.223323", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010436669981572777, + "timestamp": "2025-07-11T18:01:51.224402", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010904999944614246, + "timestamp": "2025-07-11T18:01:51.225527", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0014423750108107924, + "timestamp": "2025-07-11T18:01:51.227004", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0014260000025387853, + "timestamp": "2025-07-11T18:01:51.228466", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0010238329996354878, + "timestamp": "2025-07-11T18:01:51.229531", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.000975666000158526, + "timestamp": "2025-07-11T18:01:51.230551", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0", + "endpoint_name": "List lujing_test", + "overall_status": "通过", + "duration_seconds": 0.019893, + "start_time": "2025-07-11T18:01:51.230650", + "end_time": "2025-07-11T18:01:51.250543", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0009309580054832622, + "timestamp": "2025-07-11T18:01:51.231824", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0010596670035738498, + "timestamp": "2025-07-11T18:01:51.232926", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009361249976791441, + "timestamp": "2025-07-11T18:01:51.233894", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.000888082999153994, + "timestamp": "2025-07-11T18:01:51.234813", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", + "duration_seconds": 0.0008430830057477579, + "timestamp": "2025-07-11T18:01:51.235693", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + }, + { + "keys": [ + "code", + "data", + "message" + ] + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0007470409909728914, + "timestamp": "2025-07-11T18:01:51.236470", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0007732920057605952, + "timestamp": "2025-07-11T18:01:51.237280", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "segment": "1.0.0" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。", + "duration_seconds": 0.0007587910076836124, + "timestamp": "2025-07-11T18:01:51.238080", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0007793749973643571, + "timestamp": "2025-07-11T18:01:51.238896", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.000982333003776148, + "timestamp": "2025-07-11T18:01:51.239936", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", + "duration_seconds": 0.0007897500036051497, + "timestamp": "2025-07-11T18:01:51.240764", + "validation_points": [ + { + "field": "data[].update_date" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 包含版本标识: 'v1'", + "duration_seconds": 0.000782916002208367, + "timestamp": "2025-07-11T18:01:51.241584", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0015084999904502183, + "timestamp": "2025-07-11T18:01:51.243146", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0009054160036612302, + "timestamp": "2025-07-11T18:01:51.244093", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.00124020800285507, + "timestamp": "2025-07-11T18:01:51.245367", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0012612080026883632, + "timestamp": "2025-07-11T18:01:51.246661", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0012295410124352202, + "timestamp": "2025-07-11T18:01:51.247924", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008931250049499795, + "timestamp": "2025-07-11T18:01:51.248851", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", + "duration_seconds": 0.0007615829963469878, + "timestamp": "2025-07-11T18:01:51.249652", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0008291250123875216, + "timestamp": "2025-07-11T18:01:51.250513", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", + "endpoint_name": "Read lujing_test", + "overall_status": "失败", + "duration_seconds": 0.001588, + "start_time": "2025-07-11T18:01:51.250626", + "end_time": "2025-07-11T18:01:51.252214", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "失败", + "message": "期望状态码 200,但收到 404。", + "duration_seconds": 0.0009235000034095719, + "timestamp": "2025-07-11T18:01:51.251728", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 404, + "request_url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id", + "response_body_sample": "{\"code\": 404, \"message\": \"资源 'lujing_test' with ID 'param_id' 未找到.\"}" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 9.082999895326793e-06, + "timestamp": "2025-07-11T18:01:51.251776", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.959009963087738e-06, + "timestamp": "2025-07-11T18:01:51.251803", + "validation_points": [] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.5830030255019665e-06, + "timestamp": "2025-07-11T18:01:51.251828", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.208000170066953e-06, + "timestamp": "2025-07-11T18:01:51.251852", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.208000170066953e-06, + "timestamp": "2025-07-11T18:01:51.251876", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.1250105975195765e-06, + "timestamp": "2025-07-11T18:01:51.251899", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.251923", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.9590023485943675e-06, + "timestamp": "2025-07-11T18:01:51.251946", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.250011549331248e-06, + "timestamp": "2025-07-11T18:01:51.251969", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.999995093792677e-06, + "timestamp": "2025-07-11T18:01:51.251992", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.041002390906215e-06, + "timestamp": "2025-07-11T18:01:51.252015", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.041002390906215e-06, + "timestamp": "2025-07-11T18:01:51.252038", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.999995093792677e-06, + "timestamp": "2025-07-11T18:01:51.252061", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.000009645707905e-06, + "timestamp": "2025-07-11T18:01:51.252083", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.875008693896234e-06, + "timestamp": "2025-07-11T18:01:51.252106", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.208000170066953e-06, + "timestamp": "2025-07-11T18:01:51.252129", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.9590023485943675e-06, + "timestamp": "2025-07-11T18:01:51.252152", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.252175", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.291993824765086e-06, + "timestamp": "2025-07-11T18:01:51.252198", + "validation_points": [] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Update lujing_test", + "overall_status": "通过", + "duration_seconds": 0.020668, + "start_time": "2025-07-11T18:01:51.252266", + "end_time": "2025-07-11T18:01:51.272934", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0011774580052588135, + "timestamp": "2025-07-11T18:01:51.253600", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0010462920035934076, + "timestamp": "2025-07-11T18:01:51.254682", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009398330003023148, + "timestamp": "2025-07-11T18:01:51.255650", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0008858749934006482, + "timestamp": "2025-07-11T18:01:51.256564", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0008819579961709678, + "timestamp": "2025-07-11T18:01:51.257481", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0009910419903462753, + "timestamp": "2025-07-11T18:01:51.258503", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "PUT", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.0009516249992884696, + "timestamp": "2025-07-11T18:01:51.259496", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0009412500075995922, + "timestamp": "2025-07-11T18:01:51.260475", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009099589951802045, + "timestamp": "2025-07-11T18:01:51.261428", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009431249927729368, + "timestamp": "2025-07-11T18:01:51.262411", + "validation_points": [ + { + "passed": true, + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0010243340075248852, + "timestamp": "2025-07-11T18:01:51.263468", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.0009774579957593232, + "timestamp": "2025-07-11T18:01:51.264493", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0010409590031486005, + "timestamp": "2025-07-11T18:01:51.265576", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0009514159901300445, + "timestamp": "2025-07-11T18:01:51.266575", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010367500071879476, + "timestamp": "2025-07-11T18:01:51.267645", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0012279160000616685, + "timestamp": "2025-07-11T18:01:51.268910", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010710000060498714, + "timestamp": "2025-07-11T18:01:51.270013", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009615839953767136, + "timestamp": "2025-07-11T18:01:51.271010", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009471660014241934, + "timestamp": "2025-07-11T18:01:51.271995", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0008816670015221462, + "timestamp": "2025-07-11T18:01:51.272913", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Delete lujing_test", + "overall_status": "通过", + "duration_seconds": 0.017974, + "start_time": "2025-07-11T18:01:51.272990", + "end_time": "2025-07-11T18:01:51.290964", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0009028339991346002, + "timestamp": "2025-07-11T18:01:51.274050", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0009804169967537746, + "timestamp": "2025-07-11T18:01:51.275068", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0008671249961480498, + "timestamp": "2025-07-11T18:01:51.275962", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0008644579938845709, + "timestamp": "2025-07-11T18:01:51.276855", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.000923374987905845, + "timestamp": "2025-07-11T18:01:51.277819", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0007976670021889731, + "timestamp": "2025-07-11T18:01:51.278645", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "DELETE", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.0008324580121552572, + "timestamp": "2025-07-11T18:01:51.279520", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0008100830018520355, + "timestamp": "2025-07-11T18:01:51.280368", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.000817624997580424, + "timestamp": "2025-07-11T18:01:51.281225", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0008775419992161915, + "timestamp": "2025-07-11T18:01:51.282145", + "validation_points": [ + { + "passed": true, + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0007901669887360185, + "timestamp": "2025-07-11T18:01:51.282967", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.000799959001597017, + "timestamp": "2025-07-11T18:01:51.283804", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0007744580070720986, + "timestamp": "2025-07-11T18:01:51.284623", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008474580099573359, + "timestamp": "2025-07-11T18:01:51.285506", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0009027920023072511, + "timestamp": "2025-07-11T18:01:51.286440", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", + "duration_seconds": 0.0009559580066706985, + "timestamp": "2025-07-11T18:01:51.287427", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 404, + "response_body": { + "code": 404, + "data": false, + "message": "未找到要删除的资源" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0008888750016922131, + "timestamp": "2025-07-11T18:01:51.288348", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.000847167000756599, + "timestamp": "2025-07-11T18:01:51.289227", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0008547089964849874, + "timestamp": "2025-07-11T18:01:51.290120", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0007836250006221235, + "timestamp": "2025-07-11T18:01:51.290941", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Create wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.019064, + "start_time": "2025-07-11T18:01:51.291019", + "end_time": "2025-07-11T18:01:51.310083", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0009002079896163195, + "timestamp": "2025-07-11T18:01:51.292082", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0009771250042831525, + "timestamp": "2025-07-11T18:01:51.293091", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009049579966813326, + "timestamp": "2025-07-11T18:01:51.294028", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.000879166997037828, + "timestamp": "2025-07-11T18:01:51.294944", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0008975419914349914, + "timestamp": "2025-07-11T18:01:51.295878", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008542919968022034, + "timestamp": "2025-07-11T18:01:51.296762", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 的最后一个路径分段 'wb_dr_pro_daily_report' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0008338329935213551, + "timestamp": "2025-07-11T18:01:51.297631", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "segment": "wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.000843374989926815, + "timestamp": "2025-07-11T18:01:51.298512", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0008620419976068661, + "timestamp": "2025-07-11T18:01:51.299416", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009706249984446913, + "timestamp": "2025-07-11T18:01:51.300427", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0008891249890439212, + "timestamp": "2025-07-11T18:01:51.301348", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.0008472080080537125, + "timestamp": "2025-07-11T18:01:51.302233", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008627909992355853, + "timestamp": "2025-07-11T18:01:51.303134", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008957920072134584, + "timestamp": "2025-07-11T18:01:51.304072", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0009773329948075116, + "timestamp": "2025-07-11T18:01:51.305085", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010160420060856268, + "timestamp": "2025-07-11T18:01:51.306131", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0009561250044498593, + "timestamp": "2025-07-11T18:01:51.307118", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008952080097515136, + "timestamp": "2025-07-11T18:01:51.308045", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009807500027818605, + "timestamp": "2025-07-11T18:01:51.309067", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0009479170112172142, + "timestamp": "2025-07-11T18:01:51.310058", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "endpoint_name": "List wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.022373, + "start_time": "2025-07-11T18:01:51.310141", + "end_time": "2025-07-11T18:01:51.332514", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0008558749977964908, + "timestamp": "2025-07-11T18:01:51.311159", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0008141250000335276, + "timestamp": "2025-07-11T18:01:51.312005", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0007839169993530959, + "timestamp": "2025-07-11T18:01:51.312817", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0008193749963538721, + "timestamp": "2025-07-11T18:01:51.313664", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", + "duration_seconds": 0.0008105419983621687, + "timestamp": "2025-07-11T18:01:51.314521", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + }, + { + "keys": [ + "code", + "data", + "message" + ] + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008809170103631914, + "timestamp": "2025-07-11T18:01:51.315430", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.003489124996121973, + "timestamp": "2025-07-11T18:01:51.318961", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "segment": "1.0.0" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。", + "duration_seconds": 0.001102125010220334, + "timestamp": "2025-07-11T18:01:51.320133", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009908749925671145, + "timestamp": "2025-07-11T18:01:51.321172", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0011700420000124723, + "timestamp": "2025-07-11T18:01:51.322387", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", + "duration_seconds": 0.001084292001905851, + "timestamp": "2025-07-11T18:01:51.323632", + "validation_points": [ + { + "field": "data[].update_date" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 包含版本标识: 'v1'", + "duration_seconds": 0.0009572920098435134, + "timestamp": "2025-07-11T18:01:51.324634", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0010163749975617975, + "timestamp": "2025-07-11T18:01:51.325694", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.00113795799552463, + "timestamp": "2025-07-11T18:01:51.326872", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010346250055590644, + "timestamp": "2025-07-11T18:01:51.327946", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0009153330029221252, + "timestamp": "2025-07-11T18:01:51.328893", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0009326250001322478, + "timestamp": "2025-07-11T18:01:51.329859", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008866249991115183, + "timestamp": "2025-07-11T18:01:51.330787", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", + "duration_seconds": 0.0007889999978942797, + "timestamp": "2025-07-11T18:01:51.331622", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0008344579982804134, + "timestamp": "2025-07-11T18:01:51.332488", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}", + "endpoint_name": "Read wb_dr_pro_daily_report", + "overall_status": "失败", + "duration_seconds": 0.001559, + "start_time": "2025-07-11T18:01:51.332603", + "end_time": "2025-07-11T18:01:51.334162", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "失败", + "message": "期望状态码 200,但收到 404。", + "duration_seconds": 0.000868874994921498, + "timestamp": "2025-07-11T18:01:51.333679", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 404, + "request_url": "http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id", + "response_body_sample": "{\"code\": 404, \"message\": \"资源 'wb_dr_pro_daily_report' with ID 'param_id' 未找到.\"}" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.916991646401584e-06, + "timestamp": "2025-07-11T18:01:51.333726", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.875001756474376e-06, + "timestamp": "2025-07-11T18:01:51.333752", + "validation_points": [] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.458002073690295e-06, + "timestamp": "2025-07-11T18:01:51.333776", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.333800", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.166003342717886e-06, + "timestamp": "2025-07-11T18:01:51.333823", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.166003342717886e-06, + "timestamp": "2025-07-11T18:01:51.333847", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.333870", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.291004294529557e-06, + "timestamp": "2025-07-11T18:01:51.333894", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.333917", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.041002390906215e-06, + "timestamp": "2025-07-11T18:01:51.333941", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.208000170066953e-06, + "timestamp": "2025-07-11T18:01:51.333964", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.291004294529557e-06, + "timestamp": "2025-07-11T18:01:51.333987", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:01:51.334010", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.999995093792677e-06, + "timestamp": "2025-07-11T18:01:51.334033", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.042006473056972e-06, + "timestamp": "2025-07-11T18:01:51.334056", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:01:51.334079", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:01:51.334101", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.041991921141744e-06, + "timestamp": "2025-07-11T18:01:51.334124", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.874994141981006e-06, + "timestamp": "2025-07-11T18:01:51.334147", + "validation_points": [] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Update wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.019964, + "start_time": "2025-07-11T18:01:51.334215", + "end_time": "2025-07-11T18:01:51.354179", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0011190000077476725, + "timestamp": "2025-07-11T18:01:51.335490", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0010194579954259098, + "timestamp": "2025-07-11T18:01:51.336544", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009390420018462464, + "timestamp": "2025-07-11T18:01:51.337511", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0009437499975319952, + "timestamp": "2025-07-11T18:01:51.338484", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0009870420035440475, + "timestamp": "2025-07-11T18:01:51.339511", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.000888041002326645, + "timestamp": "2025-07-11T18:01:51.340429", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "PUT", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.0009685420081950724, + "timestamp": "2025-07-11T18:01:51.341439", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.0008787080005276948, + "timestamp": "2025-07-11T18:01:51.342357", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0008883330010576174, + "timestamp": "2025-07-11T18:01:51.343282", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009844169981079176, + "timestamp": "2025-07-11T18:01:51.344303", + "validation_points": [ + { + "passed": true, + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0008577499975217506, + "timestamp": "2025-07-11T18:01:51.345194", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.0009250000002793968, + "timestamp": "2025-07-11T18:01:51.346156", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008801670046523213, + "timestamp": "2025-07-11T18:01:51.347074", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0009055830014403909, + "timestamp": "2025-07-11T18:01:51.348025", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.000982333003776148, + "timestamp": "2025-07-11T18:01:51.349041", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010403340129414573, + "timestamp": "2025-07-11T18:01:51.350114", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010148750006919727, + "timestamp": "2025-07-11T18:01:51.351161", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009512079996056855, + "timestamp": "2025-07-11T18:01:51.352145", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.000999500000034459, + "timestamp": "2025-07-11T18:01:51.353187", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0009224999957950786, + "timestamp": "2025-07-11T18:01:51.354153", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Delete wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.01955, + "start_time": "2025-07-11T18:01:51.354244", + "end_time": "2025-07-11T18:01:51.373794", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0008209579973481596, + "timestamp": "2025-07-11T18:01:51.355232", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.000868874994921498, + "timestamp": "2025-07-11T18:01:51.356137", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0008231670071836561, + "timestamp": "2025-07-11T18:01:51.356988", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0015773750055814162, + "timestamp": "2025-07-11T18:01:51.358594", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0008904580026865005, + "timestamp": "2025-07-11T18:01:51.359530", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008306670060846955, + "timestamp": "2025-07-11T18:01:51.360397", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "DELETE", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.000890750001417473, + "timestamp": "2025-07-11T18:01:51.361324", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.0009288339933846146, + "timestamp": "2025-07-11T18:01:51.362317", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0008226659992942587, + "timestamp": "2025-07-11T18:01:51.363181", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.000995124995824881, + "timestamp": "2025-07-11T18:01:51.364215", + "validation_points": [ + { + "passed": true, + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0008364590030396357, + "timestamp": "2025-07-11T18:01:51.365084", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.0009462090092711151, + "timestamp": "2025-07-11T18:01:51.366075", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008159999997587875, + "timestamp": "2025-07-11T18:01:51.366929", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008562090079067275, + "timestamp": "2025-07-11T18:01:51.367820", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010283330047968775, + "timestamp": "2025-07-11T18:01:51.368883", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", + "duration_seconds": 0.0010812500113388523, + "timestamp": "2025-07-11T18:01:51.369995", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 404, + "response_body": { + "code": 404, + "data": false, + "message": "未找到要删除的资源" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0009402919968124479, + "timestamp": "2025-07-11T18:01:51.370965", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008508750033797696, + "timestamp": "2025-07-11T18:01:51.371851", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0008847499993862584, + "timestamp": "2025-07-11T18:01:51.372772", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0009503329929430038, + "timestamp": "2025-07-11T18:01:51.373768", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + } + ], + "stage_results": [ + { + "stage_id": "dms_crud_scenario_stage", + "stage_name": "DMS Full CRUD Scenario", + "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", + "api_group_name": "Global (所有API)", + "tags": [ + "dms", + "crud", + "scenario" + ], + "overall_status": "失败", + "duration_seconds": "0.00", + "start_time": "2025-07-11T18:01:51", + "end_time": "2025-07-11T18:01:51", + "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (执行错误) 而中止.", + "executed_steps_count": 1, + "executed_steps": [ + { + "step_name": "Step 1: Create Resource", + "description": null, + "lookup_key": "CREATE", + "resolved_endpoint": null, + "status": "执行错误", + "message": "步骤执行期间发生意外错误: name 'BaseEndpoint' is not defined", + "duration_seconds": "0.0000", + "timestamp": "2025-07-11T18:01:51+0800", + "validation_points": [], + "api_call_curl": "N/A", + "request_details": null, + "extracted_outputs": {}, + "context_after_step_summary": {} + } + ], + "final_stage_context_summary": { + "pk_name": "description", + "pk_value": "6802f559-3888-476e-bca5-a95f87fd7e6a", + "current_payload": "Type: dict, Keys/Count: 1", + "update_payload": "Type: dict, Keys/Count: 1", + "scenario_endpoints": "Type: dict, Keys/Count: 5" + } + }, + { + "stage_id": "dms_crud_scenario_stage", + "stage_name": "DMS Full CRUD Scenario", + "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", + "api_group_name": "Global (所有API)", + "tags": [ + "dms", + "crud", + "scenario" + ], + "overall_status": "失败", + "duration_seconds": "0.00", + "start_time": "2025-07-11T18:01:51", + "end_time": "2025-07-11T18:01:51", + "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (执行错误) 而中止.", + "executed_steps_count": 1, + "executed_steps": [ + { + "step_name": "Step 1: Create Resource", + "description": null, + "lookup_key": "CREATE", + "resolved_endpoint": null, + "status": "执行错误", + "message": "步骤执行期间发生意外错误: name 'BaseEndpoint' is not defined", + "duration_seconds": "0.0000", + "timestamp": "2025-07-11T18:01:51+0800", + "validation_points": [], + "api_call_curl": "N/A", + "request_details": null, + "extracted_outputs": {}, + "context_after_step_summary": {} + } + ], + "final_stage_context_summary": { + "pk_name": "description", + "pk_value": "8562a278-d1eb-4d56-b7e6-6db4aa14b6c8", + "current_payload": "Type: dict, Keys/Count: 1", + "update_payload": "Type: dict, Keys/Count: 1", + "scenario_endpoints": "Type: dict, Keys/Count: 5" + } + } + ], + "api_call_details_summary": [] +} \ No newline at end of file diff --git a/test_reports/2025-07-11_18-55-23/summary.json b/test_reports/2025-07-11_18-55-23/summary.json new file mode 100644 index 0000000..e69de29 diff --git a/test_reports/2025-07-11_18-57-44/api_call_details.md b/test_reports/2025-07-11_18-57-44/api_call_details.md new file mode 100644 index 0000000..c7a804d --- /dev/null +++ b/test_reports/2025-07-11_18-57-44/api_call_details.md @@ -0,0 +1,8234 @@ +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 55' -d '{"data": [{"description": "test-entry-from-scenario"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "data": [ + { + "description": "test-entry-from-scenario" + } + ] +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "创建失败,数据项缺少主键 'lujing_test_id'" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.892671"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.892671" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.893971"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.893971" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.895131"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.895131" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.896599"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.896599" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.897636"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.897636" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.898778"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.898778" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.899742"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.899742" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.900781"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.900781" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.901796"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.901796" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.902823"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.902823" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.904921"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.904921" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.906008"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.906008" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.907137"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.907137" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.908090"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.908090" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.909170"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.909170" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.910366"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.910366" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.912003"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:57:44.912003" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.913606"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.913606" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.915752"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "229", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.915752" + } + ], + "message": "获取 'lujing_test' 列表成功" +} +``` + +--- +## `GET http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id` +**cURL Command:** +```sh +curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id +``` +### Request Details +- **Method:** `GET` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id` +- **Headers:** +```json +{ + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `404` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "91", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "message": "资源 'lujing_test' with ID 'param_id' 未找到." +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.937246"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.937246" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.938274"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.938274" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.939302"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.939302" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.940349"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.940349" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.941289"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.941289" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.942224"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.942224" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.943255"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.943255" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.944255"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.944255" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.945356"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.945356" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.946323"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.946323" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.947295"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.947295" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.948436"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.948436" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.949567"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.949567" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.950599"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.950599" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.951607"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.951607" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 193' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.952712"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.952712" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 199' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.953838"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:57:44.953838" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.954880"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.954880" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 195' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "lujing_test_id": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.956832"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "lujing_test_id": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.956832" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0006s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 63' -d '{"version": 12345, "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 20' -d '{"version": "1.0.0"}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0" +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [{pk: value}, ...]}" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.977510", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.977510", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.978653", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.978653", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.979718", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.979718", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.980783", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.980783", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.981767", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.981767", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.982732", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.982732", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.983732", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.983732", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.984770", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.984770", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.985762", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.985762", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.986728", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.986728", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.987723", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.987723", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.988633", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.988633", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.989583", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.989583", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.990573", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.990573", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.991641", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.991641", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.992709", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.992709", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:44.993812", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:57:44.993812", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.994895", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.994895", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:44.996881", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:44 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +**cURL Command:** +```sh +curl -X POST -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' -H 'Content-Type: application/json' -H 'Content-Length: 0' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "251", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:44.996881", + "wb_dr_pro_daily_report_id": "example_string" + } + ], + "message": "获取 'wb_dr_pro_daily_report' 列表成功" +} +``` + +--- +## `GET http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id` +**cURL Command:** +```sh +curl -H 'User-Agent: python-requests/2.32.3' -H 'Accept-Encoding: gzip, deflate, br, zstd' -H 'Accept: application/json' -H 'Connection: keep-alive' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id +``` +### Request Details +- **Method:** `GET` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id` +- **Headers:** +```json +{ + "Accept": "application/json" +} +``` +### Response Details +- **Status Code:** `404` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "message": "资源 'wb_dr_pro_daily_report' with ID 'param_id' 未找到." +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.017555", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.017555", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.018628", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.018628", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.019752", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.019752", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.020868", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.020868", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.021872", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.021872", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.022916", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.022916", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.023841", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.023841", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0009s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.025258", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.025258", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.026325", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.026325", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.027303", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.027303", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.028365", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.028365", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.029281", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.029281", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.030259", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.030259", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.031193", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.031193", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.032208", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.032208", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 204' -d '{"version": 12345, "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.033300", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.033300", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 210' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 10001, "status": "active", "update_date": "2025-07-11T18:57:45.034394", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 10001, + "status": "active", + "update_date": "2025-07-11T18:57:45.034394", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.035468", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.035468", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 30' -d '{"version": "1.0.0", "act": 0}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0 +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "102", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [...]}" +} +``` + +--- +## `PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 206' -d '{"version": "1.0.0", "act": 0, "data": [{"description": "example_string", "record_count": 0, "status": "active", "update_date": "2025-07-11T18:57:45.037422", "wb_dr_pro_daily_report_id": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `PUT` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "act": 0, + "data": [ + { + "description": "example_string", + "record_count": 0, + "status": "active", + "update_date": "2025-07-11T18:57:45.037422", + "wb_dr_pro_daily_report_id": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "60", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 0, + "data": true, + "message": "创建成功" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 63' -d '{"version": 12345, "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": 12345, + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 20' -d '{"version": "1.0.0"}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0" +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0005s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "请求体格式错误,应为 {'data': [{pk: value}, ...]}" +} +``` + +--- +## `DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 65' -d '{"version": "1.0.0", "data": [{"description": "example_string"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report +``` +### Request Details +- **Method:** `DELETE` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "version": "1.0.0", + "data": [ + { + "description": "example_string" + } + ] +} +``` +### Response Details +- **Status Code:** `200` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "93", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 404, + "data": false, + "message": "未找到要删除的资源" +} +``` + +--- +## `POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +**cURL Command:** +```sh +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 'Content-Type: application/json' -H 'Content-Length: 55' -d '{"data": [{"description": "test-entry-from-scenario"}]}' --insecure http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test +``` +### Request Details +- **Method:** `POST` +- **Full URL:** `http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test` +- **Headers:** +```json +{ + "Content-Type": "application/json", + "Accept": "application/json" +} +``` +- **Body:** +```json +{ + "data": [ + { + "description": "test-entry-from-scenario" + } + ] +} +``` +### Response Details +- **Status Code:** `400` +- **Elapsed Time:** `0.0004s` +- **Headers:** +```json +{ + "Server": "Werkzeug/3.1.3 Python/3.12.0", + "Date": "Fri, 11 Jul 2025 10:57:45 GMT", + "Content-Type": "application/json", + "Content-Length": "115", + "Connection": "close" +} +``` +- **Body:** +```json +{ + "code": 400, + "message": "创建失败,数据项缺少主键 'lujing_test_id'" +} +``` + +--- \ No newline at end of file diff --git a/test_reports/2025-07-11_18-57-44/report_cn.pdf b/test_reports/2025-07-11_18-57-44/report_cn.pdf new file mode 100644 index 0000000..ce9e4c9 Binary files /dev/null and b/test_reports/2025-07-11_18-57-44/report_cn.pdf differ diff --git a/test_reports/2025-07-11_18-57-44/summary.json b/test_reports/2025-07-11_18-57-44/summary.json new file mode 100644 index 0000000..e2389cd --- /dev/null +++ b/test_reports/2025-07-11_18-57-44/summary.json @@ -0,0 +1,4475 @@ +{ + "start_time": "2025-07-11T18:57:44.878856", + "end_time": "2025-07-11T18:57:45.058583", + "duration_seconds": "0.18", + "overall_summary": { + "total_endpoints_defined": 10, + "endpoints_tested": 10, + "endpoints_passed": 8, + "endpoints_failed": 2, + "endpoints_error": 0, + "endpoints_skipped": 0, + "endpoints_partial_success": 0, + "endpoint_success_rate": "80.00%", + "total_test_cases_applicable": 200, + "total_test_cases_executed": 200, + "test_cases_passed": 112, + "test_cases_failed": 50, + "test_cases_error": 0, + "test_cases_skipped_in_endpoint": 38, + "test_case_success_rate": "56.00%", + "total_stages_defined": 1, + "total_stages_executed": 2, + "stages_passed": 0, + "stages_failed": 2, + "stages_error": 0, + "stages_skipped": 0, + "stage_success_rate": "0.00%" + }, + "errors": [], + "endpoint_results": [ + { + "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Create lujing_test", + "overall_status": "通过", + "duration_seconds": 0.024396, + "start_time": "2025-07-11T18:57:44.892251", + "end_time": "2025-07-11T18:57:44.916647", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0012566250079544261, + "timestamp": "2025-07-11T18:57:44.893669", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0011614999966695905, + "timestamp": "2025-07-11T18:57:44.894875", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0011051670007873327, + "timestamp": "2025-07-11T18:57:44.896014", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0013287079927977175, + "timestamp": "2025-07-11T18:57:44.897380", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0011127920006401837, + "timestamp": "2025-07-11T18:57:44.898534", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0009296670032199472, + "timestamp": "2025-07-11T18:57:44.899497", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 的最后一个路径分段 'lujing_test' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.000998208997771144, + "timestamp": "2025-07-11T18:57:44.900535", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "segment": "lujing_test" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0009581670019542798, + "timestamp": "2025-07-11T18:57:44.901533", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009748750017024577, + "timestamp": "2025-07-11T18:57:44.902554", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0020924580021528527, + "timestamp": "2025-07-11T18:57:44.904688", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0009897080017253757, + "timestamp": "2025-07-11T18:57:44.905715", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.0011015420022886246, + "timestamp": "2025-07-11T18:57:44.906875", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0009206669928971678, + "timestamp": "2025-07-11T18:57:44.907837", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.000993541005300358, + "timestamp": "2025-07-11T18:57:44.908870", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.001166707996162586, + "timestamp": "2025-07-11T18:57:44.910075", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0012812500062864274, + "timestamp": "2025-07-11T18:57:44.911390", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0014582500007236376, + "timestamp": "2025-07-11T18:57:44.912889", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0014327079989016056, + "timestamp": "2025-07-11T18:57:44.914360", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.001076708998880349, + "timestamp": "2025-07-11T18:57:44.915478", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0010988750000251457, + "timestamp": "2025-07-11T18:57:44.916618", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0", + "endpoint_name": "List lujing_test", + "overall_status": "通过", + "duration_seconds": 0.018525, + "start_time": "2025-07-11T18:57:44.916723", + "end_time": "2025-07-11T18:57:44.935248", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0009192500001518056, + "timestamp": "2025-07-11T18:57:44.917836", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.001042749994667247, + "timestamp": "2025-07-11T18:57:44.918913", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_ml/v1/lujing_test/1.0.0" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0008760420023463666, + "timestamp": "2025-07-11T18:57:44.919821", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.00094449998869095, + "timestamp": "2025-07-11T18:57:44.920796", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", + "duration_seconds": 0.0009832920040935278, + "timestamp": "2025-07-11T18:57:44.921827", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + }, + { + "keys": [ + "code", + "data", + "message" + ] + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008101249986793846, + "timestamp": "2025-07-11T18:57:44.922673", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0008099169936031103, + "timestamp": "2025-07-11T18:57:44.923523", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "segment": "1.0.0" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。", + "duration_seconds": 0.0008066659938776866, + "timestamp": "2025-07-11T18:57:44.924369", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0007651250052731484, + "timestamp": "2025-07-11T18:57:44.925175", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009727500000735745, + "timestamp": "2025-07-11T18:57:44.926186", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", + "duration_seconds": 0.0009119160094996914, + "timestamp": "2025-07-11T18:57:44.927137", + "validation_points": [ + { + "field": "data[].update_date" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test/1.0.0' 包含版本标识: 'v1'", + "duration_seconds": 0.000884416003827937, + "timestamp": "2025-07-11T18:57:44.928063", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test/1.0.0" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008037920051719993, + "timestamp": "2025-07-11T18:57:44.928907", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.000828709002234973, + "timestamp": "2025-07-11T18:57:44.929778", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0009267499990528449, + "timestamp": "2025-07-11T18:57:44.930738", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.00095795800734777, + "timestamp": "2025-07-11T18:57:44.931725", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0009083750046556816, + "timestamp": "2025-07-11T18:57:44.932666", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008869170123944059, + "timestamp": "2025-07-11T18:57:44.933585", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", + "duration_seconds": 0.0008115410018945113, + "timestamp": "2025-07-11T18:57:44.934433", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0007599999953527004, + "timestamp": "2025-07-11T18:57:44.935224", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", + "endpoint_name": "Read lujing_test", + "overall_status": "失败", + "duration_seconds": 0.001521, + "start_time": "2025-07-11T18:57:44.935306", + "end_time": "2025-07-11T18:57:44.936827", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "失败", + "message": "期望状态码 200,但收到 404。", + "duration_seconds": 0.0008493750065099448, + "timestamp": "2025-07-11T18:57:44.936315", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 404, + "request_url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test/1.0.0/param_id", + "response_body_sample": "{\"code\": 404, \"message\": \"资源 'lujing_test' with ID 'param_id' 未找到.\"}" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 9.333991329185665e-06, + "timestamp": "2025-07-11T18:57:44.936366", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.957991329021752e-06, + "timestamp": "2025-07-11T18:57:44.936392", + "validation_points": [] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 9.16598946787417e-06, + "timestamp": "2025-07-11T18:57:44.936419", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.25000461190939e-06, + "timestamp": "2025-07-11T18:57:44.936448", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.12498910818249e-06, + "timestamp": "2025-07-11T18:57:44.936475", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.916998583823442e-06, + "timestamp": "2025-07-11T18:57:44.936501", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.458999218419194e-06, + "timestamp": "2025-07-11T18:57:44.936530", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.1250105975195765e-06, + "timestamp": "2025-07-11T18:57:44.936553", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.0829992182552814e-06, + "timestamp": "2025-07-11T18:57:44.936576", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.1250105975195765e-06, + "timestamp": "2025-07-11T18:57:44.936599", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:57:44.936622", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.041002390906215e-06, + "timestamp": "2025-07-11T18:57:44.936644", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:57:44.936667", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.084003300406039e-06, + "timestamp": "2025-07-11T18:57:44.936691", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:57:44.936713", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.084003300406039e-06, + "timestamp": "2025-07-11T18:57:44.936736", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.50001345295459e-06, + "timestamp": "2025-07-11T18:57:44.936760", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.374997949227691e-06, + "timestamp": "2025-07-11T18:57:44.936784", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.20900425221771e-06, + "timestamp": "2025-07-11T18:57:44.936807", + "validation_points": [] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Update lujing_test", + "overall_status": "通过", + "duration_seconds": 0.020745, + "start_time": "2025-07-11T18:57:44.936892", + "end_time": "2025-07-11T18:57:44.957637", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.001000333999400027, + "timestamp": "2025-07-11T18:57:44.938050", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0009679579961812124, + "timestamp": "2025-07-11T18:57:44.939049", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "PUT /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009808750037336722, + "timestamp": "2025-07-11T18:57:44.940059", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.000977624993538484, + "timestamp": "2025-07-11T18:57:44.941066", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.000912499992409721, + "timestamp": "2025-07-11T18:57:44.942016", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0009370420011691749, + "timestamp": "2025-07-11T18:57:44.942982", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "PUT", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.0009986670047510415, + "timestamp": "2025-07-11T18:57:44.944026", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0010697079997044057, + "timestamp": "2025-07-11T18:57:44.945135", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009021669975481927, + "timestamp": "2025-07-11T18:57:44.946076", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009648749983171001, + "timestamp": "2025-07-11T18:57:44.947084", + "validation_points": [ + { + "passed": true, + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0010605830029817298, + "timestamp": "2025-07-11T18:57:44.948175", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.0010904579976340756, + "timestamp": "2025-07-11T18:57:44.949313", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0010073750017909333, + "timestamp": "2025-07-11T18:57:44.950364", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0009176250023301691, + "timestamp": "2025-07-11T18:57:44.951321", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010636670049279928, + "timestamp": "2025-07-11T18:57:44.952417", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010901250061579049, + "timestamp": "2025-07-11T18:57:44.953540", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010466249950695783, + "timestamp": "2025-07-11T18:57:44.954619", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009400419949088246, + "timestamp": "2025-07-11T18:57:44.955592", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009332500048913062, + "timestamp": "2025-07-11T18:57:44.956563", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0010077920014737174, + "timestamp": "2025-07-11T18:57:44.957613", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/wb_ml/v1/lujing_test", + "endpoint_name": "Delete lujing_test", + "overall_status": "通过", + "duration_seconds": 0.019397, + "start_time": "2025-07-11T18:57:44.957692", + "end_time": "2025-07-11T18:57:44.977089", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0008742919890210032, + "timestamp": "2025-07-11T18:57:44.958732", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.000913208001293242, + "timestamp": "2025-07-11T18:57:44.959677", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "DELETE /api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0008582910086261109, + "timestamp": "2025-07-11T18:57:44.960563", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0009342910052509978, + "timestamp": "2025-07-11T18:57:44.961531", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0008924590074457228, + "timestamp": "2025-07-11T18:57:44.962461", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.000843875008285977, + "timestamp": "2025-07-11T18:57:44.963333", + "validation_points": [ + { + "path": "/api/dms/wb_ml/v1/lujing_test", + "method": "DELETE", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.000860916989040561, + "timestamp": "2025-07-11T18:57:44.964232", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。", + "duration_seconds": 0.0010030830017058179, + "timestamp": "2025-07-11T18:57:44.965278", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_ml/v1/lujing_test' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009108340018428862, + "timestamp": "2025-07-11T18:57:44.966235", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0010819159942911938, + "timestamp": "2025-07-11T18:57:44.967362", + "validation_points": [ + { + "passed": true, + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0010299159912392497, + "timestamp": "2025-07-11T18:57:44.968428", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_ml/v1/lujing_test' 正确以'/api/'开头;API路径 '/api/dms/wb_ml/v1/lujing_test' 包含版本标识: 'v1'", + "duration_seconds": 0.0008674999990034848, + "timestamp": "2025-07-11T18:57:44.969341", + "validation_points": [ + { + "full_path": "/api/dms/wb_ml/v1/lujing_test" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_ml/v1/lujing_test" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0009243749955203384, + "timestamp": "2025-07-11T18:57:44.970302", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008695839933352545, + "timestamp": "2025-07-11T18:57:44.971208", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.000946375002968125, + "timestamp": "2025-07-11T18:57:44.972186", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", + "duration_seconds": 0.0009848750050878152, + "timestamp": "2025-07-11T18:57:44.973208", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 404, + "response_body": { + "code": 404, + "data": false, + "message": "未找到要删除的资源" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0009810829942580312, + "timestamp": "2025-07-11T18:57:44.974222", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009192080033244565, + "timestamp": "2025-07-11T18:57:44.975181", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009034169925143942, + "timestamp": "2025-07-11T18:57:44.976130", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0008984579908428714, + "timestamp": "2025-07-11T18:57:44.977066", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Create wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.020481, + "start_time": "2025-07-11T18:57:44.977146", + "end_time": "2025-07-11T18:57:44.997627", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.001053999993018806, + "timestamp": "2025-07-11T18:57:44.978369", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0010827079968294129, + "timestamp": "2025-07-11T18:57:44.979493", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.000985834005405195, + "timestamp": "2025-07-11T18:57:44.980508", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0010168750013690442, + "timestamp": "2025-07-11T18:57:44.981553", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0009342919947812334, + "timestamp": "2025-07-11T18:57:44.982525", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0009629999985918403, + "timestamp": "2025-07-11T18:57:44.983517", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 的最后一个路径分段 'wb_dr_pro_daily_report' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0009224999957950786, + "timestamp": "2025-07-11T18:57:44.984478", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "segment": "wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.0010158329969272017, + "timestamp": "2025-07-11T18:57:44.985540", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009250000002793968, + "timestamp": "2025-07-11T18:57:44.986504", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009760419925441965, + "timestamp": "2025-07-11T18:57:44.987518", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0008733330032555386, + "timestamp": "2025-07-11T18:57:44.988423", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.0008797080081421882, + "timestamp": "2025-07-11T18:57:44.989341", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0009472499950788915, + "timestamp": "2025-07-11T18:57:44.990332", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0010222080018138513, + "timestamp": "2025-07-11T18:57:44.991393", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010270000057062134, + "timestamp": "2025-07-11T18:57:44.992453", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010416669974802062, + "timestamp": "2025-07-11T18:57:44.993524", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.0010707499895943329, + "timestamp": "2025-07-11T18:57:44.994632", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009773749916348606, + "timestamp": "2025-07-11T18:57:44.995641", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009569579997332767, + "timestamp": "2025-07-11T18:57:44.996642", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.000916457996936515, + "timestamp": "2025-07-11T18:57:44.997604", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "endpoint_name": "List wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.017931, + "start_time": "2025-07-11T18:57:44.997689", + "end_time": "2025-07-11T18:57:45.015620", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0007948749989736825, + "timestamp": "2025-07-11T18:57:44.998641", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0008827499987091869, + "timestamp": "2025-07-11T18:57:44.999556", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "POST /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0010054159938590601, + "timestamp": "2025-07-11T18:57:45.000596", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0008809999999357387, + "timestamp": "2025-07-11T18:57:45.001506", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。;响应中包含一个主列表,但其键名 'data' 不是 'list'。", + "duration_seconds": 0.0008612910023657605, + "timestamp": "2025-07-11T18:57:45.002403", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + }, + { + "keys": [ + "code", + "data", + "message" + ] + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008901249966584146, + "timestamp": "2025-07-11T18:57:45.003322", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "method": "POST", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 的最后一个路径分段 '1.0.0' 可能不是复数形式,建议对资源集合使用复数命名。", + "duration_seconds": 0.0008342079963767901, + "timestamp": "2025-07-11T18:57:45.004197", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0", + "segment": "1.0.0" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。", + "duration_seconds": 0.0008134579984471202, + "timestamp": "2025-07-11T18:57:45.005049", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0007592910114908591, + "timestamp": "2025-07-11T18:57:45.005849", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009497919963905588, + "timestamp": "2025-07-11T18:57:45.006837", + "validation_points": [ + { + "passed": true, + "message": "针对 POST http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0 (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "时间字段 'data[].update_date' (format: date-time) 缺少建议的 `pattern` (^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}([+-]\\d{2}:\\d{2}|Z)$) 来强制执行ISO 8601格式。", + "duration_seconds": 0.0007714160019531846, + "timestamp": "2025-07-11T18:57:45.007651", + "validation_points": [ + { + "field": "data[].update_date" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0' 包含版本标识: 'v1'", + "duration_seconds": 0.0008008339937077835, + "timestamp": "2025-07-11T18:57:45.008488", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008351249998668209, + "timestamp": "2025-07-11T18:57:45.009359", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008065419970080256, + "timestamp": "2025-07-11T18:57:45.010205", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010220840049441904, + "timestamp": "2025-07-11T18:57:45.011260", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0008989170019049197, + "timestamp": "2025-07-11T18:57:45.012191", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在请求体中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0008531249914085492, + "timestamp": "2025-07-11T18:57:45.013083", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008066250011324883, + "timestamp": "2025-07-11T18:57:45.013921", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。", + "duration_seconds": 0.000810041994554922, + "timestamp": "2025-07-11T18:57:45.014768", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0007917909970274195, + "timestamp": "2025-07-11T18:57:45.015596", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/{id}", + "endpoint_name": "Read wb_dr_pro_daily_report", + "overall_status": "失败", + "duration_seconds": 0.00148, + "start_time": "2025-07-11T18:57:45.015678", + "end_time": "2025-07-11T18:57:45.017158", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "失败", + "message": "期望状态码 200,但收到 404。", + "duration_seconds": 0.0008529159968020394, + "timestamp": "2025-07-11T18:57:45.016690", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 404, + "request_url": "http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report/1.0.0/param_id", + "response_body_sample": "{\"code\": 404, \"message\": \"资源 'wb_dr_pro_daily_report' with ID 'param_id' 未找到.\"}" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.709001122042537e-06, + "timestamp": "2025-07-11T18:57:45.016734", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.374997949227691e-06, + "timestamp": "2025-07-11T18:57:45.016759", + "validation_points": [] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.000009645707905e-06, + "timestamp": "2025-07-11T18:57:45.016782", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.95799826644361e-06, + "timestamp": "2025-07-11T18:57:45.016805", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.000009645707905e-06, + "timestamp": "2025-07-11T18:57:45.016828", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.750007742084563e-06, + "timestamp": "2025-07-11T18:57:45.016851", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.832997314631939e-06, + "timestamp": "2025-07-11T18:57:45.016873", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 7.124996045604348e-06, + "timestamp": "2025-07-11T18:57:45.016896", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.917005521245301e-06, + "timestamp": "2025-07-11T18:57:45.016919", + "validation_points": [] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.791000487282872e-06, + "timestamp": "2025-07-11T18:57:45.016941", + "validation_points": [] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.791000487282872e-06, + "timestamp": "2025-07-11T18:57:45.016963", + "validation_points": [] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.791000487282872e-06, + "timestamp": "2025-07-11T18:57:45.016985", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.917005521245301e-06, + "timestamp": "2025-07-11T18:57:45.017008", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.874994141981006e-06, + "timestamp": "2025-07-11T18:57:45.017030", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.667003617621958e-06, + "timestamp": "2025-07-11T18:57:45.017052", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 8.332994184456766e-06, + "timestamp": "2025-07-11T18:57:45.017076", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.791000487282872e-06, + "timestamp": "2025-07-11T18:57:45.017099", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.791000487282872e-06, + "timestamp": "2025-07-11T18:57:45.017121", + "validation_points": [] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "跳过", + "message": "由于关键的前置测试失败而被跳过: 关键测试 'TC-STATUS-001' 失败 (状态: 失败)。消息: ", + "duration_seconds": 6.750007742084563e-06, + "timestamp": "2025-07-11T18:57:45.017143", + "validation_points": [] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Update wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.020972, + "start_time": "2025-07-11T18:57:45.017206", + "end_time": "2025-07-11T18:57:45.038178", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.000985999999102205, + "timestamp": "2025-07-11T18:57:45.018357", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0011382920056348667, + "timestamp": "2025-07-11T18:57:45.019535", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "PUT /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009992919949581847, + "timestamp": "2025-07-11T18:57:45.020562", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.001051917002769187, + "timestamp": "2025-07-11T18:57:45.021654", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0010076250036945567, + "timestamp": "2025-07-11T18:57:45.022700", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.00087554199853912, + "timestamp": "2025-07-11T18:57:45.023608", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "PUT", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.00137945800088346, + "timestamp": "2025-07-11T18:57:45.025032", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:PUT 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.0010381249885540456, + "timestamp": "2025-07-11T18:57:45.026112", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0009269159927498549, + "timestamp": "2025-07-11T18:57:45.027076", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0010271670034853742, + "timestamp": "2025-07-11T18:57:45.028140", + "validation_points": [ + { + "passed": true, + "message": "针对 PUT http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0009042919991770759, + "timestamp": "2025-07-11T18:57:45.029075", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.000913790994673036, + "timestamp": "2025-07-11T18:57:45.030026", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008957499958341941, + "timestamp": "2025-07-11T18:57:45.030965", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0009657499904278666, + "timestamp": "2025-07-11T18:57:45.031970", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010442919883644208, + "timestamp": "2025-07-11T18:57:45.033045", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.001040457995259203, + "timestamp": "2025-07-11T18:57:45.034115", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当 body 字段 'record_count' 值为 10001 (超出范围: min=0, max=10000) 时, 业务错误码应为 -1,但实际为 0。", + "duration_seconds": 0.001064041003701277, + "timestamp": "2025-07-11T18:57:45.035211", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 0, + "response_body": { + "code": 0, + "data": true, + "message": "创建成功" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0009317500080214813, + "timestamp": "2025-07-11T18:57:45.036176", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009794579964363948, + "timestamp": "2025-07-11T18:57:45.037192", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0009248749993275851, + "timestamp": "2025-07-11T18:57:45.038155", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "endpoint_name": "Delete wb_dr_pro_daily_report", + "overall_status": "通过", + "duration_seconds": 0.018922, + "start_time": "2025-07-11T18:57:45.038235", + "end_time": "2025-07-11T18:57:45.057157", + "executed_test_cases": [ + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "响应状态码为 200,符合预期 200。", + "duration_seconds": 0.0009182499925373122, + "timestamp": "2025-07-11T18:57:45.039319", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + }, + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "必需请求头Schema验证", + "test_case_severity": "HIGH", + "status": "失败", + "message": "缺少必需的请求头 X-Tenant-ID;缺少必需的请求头 X-Data-Domain;缺少必需的请求头 Authorization", + "duration_seconds": 0.0010118339996552095, + "timestamp": "2025-07-11T18:57:45.040372", + "validation_points": [ + { + "header": "X-Tenant-ID", + "possible_names": [ + "X-Tenant-ID" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "X-Data-Domain", + "possible_names": [ + "X-Data-Domain" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "header": "Authorization", + "possible_names": [ + "Authorization" + ], + "endpoint": "DELETE /api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-SECURITY-002", + "test_case_name": "敏感字段加密检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "未在响应中找到需要检查的敏感字段。", + "duration_seconds": 0.0009284579864470288, + "timestamp": "2025-07-11T18:57:45.041330", + "validation_points": [ + { + "passed": true, + "message": "未在响应中找到需要检查的敏感字段。" + } + ] + }, + { + "test_case_id": "TC-LLM-COMPLIANCE-001", + "test_case_name": "LLM合规性综合检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "合规性标准列表为空,跳过LLM合规性检查。", + "duration_seconds": 0.0009248339920304716, + "timestamp": "2025-07-11T18:57:45.042293", + "validation_points": [ + { + "reason": "compliance_criteria.json is empty or contains an empty list." + } + ] + }, + { + "test_case_id": "TC-RESTful-001", + "test_case_name": "核心命名与结构规范检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。", + "duration_seconds": 0.0009065829945029691, + "timestamp": "2025-07-11T18:57:45.043238", + "validation_points": [ + { + "passed": true, + "message": "模块名 'dms' 格式正确 (全小写/数字/中划线)。" + } + ] + }, + { + "test_case_id": "TC-DMS-PAGINATION-001", + "test_case_name": "分页参数检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "API请求缺少标准分页参数:pageNo, pageSize, isSearchCount", + "duration_seconds": 0.0008258750021923333, + "timestamp": "2025-07-11T18:57:45.044094", + "validation_points": [ + { + "path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report", + "method": "DELETE", + "missing_params": [ + "pageNo", + "pageSize", + "isSearchCount" + ], + "found_params": { + "pageNo": false, + "pageSize": false, + "isSearchCount": false + } + } + ] + }, + { + "test_case_id": "TC-RESTful-004", + "test_case_name": "资源集合复数命名检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。", + "duration_seconds": 0.0008165839972207323, + "timestamp": "2025-07-11T18:57:45.044948", + "validation_points": [ + { + "passed": true, + "message": "跳过检查:DELETE 方法,不适用于资源集合复数检查。" + } + ] + }, + { + "test_case_id": "TC-RESTful-002", + "test_case_name": "资源路径名词检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。", + "duration_seconds": 0.0008638330036774278, + "timestamp": "2025-07-11T18:57:45.045854", + "validation_points": [ + { + "passed": true, + "message": "路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 符合资源名词命名规范。" + } + ] + }, + { + "test_case_id": "TC-DMS-CORE-SCHEMA-001", + "test_case_name": "DMS核心存储服务API响应格式检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "字段'code'在schema中未标记为必填(required);字段'message'在schema中未标记为必填(required);字段'data'在schema中未标记为必填(required);响应schema符合标准格式: {'code':int or number or string, 'message':string, 'data': any}", + "duration_seconds": 0.0008437080105068162, + "timestamp": "2025-07-11T18:57:45.046735", + "validation_points": [ + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200", + "required_fields": [] + }, + { + "status_code": "200" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-001", + "test_case_name": "返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema.", + "duration_seconds": 0.0009139579924521968, + "timestamp": "2025-07-11T18:57:45.047687", + "validation_points": [ + { + "passed": true, + "message": "针对 DELETE http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report (状态码 200) 的响应体 conforms to the JSON schema." + } + ] + }, + { + "test_case_id": "TC-RESTful-003", + "test_case_name": "时间字段ISO 8601格式检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。", + "duration_seconds": 0.0008617499988758937, + "timestamp": "2025-07-11T18:57:45.048582", + "validation_points": [ + { + "passed": true, + "message": "在API规范中未找到可供静态检查的时间相关字段(如 format: date-time 或 常见时间字段名)。" + } + ] + }, + { + "test_case_id": "TC-DMS-URL-VERSION-001", + "test_case_name": "DMS API URL版本号检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 正确以'/api/'开头;API路径 '/api/dms/wb_dr/v1/wb_dr_pro_daily_report' 包含版本标识: 'v1'", + "duration_seconds": 0.0009531249961582944, + "timestamp": "2025-07-11T18:57:45.049572", + "validation_points": [ + { + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + }, + { + "pattern_matched": "/v\\d+/", + "version_string": "v1", + "full_path": "/api/dms/wb_dr/v1/wb_dr_pro_daily_report" + } + ] + }, + { + "test_case_id": "TC-CORE-FUNC-002", + "test_case_name": "灵活的返回体JSON Schema验证", + "test_case_severity": "CRITICAL", + "status": "通过", + "message": "", + "duration_seconds": 0.0008376250043511391, + "timestamp": "2025-07-11T18:57:45.050449", + "validation_points": [] + }, + { + "test_case_id": "TC-SECURITY-001", + "test_case_name": "HTTPS 协议强制性检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "API通过HTTP (http://127.0.0.1:5001/api/dms/wb_dr/v1/wb_dr_pro_daily_report) 响应了成功的状态码 200,这违反了HTTPS强制策略。", + "duration_seconds": 0.0008717500022612512, + "timestamp": "2025-07-11T18:57:45.051364", + "validation_points": [ + { + "status_code": 200 + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-QUERY", + "test_case_name": "查询参数类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", + "duration_seconds": 0.0010064160014735535, + "timestamp": "2025-07-11T18:57:45.052404", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4001-BODY", + "test_case_name": "请求体字段类型不匹配检查", + "test_case_severity": "MEDIUM", + "status": "失败", + "message": "当请求体字段 'version' 类型不匹配时, 业务错误码应为 -1,但实际为 404。", + "duration_seconds": 0.0009657080081524327, + "timestamp": "2025-07-11T18:57:45.053401", + "validation_points": [ + { + "expected_code": -1, + "actual_code": 404, + "response_body": { + "code": 404, + "data": false, + "message": "未找到要删除的资源" + } + } + ] + }, + { + "test_case_id": "TC-ERROR-4002", + "test_case_name": "数值参数越界检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确范围限制的数值字段。", + "duration_seconds": 0.0009448329947190359, + "timestamp": "2025-07-11T18:57:45.054377", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确范围限制的数值字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4006", + "test_case_name": "非法枚举值检查", + "test_case_severity": "MEDIUM", + "status": "通过", + "message": "跳过测试:未找到具有明确枚举值限制的字段。", + "duration_seconds": 0.0008181669982150197, + "timestamp": "2025-07-11T18:57:45.055225", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:未找到具有明确枚举值限制的字段。" + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-BODY", + "test_case_name": "缺失必填请求体字段检查", + "test_case_severity": "HIGH", + "status": "失败", + "message": "当移除必填请求体字段 'data' 时, API应返回状态码 200,但实际为 400。", + "duration_seconds": 0.0009573749994160607, + "timestamp": "2025-07-11T18:57:45.056223", + "validation_points": [ + { + "expected_status": 200, + "actual_status": 400 + } + ] + }, + { + "test_case_id": "TC-ERROR-4003-QUERY", + "test_case_name": "缺失必填查询参数检查", + "test_case_severity": "HIGH", + "status": "通过", + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。", + "duration_seconds": 0.0008685000066179782, + "timestamp": "2025-07-11T18:57:45.057129", + "validation_points": [ + { + "passed": true, + "message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。" + } + ] + } + ] + } + ], + "stage_results": [ + { + "stage_id": "dms_crud_scenario_stage", + "stage_name": "DMS Full CRUD Scenario", + "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", + "api_group_name": "Global (所有API)", + "tags": [ + "dms", + "crud", + "scenario" + ], + "overall_status": "失败", + "duration_seconds": "0.00", + "start_time": "2025-07-11T18:57:44", + "end_time": "2025-07-11T18:57:44", + "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (失败) 而中止.", + "executed_steps_count": 1, + "executed_steps": [ + { + "step_name": "Step 1: Create Resource", + "description": null, + "lookup_key": "CREATE", + "resolved_endpoint": "POST /api/dms/wb_ml/v1/lujing_test", + "status": "失败", + "message": "预期状态码为 [200, 201], 实际为 400.; Expected response data to be true, but it was 'None'.", + "duration_seconds": "0.0000", + "timestamp": "2025-07-11T18:57:44+0800", + "validation_points": [ + { + "passed": false, + "message": "预期状态码为 [200, 201], 实际为 400." + }, + { + "passed": false, + "message": "Expected response data to be true, but it was 'None'." + } + ], + "api_call_curl": "N/A", + "api_operation_spec": null, + "request_details": { + "method": "POST", + "url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json" + }, + "params": {}, + "json_data": { + "data": [ + { + "description": "test-entry-from-scenario" + } + ] + }, + "body": { + "data": [ + { + "description": "test-entry-from-scenario" + } + ] + }, + "data": null, + "timeout": 30 + }, + "extracted_outputs": {}, + "context_after_step_summary": { + "pk_name": "description", + "pk_value": "c3782722-693c-41e0-8f7a-6121c09ab40e", + "current_payload": { + "description": "test-entry-from-scenario" + }, + "update_payload": { + "description": "updated-test-entry-from-scenario" + }, + "scenario_endpoints": { + "create": { + "method": "POST", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Create lujing_test", + "summary": "Create lujing_test", + "description": "Create lujing_test", + "operationId": "create_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "act": { + "type": "integer", + "example": 0 + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "standalone" + }, + "list": { + "method": "POST", + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "title": "List lujing_test", + "summary": "List lujing_test", + "description": "List lujing_test", + "operationId": "list_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": {} + } + } + }, + "responses": { + "200": { + "description": "Successful Operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "read": { + "method": "GET", + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", + "title": "Read lujing_test", + "summary": "Read lujing_test", + "description": "Read lujing_test", + "operationId": "read_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "The ID of the lujing_test, maps to description", + "schema": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + } + } + ], + "requestBody": null, + "responses": { + "200": { + "description": "Successful Operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "update": { + "method": "PUT", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Update lujing_test", + "summary": "Update lujing_test", + "description": "Update lujing_test", + "operationId": "update_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "act": { + "type": "integer", + "example": 0 + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "delete": { + "method": "DELETE", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Delete lujing_test", + "summary": "Delete lujing_test", + "description": "Delete lujing_test", + "operationId": "delete_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + } + }, + "required": [ + "description" + ] + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + } + } + } + } + ], + "final_stage_context_summary": { + "pk_name": "description", + "pk_value": "c3782722-693c-41e0-8f7a-6121c09ab40e", + "current_payload": "Type: dict, Keys/Count: 1", + "update_payload": "Type: dict, Keys/Count: 1", + "scenario_endpoints": "Type: dict, Keys/Count: 5" + } + }, + { + "stage_id": "dms_crud_scenario_stage", + "stage_name": "DMS Full CRUD Scenario", + "description": "Performs a full Create -> Read -> Update -> Read -> Delete -> List workflow for a single DMS business object. (Scenario for: lujing_test)", + "api_group_name": "Global (所有API)", + "tags": [ + "dms", + "crud", + "scenario" + ], + "overall_status": "失败", + "duration_seconds": "0.00", + "start_time": "2025-07-11T18:57:45", + "end_time": "2025-07-11T18:57:45", + "message": "测试阶段因步骤 'Step 1: Create Resource' 的状态 (失败) 而中止.", + "executed_steps_count": 1, + "executed_steps": [ + { + "step_name": "Step 1: Create Resource", + "description": null, + "lookup_key": "CREATE", + "resolved_endpoint": "POST /api/dms/wb_ml/v1/lujing_test", + "status": "失败", + "message": "预期状态码为 [200, 201], 实际为 400.; Expected response data to be true, but it was 'None'.", + "duration_seconds": "0.0000", + "timestamp": "2025-07-11T18:57:45+0800", + "validation_points": [ + { + "passed": false, + "message": "预期状态码为 [200, 201], 实际为 400." + }, + { + "passed": false, + "message": "Expected response data to be true, but it was 'None'." + } + ], + "api_call_curl": "N/A", + "api_operation_spec": null, + "request_details": { + "method": "POST", + "url": "http://127.0.0.1:5001/api/dms/wb_ml/v1/lujing_test", + "headers": { + "Content-Type": "application/json", + "Accept": "application/json" + }, + "params": {}, + "json_data": { + "data": [ + { + "description": "test-entry-from-scenario" + } + ] + }, + "body": { + "data": [ + { + "description": "test-entry-from-scenario" + } + ] + }, + "data": null, + "timeout": 30 + }, + "extracted_outputs": {}, + "context_after_step_summary": { + "pk_name": "description", + "pk_value": "b54b5f8c-01ac-49c2-a846-2bdb8454b087", + "current_payload": { + "description": "test-entry-from-scenario" + }, + "update_payload": { + "description": "updated-test-entry-from-scenario" + }, + "scenario_endpoints": { + "create": { + "method": "POST", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Create lujing_test", + "summary": "Create lujing_test", + "description": "Create lujing_test", + "operationId": "create_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "act": { + "type": "integer", + "example": 0 + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "standalone" + }, + "list": { + "method": "POST", + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0", + "title": "List lujing_test", + "summary": "List lujing_test", + "description": "List lujing_test", + "operationId": "list_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": {} + } + } + }, + "responses": { + "200": { + "description": "Successful Operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "read": { + "method": "GET", + "path": "/api/dms/wb_ml/v1/lujing_test/1.0.0/{id}", + "title": "Read lujing_test", + "summary": "Read lujing_test", + "description": "Read lujing_test", + "operationId": "read_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "The ID of the lujing_test, maps to description", + "schema": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + } + } + ], + "requestBody": null, + "responses": { + "200": { + "description": "Successful Operation", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "update": { + "method": "PUT", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Update lujing_test", + "summary": "Update lujing_test", + "description": "Update lujing_test", + "operationId": "update_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "act": { + "type": "integer", + "example": 0 + }, + "data": { + "type": "array", + "items": { + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + }, + "lujing_test_id": { + "description": "主键 for lujing_test", + "title": "主键", + "type": "string" + }, + "record_count": { + "maximum": 10000, + "minimum": 0, + "title": "记录数", + "type": "integer" + }, + "status": { + "enum": [ + "active", + "inactive", + "archived" + ], + "title": "状态", + "type": "string" + }, + "update_date": { + "format": "date-time", + "title": "更新日期", + "type": "string" + } + }, + "required": [ + "lujing_test_id", + "status" + ], + "title": "测试", + "type": "object" + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + }, + "delete": { + "method": "DELETE", + "path": "/api/dms/wb_ml/v1/lujing_test", + "title": "Delete lujing_test", + "summary": "Delete lujing_test", + "description": "Delete lujing_test", + "operationId": "delete_lujing_test", + "tags": [ + "wb_ml" + ], + "parameters": [], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "1.0.0" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "description": { + "description": "一个简单的描述字段", + "title": "描述", + "type": "string" + } + }, + "required": [ + "description" + ] + } + } + }, + "required": [ + "data" + ] + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + } + } + } + } + } + } + }, + "_source_format": "dms", + "_dms_raw_record": { + "add_tree": "Y", + "create_user": "admin", + "domain": "wb_ml", + "flow_state": "7", + "id": "lujing_test.1.0.0", + "name": "lujing_test", + "title": "测试", + "type": "business-data", + "update_date": "2025-07-01 14:34:58", + "version": "1.0.0" + }, + "_test_mode": "scenario_only" + } + } + } + } + ], + "final_stage_context_summary": { + "pk_name": "description", + "pk_value": "b54b5f8c-01ac-49c2-a846-2bdb8454b087", + "current_payload": "Type: dict, Keys/Count: 1", + "update_payload": "Type: dict, Keys/Count: 1", + "scenario_endpoints": "Type: dict, Keys/Count: 5" + } + } + ], + "api_call_details_summary": [] +} \ No newline at end of file