diff --git a/custom_testcases/__pycache__/basic_checks.cpython-312.pyc b/custom_testcases/__pycache__/basic_checks.cpython-312.pyc index 7bd2f47..74bf19b 100644 Binary files a/custom_testcases/__pycache__/basic_checks.cpython-312.pyc and b/custom_testcases/__pycache__/basic_checks.cpython-312.pyc differ diff --git a/custom_testcases/basic_checks.py b/custom_testcases/basic_checks.py index f1abaa7..308f069 100644 --- a/custom_testcases/basic_checks.py +++ b/custom_testcases/basic_checks.py @@ -1,5 +1,6 @@ from ddms_compliance_suite.test_framework_core import BaseAPITestCase, TestSeverity, ValidationResult, APIRequestContext, APIResponseContext import logging +from typing import Dict, Any, Optional # 确保引入 Optional class StatusCode200Check(BaseAPITestCase): # 1. 元数据 @@ -11,13 +12,14 @@ class StatusCode200Check(BaseAPITestCase): # 适用于所有方法和路径 (默认) # applicable_methods = None # applicable_paths_regex = None + execution_order = 10 # 示例执行顺序 use_llm_for_body: bool = True use_llm_for_path_params: bool = True use_llm_for_query_params: bool = True use_llm_for_headers: bool = True - def __init__(self, endpoint_spec: dict, global_api_spec: dict): - super().__init__(endpoint_spec, global_api_spec) + def __init__(self, endpoint_spec: Dict[str, Any], global_api_spec: Dict[str, Any], json_schema_validator: Optional[Any] = None): + super().__init__(endpoint_spec, global_api_spec, json_schema_validator=json_schema_validator) self.logger.info(f"测试用例 {self.id} ({self.name}) 已针对端点 '{self.endpoint_spec.get('method')} {self.endpoint_spec.get('path')}' 初始化。") def validate_response(self, response_context: APIResponseContext, request_context: APIRequestContext) -> list[ValidationResult]: @@ -55,12 +57,13 @@ class HeaderExistenceCheck(BaseAPITestCase): description = "验证 API 响应是否包含 'X-Request-ID' 头。" severity = TestSeverity.MEDIUM tags = ["header", "observability"] + execution_order = 10 # 示例执行顺序 use_llm_for_body = False EXPECTED_HEADER = "X-Request-ID" # 示例,可以根据实际需要修改 - def __init__(self, endpoint_spec: dict, global_api_spec: dict): - super().__init__(endpoint_spec, global_api_spec) + def __init__(self, endpoint_spec: Dict[str, Any], global_api_spec: Dict[str, Any], json_schema_validator: Optional[Any] = None): + super().__init__(endpoint_spec, global_api_spec, json_schema_validator=json_schema_validator) self.logger.info(f"测试用例 {self.id} ({self.name}) 已初始化 for endpoint {self.endpoint_spec.get('path')}") def validate_response(self, response_context: APIResponseContext, request_context: APIRequestContext) -> list[ValidationResult]: diff --git a/ddms_compliance_suite/__pycache__/test_case_registry.cpython-312.pyc b/ddms_compliance_suite/__pycache__/test_case_registry.cpython-312.pyc index 200cc4c..b845ec3 100644 Binary files a/ddms_compliance_suite/__pycache__/test_case_registry.cpython-312.pyc and b/ddms_compliance_suite/__pycache__/test_case_registry.cpython-312.pyc differ diff --git a/ddms_compliance_suite/__pycache__/test_framework_core.cpython-312.pyc b/ddms_compliance_suite/__pycache__/test_framework_core.cpython-312.pyc index acc36e0..ce81c55 100644 Binary files a/ddms_compliance_suite/__pycache__/test_framework_core.cpython-312.pyc and b/ddms_compliance_suite/__pycache__/test_framework_core.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 16988a1..2b6fb7c 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/test_framework_core.py b/ddms_compliance_suite/test_framework_core.py index 2feabe1..63c208e 100644 --- a/ddms_compliance_suite/test_framework_core.py +++ b/ddms_compliance_suite/test_framework_core.py @@ -93,16 +93,18 @@ class BaseAPITestCase: use_llm_for_query_params: bool = False use_llm_for_headers: bool = False - def __init__(self, endpoint_spec: Dict[str, Any], global_api_spec: Dict[str, Any]): + def __init__(self, endpoint_spec: Dict[str, Any], global_api_spec: Dict[str, Any], json_schema_validator: Optional[Any] = None): """ 初始化测试用例。 Args: endpoint_spec: 当前被测API端点的详细定义 (来自YAPI/Swagger解析结果)。 global_api_spec: 完整的API规范文档 (来自YAPI/Swagger解析结果)。 + json_schema_validator: APITestOrchestrator 传入的 JSONSchemaValidator 实例 (可选)。 """ self.endpoint_spec = endpoint_spec self.global_api_spec = global_api_spec self.logger = logging.getLogger(f"testcase.{self.id}") + self.json_schema_validator = json_schema_validator # 存储传入的校验器实例 self.logger.debug(f"Test case '{self.id}' initialized for endpoint: {self.endpoint_spec.get('method', '')} {self.endpoint_spec.get('path', '')}") # --- 1. 请求生成与修改阶段 --- @@ -118,6 +120,21 @@ class BaseAPITestCase: self.logger.debug(f"Hook: generate_request_body, current body type: {type(current_body)}") return current_body + # --- 1.5. 请求URL修改阶段 (新增钩子) --- + def modify_request_url(self, current_url: str) -> str: + """ + 允许测试用例在请求发送前修改最终构建的URL。 + 默认不进行任何修改。 + + Args: + current_url: 由编排器构建的当前请求URL (已包含base_url和路径参数)。 + + Returns: + 最终要使用的URL。 + """ + self.logger.debug(f"Hook: modify_request_url, original URL: {current_url}") + return current_url + # --- 2. 请求预校验阶段 --- def validate_request_url(self, url: str, request_context: APIRequestContext) -> List[ValidationResult]: self.logger.debug(f"Hook: validate_request_url, url: {url}") @@ -141,6 +158,48 @@ class BaseAPITestCase: self.logger.debug(f"Hook: check_performance, elapsed: {response_context.elapsed_time}") return [] + # --- Helper methods --- + def validate_data_against_schema( + self, + data_to_validate: Any, + schema_definition: Dict[str, Any], + context_message_prefix: str = "Data" + ) -> List[ValidationResult]: + """ + 使用注入的 JSONSchemaValidator 针对给定的 schema 验证数据。 + Args: + data_to_validate: 要验证的数据 (通常是解析后的 JSON 对象)。 + schema_definition: JSON Schema 定义字典。 + context_message_prefix: 用于错误消息的上下文前缀。 + Returns: + 一个 ValidationResult 对象的列表。 + """ + results = [] + if not self.json_schema_validator: + self.logger.warning(f"JSONSchemaValidator 未注入到测试用例 '{self.id}'。无法执行 schema 验证。") + results.append(self.failed(f"{context_message_prefix} schema validation skipped: Validator not available.")) + return results + + is_valid, errors = self.json_schema_validator.validate(data_to_validate, schema_definition) + + if is_valid: + results.append(self.passed(f"{context_message_prefix} conforms to the JSON schema.")) + else: + error_messages = [] + if isinstance(errors, list): + for error in errors: # jsonschema.exceptions.ValidationError 对象 + error_messages.append(f"- Path: '{list(error.path)}', Message: {error.message}") # error.path 是一个deque + elif isinstance(errors, str): # 兼容旧版或简单错误字符串 + error_messages.append(errors) + + full_message = f"{context_message_prefix} does not conform to the JSON schema. Errors:\n" + "\n".join(error_messages) + results.append(self.failed( + message=full_message, + details={"schema_errors": error_messages, "validated_data_sample": str(data_to_validate)[:200]} + )) + self.logger.warning(f"{context_message_prefix} schema validation failed: {full_message}") + return results + # --- Helper to easily create a passed ValidationResult --- @staticmethod def passed(message: str, details: Optional[Dict[str, Any]] = None) -> ValidationResult: diff --git a/ddms_compliance_suite/test_orchestrator.py b/ddms_compliance_suite/test_orchestrator.py index 1393c48..c8d8539 100644 --- a/ddms_compliance_suite/test_orchestrator.py +++ b/ddms_compliance_suite/test_orchestrator.py @@ -665,7 +665,8 @@ class APITestOrchestrator: try: test_case_instance = test_case_class( endpoint_spec=endpoint_spec_dict, - global_api_spec=global_api_spec_dict + global_api_spec=global_api_spec_dict, + json_schema_validator=self.validator # <--- 注入 JSONSchemaValidator ) test_case_instance.logger.info(f"开始执行测试用例 '{test_case_instance.id}' for endpoint '{endpoint_spec_dict.get('method')} {endpoint_spec_dict.get('path')}'") @@ -694,9 +695,26 @@ class APITestOrchestrator: # 注意: 如果 _prepare_initial_request_data 填充的 final_url 已经包含了 base_url,这里的拼接逻辑需要调整 # 假设 final_url_template 只是 path string e.g. /users/{id} + # ---- 调用测试用例的 URL 修改钩子 ---- + effective_url = final_url # 默认使用原始构建的URL + if hasattr(test_case_instance, 'modify_request_url') and callable(getattr(test_case_instance, 'modify_request_url')): + try: + modified_url_by_tc = test_case_instance.modify_request_url(final_url) + if modified_url_by_tc != final_url: + test_case_instance.logger.info(f"Test case '{test_case_instance.id}' modified URL from '{final_url}' to '{modified_url_by_tc}'") + effective_url = modified_url_by_tc # 使用测试用例修改后的URL + else: + test_case_instance.logger.debug(f"Test case '{test_case_instance.id}' did not modify the URL via modify_request_url hook.") + except Exception as e_url_mod: + test_case_instance.logger.error(f"Error in test case '{test_case_instance.id}' during modify_request_url: {e_url_mod}. Using original URL '{final_url}'.", exc_info=True) + # effective_url 保持为 final_url + else: + test_case_instance.logger.debug(f"Test case '{test_case_instance.id}' does not have a callable modify_request_url method. Using original URL.") + # ---- 结束 URL 修改钩子调用 ---- + api_request_context = APIRequestContext( method=method, # 使用从 _prepare_initial_request_data 获取的 method - url=final_url, + url=effective_url, # <--- 使用 effective_url path_params=current_path_params, query_params=current_q_params, headers=current_headers, @@ -1156,8 +1174,13 @@ class APITestOrchestrator: global_api_spec=global_api_spec ) endpoint_test_result.add_executed_test_case_result(executed_case_result) + if executed_case_result.status.value == TestResult.Status.FAILED.value: + # 红色 + self.logger.debug(f"\033[91m ❌ 测试用例 '{tc_class.id}' 执行失败。\033[0m") + else: + self.logger.debug(f"\033[92m ✅ 测试用例 '{tc_class.id}' 执行成功。\033[0m") self.logger.debug(f"测试用例 '{tc_class.id}' 执行完毕,状态: {executed_case_result.status.value}") - + endpoint_test_result.finalize_endpoint_test() self.logger.info(f"端点 '{endpoint_id}' 测试完成,最终状态: {endpoint_test_result.overall_status.value}") diff --git a/log.txt b/log.txt index 3f11ff4..85177d8 100644 --- a/log.txt +++ b/log.txt @@ -1,298 +1,311 @@ -2025-05-21 17:04:17,210 - __main__ - DEBUG - 已启用详细日志模式 -2025-05-21 17:04:17,210 - __main__ - INFO - args.api_key: sk-0213c70194624703a1d0d80e0f762b0e -2025-05-21 17:04:17,210 - ddms_compliance_suite.test_orchestrator - INFO - 初始化 TestCaseRegistry,扫描目录: ./custom_testcases -2025-05-21 17:04:17,210 - ddms_compliance_suite.test_case_registry - INFO - 开始从目录 './custom_testcases' 发现测试用例... -2025-05-21 17:04:17,210 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-HEADER-001' (检查响应中是否存在 'X-Request-ID' 头) 来自类 'HeaderExistenceCheck' -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 2 个独特的测试用例 (基于ID)。发现 2 个测试用例类。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - TestCaseRegistry 初始化完成,发现 2 个测试用例类。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - LLMService 已成功初始化,模型: qwen-plus。 -2025-05-21 17:04:17,211 - __main__ - INFO - 从Swagger文件运行测试: assets/doc/井筒API示例swagger_fixed_simple.json -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - 从Swagger文件加载API定义: assets/doc/井筒API示例swagger_fixed_simple.json -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口) -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,211 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} -2025-05-21 17:04:17,211 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'schema' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'schema', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'schema'): example_string -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,211 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,268 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/message/push/example_string/example_string 的响应中找到。 -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,268 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。 -2025-05-21 17:04:17,268 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的LLM参数。 -2025-05-21 17:04:17,268 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,310 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/message/push/example_string/example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询) -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,310 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} -2025-05-21 17:04:17,310 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '交换模型版本', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'version': 'example_string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'pageNo' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'pageNo', 'in': 'query', 'required': False, 'description': '页码(从1开始)', 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'pageNo'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'pageSize' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'pageSize', 'in': 'query', 'required': False, 'description': '分页大小(最大值200)', 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'pageSize'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'pageNo': 'example_string', 'pageSize': 'example_string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,310 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'version': 'example_string'}, query_params={'pageNo': 'example_string', 'pageSize': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,353 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string 的响应中找到。 -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,353 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。 -2025-05-21 17:04:17,353 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的LLM参数。 -2025-05-21 17:04:17,353 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'version': 'example_string'}, query_params={'pageNo': 'example_string', 'pageSize': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,390 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改) -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,391 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit -2025-05-21 17:04:17,391 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'query', 'required': True, 'description': '主键id的key', 'type': 'string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'id'): example_string -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'id': 'example_string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,391 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=PUT, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,406 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,406 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 -2025-05-21 17:04:17,406 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 -2025-05-21 17:04:17,406 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=PUT, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,427 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除) -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,427 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit -2025-05-21 17:04:17,427 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'query', 'required': True, 'description': '主键id的key', 'type': 'string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'id'): example_string -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'id': 'example_string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,427 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=DELETE, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,443 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,443 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 -2025-05-21 17:04:17,443 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 -2025-05-21 17:04:17,443 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=DELETE, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,457 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加) -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,457 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit -2025-05-21 17:04:17,457 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 -2025-05-21 17:04:17,457 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,458 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,473 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,473 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 -2025-05-21 17:04:17,473 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 -2025-05-21 17:04:17,473 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,489 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情) -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,489 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} -2025-05-21 17:04:17,489 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 准备初始请求数据 (TC: TC-HEADER-001) -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的参数未在缓存中找到,开始生成。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '交换模型版本', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'id'): example_string -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的参数已生成并存入缓存。 -2025-05-21 17:04:17,489 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=GET, path_params={'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,502 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string/example_string 的响应中找到。 -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: -2025-05-21 17:04:17,502 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。 -2025-05-21 17:04:17,502 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 准备初始请求数据 (TC: TC-STATUS-001) -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的LLM参数。 -2025-05-21 17:04:17,502 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=GET, path_params={'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType -2025-05-21 17:04:17,518 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string/example_string -2025-05-21 17:04:17,518 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 -2025-05-21 17:04:17,518 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 测试完成,最终状态: 部分成功 -2025-05-21 17:04:17,519 - __main__ - INFO - 测试结果已保存为JSON: test_report.json +2025-05-21 18:30:41,316 - __main__ - DEBUG - 已启用详细日志模式 +2025-05-21 18:30:41,316 - __main__ - INFO - args.api_key: sk-0213c70194624703a1d0d80e0f762b0e +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_orchestrator - INFO - 初始化 TestCaseRegistry,扫描目录: ./custom_testcases +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - INFO - 开始从目录 './custom_testcases' 发现测试用例... +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - DEBUG - 成功导入模块: basic_checks 从 ./custom_testcases/basic_checks.py +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-HEADER-001' (检查响应中是否存在 'X-Request-ID' 头) 来自类 'HeaderExistenceCheck' +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - INFO - 已注册测试用例: 'TC-STATUS-001' (基本状态码 200 检查) 来自类 'StatusCode200Check' +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - INFO - 已根据 execution_order (主要) 和类名 (次要) 对 2 个测试用例类进行了排序。 +2025-05-21 18:30:41,316 - ddms_compliance_suite.test_case_registry - INFO - 测试用例发现完成。总共注册了 2 个独特的测试用例 (基于ID)。发现并排序了 2 个测试用例类。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - TestCaseRegistry 初始化完成,发现 2 个测试用例类。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.llm_utils.llm_service - INFO - LLMService initialized for model 'qwen-plus' at https://dashscope.aliyuncs.com/compatible-mode/v1 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - LLMService 已成功初始化,模型: qwen-plus。 +2025-05-21 18:30:41,317 - __main__ - INFO - 从Swagger文件运行测试: assets/doc/井筒API示例swagger_fixed_simple.json +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - 从Swagger文件加载API定义: assets/doc/井筒API示例swagger_fixed_simple.json +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} (数据推送接口) +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}'。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,317 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} +2025-05-21 18:30:41,317 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'schema' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'schema', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'schema'): example_string +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,317 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,318 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,318 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,318 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,390 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/message/push/example_string/example_string 的响应中找到。 +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,390 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 初始化。 +2025-05-21 18:30:41,390 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version} 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 的LLM参数。 +2025-05-21 18:30:41,390 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'schema': 'example_string', 'version': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,491 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/message/push/example_string/example_string +2025-05-21 18:30:41,491 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,491 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} (地质单元列表查询) +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}'。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,492 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} +2025-05-21 18:30:41,492 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '交换模型版本', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'version': 'example_string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'pageNo' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'pageNo', 'in': 'query', 'required': False, 'description': '页码(从1开始)', 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'pageNo'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'pageSize' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'pageSize', 'in': 'query', 'required': False, 'description': '分页大小(最大值200)', 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'pageSize'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'pageNo': 'example_string', 'pageSize': 'example_string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,492 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'version': 'example_string'}, query_params={'pageNo': 'example_string', 'pageSize': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,517 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string 的响应中找到。 +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,518 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 初始化。 +2025-05-21 18:30:41,518 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version} 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 的LLM参数。 +2025-05-21 18:30:41,518 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string', 'version': 'example_string'}, query_params={'pageNo': 'example_string', 'pageSize': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,539 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据修改) +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,539 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit +2025-05-21 18:30:41,539 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'query', 'required': True, 'description': '主键id的key', 'type': 'string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'id'): example_string +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'id': 'example_string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,539 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=PUT, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,557 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,557 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 +2025-05-21 18:30:41,557 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'PUT_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 +2025-05-21 18:30:41,557 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=PUT, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,578 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据删除) +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,578 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit +2025-05-21 18:30:41,578 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为查询参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 query 参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('query' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'query', 'required': True, 'description': '主键id的key', 'type': 'string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: query parameter 'id'): example_string +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 query 参数: {'id': 'example_string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,578 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=DELETE, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,604 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,604 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 +2025-05-21 18:30:41,604 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'DELETE_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 +2025-05-21 18:30:41,604 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=DELETE, path_params={'dms_instance_code': 'example_string'}, query_params={'id': 'example_string'}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,624 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: POST /api/dms/{dms_instance_code}/v1/cd_geo_unit (地质单元数据添加) +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit'。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,624 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit +2025-05-21 18:30:41,624 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string'} +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,624 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,639 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit 的响应中找到。 +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,639 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 初始化。 +2025-05-21 18:30:41,639 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'POST_/api/dms/{dms_instance_code}/v1/cd_geo_unit' 的LLM参数。 +2025-05-21 18:30:41,639 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=POST, path_params={'dms_instance_code': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,656 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'POST /api/dms/{dms_instance_code}/v1/cd_geo_unit' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - 开始为端点测试: GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} (地质单元查询详情) +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-HEADER-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_case_registry - DEBUG - 测试用例 'TC-STATUS-001' 适用于端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}'。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 发现了 2 个适用的测试用例: ['TC-HEADER-001', 'TC-STATUS-001'] +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-HEADER-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,656 - testcase.TC-HEADER-001 - INFO - 测试用例 TC-HEADER-001 (检查响应中是否存在 'X-Request-ID' 头) 已初始化 for endpoint /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} +2025-05-21 18:30:41,656 - testcase.TC-HEADER-001 - INFO - 开始执行测试用例 'TC-HEADER-001' for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 准备初始请求数据 (TC: TC-HEADER-001) +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的参数未在缓存中找到,开始生成。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为路径参数。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 path 参数。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'dms_instance_code' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'dms_instance_code', 'in': 'path', 'description': '注册实例code\n井筒中心 well_kd_wellbore_ideas01', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'dms_instance_code'): example_string +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'version' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'version', 'in': 'path', 'description': '交换模型版本', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'version'): example_string +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'id' ('path' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'id', 'in': 'path', 'description': '', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: path parameter 'id'): example_string +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 path 参数: {'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 没有定义 query 参数。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法或LLM未启用,为头部参数。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 使用常规方法生成 header 参数。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'tenant-id' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'tenant-id', 'in': 'header', 'description': 'tenant-id (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'tenant-id'): example_string +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 参数 'Authorization' ('header' 类型) 缺少嵌套 'schema' 字段,尝试从顶层 'type' 构建临时schema用于常规生成。 Param spec: {'name': 'Authorization', 'in': 'header', 'description': 'Authorization (Only:undefined)', 'required': True, 'type': 'string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - 生成 string 类型数据 ('') for (context: header parameter 'Authorization'): example_string +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 常规方法生成的 header 参数: {'tenant-id': 'example_string', 'Authorization': 'example_string'} +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点没有定义请求体。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - INFO - [] 端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的参数已生成并存入缓存。 +2025-05-21 18:30:41,656 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (新生成) 准备的请求数据: method=GET, path_params={'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,674 - testcase.TC-HEADER-001 - WARNING - 请求头 'X-Request-ID' 未在 http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string/example_string 的响应中找到。 +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - DEBUG -  ❌ 测试用例 'TC-HEADER-001' 执行失败。 +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-HEADER-001' 执行完毕,状态: 失败 +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - DEBUG - 准备执行测试用例 'TC-STATUS-001' for 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - DEBUG - Manually converting endpoint_spec of type SwaggerEndpoint to dict. +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - WARNING - global_api_spec无法转换为字典,实际类型: +2025-05-21 18:30:41,674 - testcase.TC-STATUS-001 - INFO - 测试用例 TC-STATUS-001 (基本状态码 200 检查) 已针对端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 初始化。 +2025-05-21 18:30:41,674 - testcase.TC-STATUS-001 - INFO - 开始执行测试用例 'TC-STATUS-001' for endpoint 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - INFO - [] 开始为端点 GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id} 准备初始请求数据 (TC: TC-STATUS-001) +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - INFO - [] 从缓存加载了端点 'GET_/api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 的LLM参数。 +2025-05-21 18:30:41,674 - ddms_compliance_suite.test_orchestrator - DEBUG - [] (缓存加载) 准备的请求数据: method=GET, path_params={'dms_instance_code': 'example_string', 'version': 'example_string', 'id': 'example_string'}, query_params={}, headers=['Accept', 'tenant-id', 'Authorization'], body_type=NoneType +2025-05-21 18:30:41,691 - testcase.TC-STATUS-001 - INFO - 状态码验证通过: 200 == 200 for http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_string/v1/cd_geo_unit/example_string/example_string +2025-05-21 18:30:41,691 - ddms_compliance_suite.test_orchestrator - DEBUG -  ✅ 测试用例 'TC-STATUS-001' 执行成功。 +2025-05-21 18:30:41,691 - ddms_compliance_suite.test_orchestrator - DEBUG - 测试用例 'TC-STATUS-001' 执行完毕,状态: 通过 +2025-05-21 18:30:41,691 - ddms_compliance_suite.test_orchestrator - INFO - 端点 'GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}' 测试完成,最终状态: 部分成功 +2025-05-21 18:30:41,692 - __main__ - INFO - 测试结果已保存为JSON: test_report.json ===== 测试运行摘要 ===== -开始时间: 2025-05-21T17:04:17.211454 -结束时间: 2025-05-21T17:04:17.518522 -总耗时: 0.31 秒 +开始时间: 2025-05-21T18:30:41.317570 +结束时间: 2025-05-21T18:30:41.691839 +总耗时: 0.37 秒 --- 端点统计 --- 定义的端点总数: 6 diff --git a/test_report.json b/test_report.json index 76d0d80..c623338 100644 --- a/test_report.json +++ b/test_report.json @@ -1,7 +1,7 @@ { "summary_metadata": { - "start_time": "2025-05-21T17:04:17.211454", - "end_time": "2025-05-21T17:04:17.518522", + "start_time": "2025-05-21T18:30:56.368119", + "end_time": "2025-05-21T18:30:56.681215", "duration_seconds": "0.31" }, "endpoint_stats": { @@ -28,9 +28,9 @@ "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}", "endpoint_name": "数据推送接口", "overall_status": "部分成功", - "duration_seconds": 0.098617, - "start_time": "2025-05-21T17:04:17.211570", - "end_time": "2025-05-21T17:04:17.310187", + "duration_seconds": 0.089518, + "start_time": "2025-05-21T18:30:56.368227", + "end_time": "2025-05-21T18:30:56.457745", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -38,8 +38,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.05682086944580078, - "timestamp": "2025-05-21T17:04:17.268429", + "duration_seconds": 0.06334280967712402, + "timestamp": "2025-05-21T18:30:56.431606", "validation_points": [ { "expected_header": "X-Request-ID", @@ -62,8 +62,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.04161787033081055, - "timestamp": "2025-05-21T17:04:17.310103", + "duration_seconds": 0.026033878326416016, + "timestamp": "2025-05-21T18:30:56.457700", "validation_points": [ { "passed": true, @@ -77,9 +77,9 @@ "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}", "endpoint_name": "地质单元列表查询", "overall_status": "部分成功", - "duration_seconds": 0.080731, - "start_time": "2025-05-21T17:04:17.310299", - "end_time": "2025-05-21T17:04:17.391030", + "duration_seconds": 0.041726, + "start_time": "2025-05-21T18:30:56.457776", + "end_time": "2025-05-21T18:30:56.499502", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -87,8 +87,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.043160200119018555, - "timestamp": "2025-05-21T17:04:17.353522", + "duration_seconds": 0.022691011428833008, + "timestamp": "2025-05-21T18:30:56.480802", "validation_points": [ { "expected_header": "X-Request-ID", @@ -111,8 +111,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.037424325942993164, - "timestamp": "2025-05-21T17:04:17.391001", + "duration_seconds": 0.01860499382019043, + "timestamp": "2025-05-21T18:30:56.499463", "validation_points": [ { "passed": true, @@ -126,9 +126,9 @@ "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_name": "地质单元数据修改", "overall_status": "部分成功", - "duration_seconds": 0.036219, - "start_time": "2025-05-21T17:04:17.391064", - "end_time": "2025-05-21T17:04:17.427283", + "duration_seconds": 0.03492, + "start_time": "2025-05-21T18:30:56.499530", + "end_time": "2025-05-21T18:30:56.534450", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -136,8 +136,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.015516281127929688, - "timestamp": "2025-05-21T17:04:17.406630", + "duration_seconds": 0.01642608642578125, + "timestamp": "2025-05-21T18:30:56.515996", "validation_points": [ { "expected_header": "X-Request-ID", @@ -160,8 +160,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.02056288719177246, - "timestamp": "2025-05-21T17:04:17.427253", + "duration_seconds": 0.018361806869506836, + "timestamp": "2025-05-21T18:30:56.534410", "validation_points": [ { "passed": true, @@ -175,9 +175,9 @@ "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_name": "地质单元数据删除", "overall_status": "部分成功", - "duration_seconds": 0.030476, - "start_time": "2025-05-21T17:04:17.427316", - "end_time": "2025-05-21T17:04:17.457792", + "duration_seconds": 0.035115, + "start_time": "2025-05-21T18:30:56.534480", + "end_time": "2025-05-21T18:30:56.569595", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -185,8 +185,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.01640176773071289, - "timestamp": "2025-05-21T17:04:17.443764", + "duration_seconds": 0.019882917404174805, + "timestamp": "2025-05-21T18:30:56.554426", "validation_points": [ { "expected_header": "X-Request-ID", @@ -209,8 +209,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.013955831527709961, - "timestamp": "2025-05-21T17:04:17.457768", + "duration_seconds": 0.015078067779541016, + "timestamp": "2025-05-21T18:30:56.569559", "validation_points": [ { "passed": true, @@ -224,9 +224,9 @@ "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_name": "地质单元数据添加", "overall_status": "部分成功", - "duration_seconds": 0.03182, - "start_time": "2025-05-21T17:04:17.457819", - "end_time": "2025-05-21T17:04:17.489639", + "duration_seconds": 0.033789, + "start_time": "2025-05-21T18:30:56.569621", + "end_time": "2025-05-21T18:30:56.603410", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -234,8 +234,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.015901803970336914, - "timestamp": "2025-05-21T17:04:17.473765", + "duration_seconds": 0.01661515235900879, + "timestamp": "2025-05-21T18:30:56.586277", "validation_points": [ { "expected_header": "X-Request-ID", @@ -258,8 +258,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.015805959701538086, - "timestamp": "2025-05-21T17:04:17.489614", + "duration_seconds": 0.017055988311767578, + "timestamp": "2025-05-21T18:30:56.603376", "validation_points": [ { "passed": true, @@ -273,9 +273,9 @@ "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}", "endpoint_name": "地质单元查询详情", "overall_status": "部分成功", - "duration_seconds": 0.028834, - "start_time": "2025-05-21T17:04:17.489670", - "end_time": "2025-05-21T17:04:17.518504", + "duration_seconds": 0.077762, + "start_time": "2025-05-21T18:30:56.603434", + "end_time": "2025-05-21T18:30:56.681196", "executed_test_cases": [ { "test_case_id": "TC-HEADER-001", @@ -283,8 +283,8 @@ "test_case_severity": "中", "status": "失败", "message": "", - "duration_seconds": 0.013111114501953125, - "timestamp": "2025-05-21T17:04:17.502828", + "duration_seconds": 0.020492076873779297, + "timestamp": "2025-05-21T18:30:56.623967", "validation_points": [ { "expected_header": "X-Request-ID", @@ -307,8 +307,8 @@ "test_case_severity": "严重", "status": "通过", "message": "", - "duration_seconds": 0.015619039535522461, - "timestamp": "2025-05-21T17:04:17.518482", + "duration_seconds": 0.05701398849487305, + "timestamp": "2025-05-21T18:30:56.681140", "validation_points": [ { "passed": true,