From 156dcdfaf9eed11a8db35fd5157a0d31cf98fa4d Mon Sep 17 00:00:00 2001 From: gongwenxin Date: Mon, 19 May 2025 17:09:09 +0800 Subject: [PATCH] step2 --- .../__pycache__/basic_checks.cpython-312.pyc | Bin 0 -> 5343 bytes custom_testcases/basic_checks.py | 84 + .../test_case_registry.cpython-312.pyc | Bin 13758 -> 12963 bytes .../test_framework_core.cpython-312.pyc | Bin 9798 -> 9798 bytes .../test_orchestrator.cpython-312.pyc | Bin 30960 -> 47259 bytes .../__pycache__/caller.cpython-312.pyc | Bin 8450 -> 8450 bytes ddms_compliance_suite/test_orchestrator.py | 1355 +- run_api_tests.py | 54 +- test_report.json | 13650 ++++++++++++++++ 9 files changed, 14513 insertions(+), 630 deletions(-) create mode 100644 custom_testcases/__pycache__/basic_checks.cpython-312.pyc create mode 100644 custom_testcases/basic_checks.py create mode 100644 test_report.json diff --git a/custom_testcases/__pycache__/basic_checks.cpython-312.pyc b/custom_testcases/__pycache__/basic_checks.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a1ef0777f14540add9ee53397527001359831b95 GIT binary patch literal 5343 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 literal 0 HcmV?d00001 diff --git a/custom_testcases/basic_checks.py b/custom_testcases/basic_checks.py new file mode 100644 index 0000000..e2ed37f --- /dev/null +++ b/custom_testcases/basic_checks.py @@ -0,0 +1,84 @@ +from ddms_compliance_suite.test_framework_core import BaseAPITestCase, TestSeverity, ValidationResult, APIRequestContext, APIResponseContext +import logging + +class StatusCode200Check(BaseAPITestCase): + # 1. 元数据 + id = "TC-STATUS-001" + name = "基本状态码 200 检查" + description = "验证 API 响应状态码是否为 200 OK。" + severity = TestSeverity.CRITICAL + tags = ["status_code", "smoke_test"] + + # 适用于所有方法和路径 (默认) + # applicable_methods = None + # applicable_paths_regex = None + + def __init__(self, endpoint_spec: dict, global_api_spec: dict): + super().__init__(endpoint_spec, global_api_spec) + 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]: + results = [] + expected_status_code = 200 + actual_status_code = response_context.status_code + + if actual_status_code == expected_status_code: + results.append( + ValidationResult( + passed=True, + message=f"响应状态码为 {actual_status_code},符合预期 {expected_status_code}。" + ) + ) + self.logger.info(f"状态码验证通过: {actual_status_code} == {expected_status_code} for {request_context.url}") + else: + results.append( + ValidationResult( + passed=False, + message=f"期望状态码 {expected_status_code},但收到 {actual_status_code}。", + details={ + "expected_status": expected_status_code, + "actual_status": actual_status_code, + "request_url": request_context.url, + "response_body_sample": (response_context.text_content or "")[:200] # 包含部分响应体以帮助诊断 + } + ) + ) + self.logger.warning(f"状态码验证失败: 期望 {expected_status_code}, 实际 {actual_status_code} for {request_context.url}") + return results + +class HeaderExistenceCheck(BaseAPITestCase): + id = "TC-HEADER-001" + name = "检查响应中是否存在 'X-Request-ID' 头" + description = "验证 API 响应是否包含 'X-Request-ID' 头。" + severity = TestSeverity.MEDIUM + tags = ["header", "observability"] + + EXPECTED_HEADER = "X-Request-ID" # 示例,可以根据实际需要修改 + + def __init__(self, endpoint_spec: dict, global_api_spec: dict): + super().__init__(endpoint_spec, global_api_spec) + 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]: + results = [] + if self.EXPECTED_HEADER in response_context.headers: + results.append( + ValidationResult( + passed=True, + message=f"响应头中找到了期望的 '{self.EXPECTED_HEADER}'。" + ) + ) + self.logger.info(f"请求头 '{self.EXPECTED_HEADER}' 存在于 {request_context.url} 的响应中。") + else: + results.append( + ValidationResult( + passed=False, + message=f"响应头中未找到期望的 '{self.EXPECTED_HEADER}'。", + details={ + "expected_header": self.EXPECTED_HEADER, + "actual_headers": list(response_context.headers.keys()) + } + ) + ) + self.logger.warning(f"请求头 '{self.EXPECTED_HEADER}' 未在 {request_context.url} 的响应中找到。") + return results \ No newline at end of file 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 e8196b44eee707d0b0bbe05206dc85963cd2cf03..200cc4c642be996dc2aa37abfed63023a164f687 100644 GIT binary patch delta 3984 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 literal 30960 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 diff --git a/ddms_compliance_suite/api_caller/__pycache__/caller.cpython-312.pyc b/ddms_compliance_suite/api_caller/__pycache__/caller.cpython-312.pyc index 8def1a936d3d30d2beedcc6aa2677c10a50038c0..9933f7fe2fff769de690e31f34ff261d04190db9 100644 GIT binary patch delta 20 acmZp2YI5Q}&CAQh00h!+wKj5pR{#JvBn5~7 delta 20 acmZp2YI5Q}&CAQh00bA(RW@>eR{#Jw)djHt diff --git a/ddms_compliance_suite/test_orchestrator.py b/ddms_compliance_suite/test_orchestrator.py index 5bd12f0..fa336e4 100644 --- a/ddms_compliance_suite/test_orchestrator.py +++ b/ddms_compliance_suite/test_orchestrator.py @@ -7,7 +7,7 @@ import logging import json import time -from typing import Dict, List, Any, Optional, Union, Tuple +from typing import Dict, List, Any, Optional, Union, Tuple, Type from enum import Enum import datetime @@ -18,170 +18,300 @@ from .rule_repository.repository import RuleRepository from .rule_executor.executor import RuleExecutor from .models.rule_models import RuleQuery, TargetType, RuleCategory, RuleLifecycle, RuleScope from .models.config_models import RuleRepositoryConfig, RuleStorageConfig +from .test_framework_core import ValidationResult, TestSeverity, APIRequestContext, APIResponseContext, BaseAPITestCase +from .test_case_registry import TestCaseRegistry -class TestResult: - """测试结果类""" +class ExecutedTestCaseResult: + """存储单个APITestCase在其适用的端点上执行后的结果。""" class Status(str, Enum): - """测试状态枚举""" + """单个测试用例的执行状态枚举""" PASSED = "通过" FAILED = "失败" - ERROR = "错误" - SKIPPED = "跳过" + ERROR = "执行错误" # 指测试用例代码本身出错,而不是API验证失败 + SKIPPED = "跳过" # 如果测试用例因某些条件被跳过执行 def __init__(self, - endpoint_id: str, - endpoint_name: str, + test_case_id: str, + test_case_name: str, + test_case_severity: TestSeverity, status: Status, - message: str = "", - api_request: Optional[APIRequest] = None, - api_response: Optional[APIResponse] = None, - validation_details: Optional[Dict[str, Any]] = None, - elapsed_time: float = 0.0): - """ - 初始化测试结果 - - Args: - endpoint_id: API端点ID(通常是方法+路径的组合) - endpoint_name: API端点名称 - status: 测试状态 - message: 测试结果消息 - api_request: API请求对象 - api_response: API响应对象 - validation_details: 验证详情 - elapsed_time: 执行耗时(秒) - """ - self.endpoint_id = endpoint_id - self.endpoint_name = endpoint_name + validation_points: List[ValidationResult], + message: str = "", # 总体消息,例如执行错误时的错误信息 + duration: float = 0.0): + self.test_case_id = test_case_id + self.test_case_name = test_case_name + self.test_case_severity = test_case_severity self.status = status + self.validation_points = validation_points or [] self.message = message - self.api_request = api_request - self.api_response = api_response - self.validation_details = validation_details or {} - self.elapsed_time = elapsed_time + self.duration = duration # 执行此测试用例的耗时 self.timestamp = datetime.datetime.now() def to_dict(self) -> Dict[str, Any]: - """将测试结果转换为字典""" - result = { + return { + "test_case_id": self.test_case_id, + "test_case_name": self.test_case_name, + "test_case_severity": self.test_case_severity.value, # 使用枚举值 + "status": self.status.value, + "message": self.message, + "duration_seconds": self.duration, + "timestamp": self.timestamp.isoformat(), + "validation_points": [vp.details if vp.details else {"passed": vp.passed, "message": vp.message} for vp in self.validation_points] + } + +class TestResult: # 原来的 TestResult 被重构为 EndpointExecutionResult + """ + 存储对单个API端点执行所有适用APITestCase后的整体测试结果。 + (此类替换了旧的 TestResult 的角色,并进行了结构调整) + """ + class Status(str, Enum): # 这个枚举保持不变,但其含义现在是端点的整体状态 + """端点测试状态枚举""" + PASSED = "通过" # 所有关键测试用例通过 + FAILED = "失败" # 任何一个关键测试用例失败 + ERROR = "错误" # 测试执行过程中出现错误(非API本身错误,而是测试代码或环境) + SKIPPED = "跳过" # 如果整个端点的测试被跳过 + PARTIAL_SUCCESS = "部分成功" # 一些非关键测试用例失败,但关键的通过 + + def __init__(self, + endpoint_id: str, # 通常是 method + path + endpoint_name: str, # API 的可读名称/标题 + # api_spec_details: Dict[str, Any], # 包含该端点从YAPI/Swagger解析的原始信息,可选 + overall_status: Status = Status.SKIPPED, # 默认为跳过,后续根据测试用例结果更新 + start_time: Optional[datetime.datetime] = None + ): + self.endpoint_id = endpoint_id + self.endpoint_name = endpoint_name + # self.api_spec_details = api_spec_details + self.overall_status = overall_status + self.executed_test_cases: List[ExecutedTestCaseResult] = [] + self.start_time = start_time if start_time else datetime.datetime.now() + self.end_time: Optional[datetime.datetime] = None + self.error_message: Optional[str] = None # 如果整个端点测试出错,记录错误信息 + + def add_executed_test_case_result(self, result: ExecutedTestCaseResult): + self.executed_test_cases.append(result) + + def finalize_endpoint_test(self): + self.end_time = datetime.datetime.now() + # 根据所有 executed_test_cases 的状态和严重性来计算 overall_status + if not self.executed_test_cases and self.overall_status == TestResult.Status.SKIPPED : # 如果没有执行任何测试用例且状态仍为初始的SKIPPED + pass # 保持 SKIPPED + elif any(tc.status == ExecutedTestCaseResult.Status.ERROR for tc in self.executed_test_cases): + self.overall_status = TestResult.Status.ERROR + # 可以考虑将第一个遇到的ERROR的message赋给self.error_message + first_error = next((tc.message for tc in self.executed_test_cases if tc.status == ExecutedTestCaseResult.Status.ERROR), None) + if first_error: + self.error_message = f"测试用例执行错误: {first_error}" + else: + # 筛选出失败的测试用例 + failed_tcs = [tc for tc in self.executed_test_cases if tc.status == ExecutedTestCaseResult.Status.FAILED] + if not failed_tcs: + if not self.executed_test_cases: # 如果没有执行任何测试用例但又不是SKIPPED,可能也算某种形式的错误或特殊通过 + self.overall_status = TestResult.Status.PASSED # 或者定义一个"NO_CASES_RUN"状态 + else: + self.overall_status = TestResult.Status.PASSED + else: + # 检查失败的测试用例中是否有CRITICAL或HIGH严重级别的 + if any(tc.test_case_severity in [TestSeverity.CRITICAL, TestSeverity.HIGH] for tc in failed_tcs): + self.overall_status = TestResult.Status.FAILED + else: # 所有失败的都是 MEDIUM, LOW, INFO + self.overall_status = TestResult.Status.PARTIAL_SUCCESS + + if not self.executed_test_cases and self.overall_status not in [TestResult.Status.SKIPPED, TestResult.Status.ERROR]: + # 如果没有执行测试用例,并且不是因为错误或明确跳过,这可能是一个配置问题或意外情况 + self.overall_status = TestResult.Status.ERROR # 或者一个更特定的状态 + self.error_message = "没有为该端点找到或执行任何适用的测试用例。" + + + @property + def duration(self) -> float: + if self.start_time and self.end_time: + return (self.end_time - self.start_time).total_seconds() + return 0.0 + + def to_dict(self) -> Dict[str, Any]: + data = { "endpoint_id": self.endpoint_id, "endpoint_name": self.endpoint_name, - "status": self.status, - "message": self.message, - "elapsed_time": self.elapsed_time, - "timestamp": self.timestamp.isoformat(), + "overall_status": self.overall_status.value, + "duration_seconds": self.duration, + "start_time": self.start_time.isoformat() if self.start_time else None, + "end_time": self.end_time.isoformat() if self.end_time else None, + "executed_test_cases": [tc.to_dict() for tc in self.executed_test_cases] } - - if self.api_request: - result["api_request"] = { - "method": self.api_request.method, - "url": str(self.api_request.url), - "params": self.api_request.params, - "body": self.api_request.json_data - } - - if self.api_response: - result["api_response"] = { - "status_code": self.api_response.status_code, - "content": self.api_response.json_content if self.api_response.json_content else str(self.api_response.content), - "elapsed_time": self.api_response.elapsed_time - } - - if self.validation_details: - result["validation_details"] = self.validation_details - - return result + if self.error_message: + data["error_message"] = self.error_message + return data class TestSummary: - """测试结果摘要""" + """测试结果摘要 (已更新以适应新的结果结构)""" def __init__(self): - """初始化测试结果摘要""" - self.total = 0 - self.passed = 0 - self.failed = 0 - self.error = 0 - self.skipped = 0 + self.total_endpoints_defined: int = 0 # YAPI/Swagger中定义的端点总数 + self.total_endpoints_tested: int = 0 # 实际执行了测试的端点数量 (至少有一个测试用例被执行) + + self.endpoints_passed: int = 0 + self.endpoints_failed: int = 0 + self.endpoints_partial_success: int = 0 + self.endpoints_error: int = 0 + self.endpoints_skipped: int = 0 # 由于配置或过滤器,整个端点被跳过测试 + + self.total_test_cases_applicable: int = 0 # 所有端点上适用测试用例的总和 + self.total_test_cases_executed: int = 0 # 所有端点上实际执行的测试用例总数 + self.test_cases_passed: int = 0 + self.test_cases_failed: int = 0 + self.test_cases_error: int = 0 # 测试用例代码本身出错 + self.test_cases_skipped_in_endpoint: int = 0 # 测试用例在端点执行中被跳过 + self.start_time = datetime.datetime.now() self.end_time: Optional[datetime.datetime] = None - self.results: List[TestResult] = [] + self.detailed_results: List[TestResult] = [] # 将存储新的 TestResult (EndpointExecutionResult) 对象 + + def add_endpoint_result(self, result: TestResult): # result 现在是新的 TestResult 类型 + self.detailed_results.append(result) - def add_result(self, result: TestResult): - """添加测试结果""" - self.total += 1 + if result.executed_test_cases or result.overall_status not in [TestResult.Status.SKIPPED, TestResult.Status.ERROR]: # 只有实际尝试了测试的端点才算tested + if not (len(result.executed_test_cases) == 0 and result.overall_status == TestResult.Status.ERROR and result.error_message and "没有为该端点找到或执行任何适用的测试用例" in result.error_message): + self.total_endpoints_tested +=1 + + if result.overall_status == TestResult.Status.PASSED: + self.endpoints_passed += 1 + elif result.overall_status == TestResult.Status.FAILED: + self.endpoints_failed += 1 + elif result.overall_status == TestResult.Status.PARTIAL_SUCCESS: + self.endpoints_partial_success +=1 + elif result.overall_status == TestResult.Status.ERROR: + self.endpoints_error += 1 + elif result.overall_status == TestResult.Status.SKIPPED: # 端点级别跳过 + self.endpoints_skipped +=1 + + for tc_result in result.executed_test_cases: + self.total_test_cases_executed += 1 # 每个APITestCase算一次执行 + if tc_result.status == ExecutedTestCaseResult.Status.PASSED: + self.test_cases_passed += 1 + elif tc_result.status == ExecutedTestCaseResult.Status.FAILED: + self.test_cases_failed += 1 + elif tc_result.status == ExecutedTestCaseResult.Status.ERROR: + self.test_cases_error +=1 + elif tc_result.status == ExecutedTestCaseResult.Status.SKIPPED: + self.test_cases_skipped_in_endpoint +=1 + + def set_total_endpoints_defined(self, count: int): + self.total_endpoints_defined = count - if result.status == TestResult.Status.PASSED: - self.passed += 1 - elif result.status == TestResult.Status.FAILED: - self.failed += 1 - elif result.status == TestResult.Status.ERROR: - self.error += 1 - elif result.status == TestResult.Status.SKIPPED: - self.skipped += 1 - - self.results.append(result) - - def finalize(self): - """完成测试,记录结束时间""" + def set_total_test_cases_applicable(self, count: int): + self.total_test_cases_applicable = count + + def finalize_summary(self): self.end_time = datetime.datetime.now() @property def duration(self) -> float: - """测试持续时间(秒)""" if not self.end_time: return 0.0 - return (self.end_time - self.start_time).total_seconds() @property - def success_rate(self) -> float: - """测试成功率""" - if self.total == 0: + def endpoint_success_rate(self) -> float: + if self.total_endpoints_tested == 0: return 0.0 + # 通常只把 PASSED 算作成功 + return (self.endpoints_passed / self.total_endpoints_tested) * 100 - return self.passed / self.total * 100 + @property + def test_case_success_rate(self) -> float: + if self.total_test_cases_executed == 0: + return 0.0 + return (self.test_cases_passed / self.total_test_cases_executed) * 100 def to_dict(self) -> Dict[str, Any]: - """将测试结果摘要转换为字典""" return { - "total": self.total, - "passed": self.passed, - "failed": self.failed, - "error": self.error, - "skipped": self.skipped, - "success_rate": f"{self.success_rate:.2f}%", + "summary_metadata": { "start_time": self.start_time.isoformat(), "end_time": self.end_time.isoformat() if self.end_time else None, - "duration": f"{self.duration:.2f}秒", - "results": [result.to_dict() for result in self.results] + "duration_seconds": f"{self.duration:.2f}", + }, + "endpoint_stats": { + "total_defined": self.total_endpoints_defined, + "total_tested": self.total_endpoints_tested, + "passed": self.endpoints_passed, + "failed": self.endpoints_failed, + "partial_success": self.endpoints_partial_success, + "error": self.endpoints_error, + "skipped": self.endpoints_skipped, + "success_rate_percentage": f"{self.endpoint_success_rate:.2f}", + }, + "test_case_stats": { + "total_applicable": self.total_test_cases_applicable, # 计划执行的测试用例总数 + "total_executed": self.total_test_cases_executed, # 实际执行的测试用例总数 + "passed": self.test_cases_passed, + "failed": self.test_cases_failed, + "error_in_execution": self.test_cases_error, + "skipped_during_endpoint_execution": self.test_cases_skipped_in_endpoint, + "success_rate_percentage": f"{self.test_case_success_rate:.2f}", + }, + "detailed_results": [result.to_dict() for result in self.detailed_results] } def to_json(self, pretty=True) -> str: - """将测试结果摘要转换为JSON字符串""" indent = 2 if pretty else None return json.dumps(self.to_dict(), indent=indent, ensure_ascii=False) + + def print_summary_to_console(self): # Renamed from print_summary + # (Implementation can be more detailed based on the new stats) + print("\\n===== 测试运行摘要 =====") + print(f"开始时间: {self.start_time.isoformat()}") + if self.end_time: + print(f"结束时间: {self.end_time.isoformat()}") + print(f"总耗时: {self.duration:.2f} 秒") - def print_summary(self): - """打印测试结果摘要""" - print(f"\n测试结果摘要:") - print(f"总测试数: {self.total}") - print(f"通过: {self.passed}") - print(f"失败: {self.failed}") - print(f"错误: {self.error}") - print(f"跳过: {self.skipped}") - print(f"成功率: {self.success_rate:.2f}%") - print(f"总耗时: {self.duration:.2f}秒") + print("\\n--- 端点统计 ---") + print(f"定义的端点总数: {self.total_endpoints_defined}") + print(f"实际测试的端点数: {self.total_endpoints_tested}") + print(f" 通过: {self.endpoints_passed}") + print(f" 失败: {self.endpoints_failed}") + print(f" 部分成功: {self.endpoints_partial_success}") + print(f" 执行错误: {self.endpoints_error}") + print(f" 跳过执行: {self.endpoints_skipped}") + print(f" 端点通过率: {self.endpoint_success_rate:.2f}%") + + print("\\n--- 测试用例统计 ---") + print(f"适用的测试用例总数 (计划执行): {self.total_test_cases_applicable}") + print(f"实际执行的测试用例总数: {self.total_test_cases_executed}") + print(f" 通过: {self.test_cases_passed}") + print(f" 失败: {self.test_cases_failed}") + print(f" 执行错误 (测试用例代码问题): {self.test_cases_error}") + print(f" 跳过 (在端点内被跳过): {self.test_cases_skipped_in_endpoint}") + print(f" 测试用例通过率: {self.test_case_success_rate:.2f}%") + + # 可选:打印失败的端点和测试用例摘要 + failed_endpoints = [res for res in self.detailed_results if res.overall_status == TestResult.Status.FAILED] + if failed_endpoints: + print("\\n--- 失败的端点摘要 ---") + for ep_res in failed_endpoints: + print(f" 端点: {ep_res.endpoint_id} ({ep_res.endpoint_name}) - 状态: {ep_res.overall_status.value}") + for tc_res in ep_res.executed_test_cases: + if tc_res.status == ExecutedTestCaseResult.Status.FAILED: + print(f" - 测试用例失败: {tc_res.test_case_id} ({tc_res.test_case_name})") + for vp in tc_res.validation_points: + if not vp.passed: + print(f" - 验证点: {vp.message}") class APITestOrchestrator: """API测试编排器""" - def __init__(self, base_url: str, rule_repo_path: str = "./rules"): + def __init__(self, base_url: str, + rule_repo_path: str = "./rules", # 旧规则引擎的规则库路径 + custom_test_cases_dir: Optional[str] = None # 新的自定义测试用例目录路径 + ): """ 初始化API测试编排器 Args: base_url: API基础URL - rule_repo_path: 规则库路径 + rule_repo_path: (旧)规则库路径 + custom_test_cases_dir: 存放自定义 APITestCase 的目录路径。如果为 None,则不加载自定义测试用例。 """ self.base_url = base_url.rstrip('/') self.logger = logging.getLogger(__name__) @@ -189,536 +319,512 @@ class APITestOrchestrator: # 初始化组件 self.parser = InputParser() self.api_caller = APICaller() - self.validator = JSONSchemaValidator() + self.validator = JSONSchemaValidator() # JSON Schema 验证器,可能会被测试用例内部使用 - # 初始化规则库和规则执行器 + # 初始化 (旧) 规则库和规则执行器 + # 未来可以考虑是否完全移除或将其功能也通过 APITestCase 实现 rule_config = RuleRepositoryConfig( storage=RuleStorageConfig(path=rule_repo_path) ) self.rule_repo = RuleRepository(rule_config) self.rule_executor = RuleExecutor(self.rule_repo) - def _build_api_request(self, endpoint: Union[YAPIEndpoint, SwaggerEndpoint]) -> Tuple[APIRequest, Dict[str, Any]]: - """ - 构建API请求对象 - - Args: - endpoint: API端点对象 - - Returns: - Tuple[APIRequest, Dict[str, Any]]: API请求对象和测试数据 - """ - # 获取端点信息 - if hasattr(endpoint, 'method'): - method = endpoint.method - else: - method = "GET" # 默认方法 - - if hasattr(endpoint, 'path'): - path = endpoint.path - else: - path = "/" # 默认路径 - - # 替换路径中的参数占位符 - path_params = {} - if "{" in path and "}" in path: - # 查找路径中的所有参数 - import re - param_matches = re.findall(r'\{([^}]+)\}', path) - - for param in param_matches: - # 生成一个随机值作为参数 - path_params[param] = f"test_{param}" - - # 查找请求参数 - params = {} - headers = {"Content-Type": "application/json", "Accept": "application/json"} - body = None - - # YAPI端点特有属性 - if hasattr(endpoint, 'req_headers') and endpoint.req_headers: - for header in endpoint.req_headers: - if 'name' in header and 'value' in header: - headers[header['name']] = header['value'] - - if hasattr(endpoint, 'req_query') and endpoint.req_query: - for query in endpoint.req_query: - if 'name' in query: - params[query['name']] = query.get('value', '') - - if hasattr(endpoint, 'req_body_type') and endpoint.req_body_type == 'json' and hasattr(endpoint, 'req_body_other'): + # 初始化 (新) 测试用例注册表 + self.test_case_registry: Optional[TestCaseRegistry] = None + if custom_test_cases_dir: + self.logger.info(f"初始化 TestCaseRegistry,扫描目录: {custom_test_cases_dir}") try: - # 如果req_body_other是JSON字符串,它可能包含请求体schema - req_body_schema = json.loads(endpoint.req_body_other) if isinstance(endpoint.req_body_other, str) else None - if req_body_schema and isinstance(req_body_schema, dict): - # 使用schema生成请求体 - body = self._generate_data_from_schema(req_body_schema) - else: - # 如果不是有效的schema,使用它作为请求体示例 - body = req_body_schema - except json.JSONDecodeError: - # 如果解析失败,使用一个默认的请求体 - self.logger.warning(f"无法解析YAPI请求体JSON: {endpoint.req_body_other}") - body = {"test": "data"} - - # Swagger端点特有属性 - if hasattr(endpoint, 'parameters') and endpoint.parameters: - for param in endpoint.parameters: - param_in = param.get('in', '') - param_name = param.get('name', '') - param_schema = param.get('schema', {}) - - if not param_name: - continue - - # 生成参数值,优先使用example - param_value = param.get('example', None) - if param_value is None and param_schema: - param_value = self._generate_data_from_schema(param_schema) - - if param_value is None: - # 使用默认值 - param_value = param.get('default', 'test_value') - - if param_in == 'query': - params[param_name] = param_value - elif param_in == 'header': - headers[param_name] = str(param_value) - elif param_in == 'path' and param_name in path_params: - path_params[param_name] = str(param_value) - - if hasattr(endpoint, 'request_body') and endpoint.request_body: - content = endpoint.request_body.get('content', {}) - json_content = content.get('application/json', {}) - - if 'example' in json_content: - body = json_content['example'] - elif 'schema' in json_content: - # 基于schema创建请求体 - body = self._generate_data_from_schema(json_content['schema']) - - # 构建完整URL(替换路径参数) - url = self.base_url + path - for param, value in path_params.items(): - url = url.replace(f"{{{param}}}", str(value)) - - # 创建API请求 - request = None - try: - request = APIRequest( - method=method, - url=url, - headers=headers, - params=params, - json_data=body - ) - except Exception as e: - self.logger.error(f"创建API请求时发生错误: {e}") - raise e - - # 执行请求准备阶段的规则 - endpoint_id = f"{method.upper()} {path}" - - # 创建规则执行上下文 - context = { - 'api_request': request, - 'endpoint_id': endpoint_id, - 'endpoint': endpoint, - 'path_params': path_params, - 'query_params': params, - 'headers': headers, - 'body': body - } - - # 执行请求准备阶段的规则 - rule_results = self.rule_executor.execute_rules_for_lifecycle( - lifecycle=RuleLifecycle.REQUEST_PREPARATION, - context=context - ) - - # 保存规则执行结果,以便在测试结果中使用 - self.last_request_rule_results = rule_results - - # 保存请求对象,以便在响应验证时使用 - self.last_request = request - - # 收集测试数据 - test_data = { - "path_params": path_params, - "query_params": params, - "headers": headers, - "body": body, - "rule_results": [ - { - "rule_id": result.rule.id, - "rule_name": result.rule.name, - "is_valid": result.is_valid, - "message": result.message - } for result in rule_results - ] - } - - return request, test_data - - def _validate_response(self, response: APIResponse, endpoint: Union[YAPIEndpoint, SwaggerEndpoint]) -> Dict[str, Any]: - """ - 验证API响应 - - Args: - response: API响应对象 - endpoint: API端点对象 - - Returns: - Dict[str, Any]: 验证结果 - """ - validation_results = { - "status_code": { - "is_valid": 200 <= response.status_code < 300, - "expected": "2XX", - "actual": response.status_code - }, - "json_format": { - "is_valid": response.json_content is not None, - "message": "响应应为有效的JSON格式" if response.json_content is None else "响应是有效的JSON格式" - } - } - - # 尝试从API定义中提取响应schema进行验证 - schema = None - schema_source = "未知" - - # 从YAPI定义中提取响应schema - if hasattr(endpoint, 'res_body') and endpoint.res_body and response.json_content: - try: - # YAPI中的res_body通常是JSON字符串格式的schema - if isinstance(endpoint.res_body, str) and endpoint.res_body.strip(): - schema = json.loads(endpoint.res_body) - schema_source = "YAPI响应定义" - except json.JSONDecodeError: - self.logger.warning(f"无法解析YAPI响应schema: {endpoint.res_body}") - - # 从Swagger定义中提取响应schema - elif hasattr(endpoint, 'responses') and endpoint.responses and response.json_content: - # Swagger中通常以状态码为key,包含schema定义 - success_responses = endpoint.responses.get('200', {}) or endpoint.responses.get('201', {}) - if not success_responses and any(str(k).startswith('2') for k in endpoint.responses.keys()): - # 尝试查找任何2xx响应 - for k in endpoint.responses.keys(): - if str(k).startswith('2'): - success_responses = endpoint.responses[k] - break - - if success_responses: - schema_obj = None - if 'schema' in success_responses: - schema_obj = success_responses['schema'] - elif 'content' in success_responses and 'application/json' in success_responses['content']: - schema_obj = success_responses['content']['application/json'].get('schema') - - if schema_obj: - schema = schema_obj - schema_source = "Swagger响应定义" - - # 使用提取的schema进行验证 - if schema and response.json_content: - try: - result = self.validator.validate(response.json_content, schema) - validation_results["schema_validation"] = { - "source": schema_source, - "is_valid": result.is_valid, - "errors": result.errors if not result.is_valid else [] - } + self.test_case_registry = TestCaseRegistry(test_cases_dir=custom_test_cases_dir) + self.logger.info(f"TestCaseRegistry 初始化完成,发现 {len(self.test_case_registry.get_all_test_case_classes())} 个测试用例类。") except Exception as e: - self.logger.error(f"验证响应时发生错误: {str(e)}") - validation_results["schema_validation"] = { - "source": schema_source, - "is_valid": False, - "errors": [f"验证过程中发生错误: {str(e)}"] - } - - # 如果我们有JSON Schema规则,可以验证响应体 - endpoint_id = "" - if hasattr(endpoint, 'path'): - path = endpoint.path - method = getattr(endpoint, 'method', "GET") - endpoint_id = f"{method.upper()} {path}" + self.logger.error(f"初始化 TestCaseRegistry 失败: {e}", exc_info=True) + # 即使注册表初始化失败,编排器本身仍可用于旧逻辑(如果保留)或不运行自定义测试 + else: + self.logger.info("未提供 custom_test_cases_dir,不加载自定义 APITestCase。") - schema_rules = self.rule_repo.get_rules_for_target( - target_type=TargetType.API_RESPONSE, - target_id=endpoint_id - ) + def _execute_single_test_case( + self, + test_case_class: Type[BaseAPITestCase], + endpoint_spec: Union[YAPIEndpoint, SwaggerEndpoint], # 当前端点的规格 + global_api_spec: Union[ParsedYAPISpec, ParsedSwaggerSpec] # 整个API的规格 + ) -> ExecutedTestCaseResult: + """ + 实例化并执行单个APITestCase。 + """ + tc_start_time = time.time() + validation_points: List[ValidationResult] = [] + test_case_instance: Optional[BaseAPITestCase] = None - if schema_rules: - # 使用找到的第一个规则 - from .models.rule_models import JSONSchemaDefinition - for schema_rule in schema_rules: - if isinstance(schema_rule, JSONSchemaDefinition): - # 验证响应体 - if response.json_content: - result = self.validator.validate_with_rule(response.json_content, schema_rule) - validation_results[f"rule_schema_validation_{schema_rule.id}"] = { - "source": f"规则库 ({schema_rule.id})", - "is_valid": result.is_valid, - "errors": result.errors if not result.is_valid else [] - } - - # 使用规则执行器验证规则 - # 创建执行上下文 - if hasattr(endpoint, 'path'): - api_request = None - if hasattr(self, 'last_request'): - api_request = self.last_request - - context = { - 'api_response': response, - 'api_request': api_request, - 'endpoint_id': endpoint_id, - 'endpoint': endpoint + # 准备 endpoint_spec_dict + endpoint_spec_dict: Dict[str, Any] + if hasattr(endpoint_spec, 'to_dict') and callable(endpoint_spec.to_dict): + endpoint_spec_dict = endpoint_spec.to_dict() + elif isinstance(endpoint_spec, (YAPIEndpoint, SwaggerEndpoint)): + # 手动从对象属性构建字典,确保包含 method 和 path + endpoint_spec_dict = { + "method": getattr(endpoint_spec, 'method', 'UNKNOWN_METHOD'), + "path": getattr(endpoint_spec, 'path', 'UNKNOWN_PATH'), + "title": getattr(endpoint_spec, 'title', ''), + "summary": getattr(endpoint_spec, 'summary', ''), + # ... 可以根据需要添加更多来自 endpoint_spec 对象的属性 ... + "_original_object_type": type(endpoint_spec).__name__ # 记录原始类型以供调试 } + # 对于YAPIEndpoint,它有更多直接的属性,我们也可以把它们全部转储 + if isinstance(endpoint_spec, YAPIEndpoint): + # 简单地将所有可序列化的属性添加到字典中 + for attr_name in dir(endpoint_spec): + if not attr_name.startswith('_') and not callable(getattr(endpoint_spec, attr_name)): + try: + json.dumps({attr_name: getattr(endpoint_spec, attr_name)}) # 测试是否可序列化 + endpoint_spec_dict[attr_name] = getattr(endpoint_spec, attr_name) + except (TypeError, OverflowError): + pass # 不可序列化则跳过 + elif isinstance(endpoint_spec, SwaggerEndpoint): + # SwaggerEndpoint 可能有更复杂的嵌套结构,如 parameters, responses 等 + # 如果需要,可以有选择地将它们也转换为字典或保留其结构 + if hasattr(endpoint_spec, 'parameters'): + endpoint_spec_dict['parameters'] = endpoint_spec.parameters # 这本身应该是个列表或字典 + if hasattr(endpoint_spec, 'request_body'): + endpoint_spec_dict['request_body'] = endpoint_spec.request_body + if hasattr(endpoint_spec, 'responses'): + endpoint_spec_dict['responses'] = endpoint_spec.responses + + else: + # 如果它已经是字典或者其他未知类型,就按原样使用 (或记录一个警告) + endpoint_spec_dict = endpoint_spec if isinstance(endpoint_spec, dict) else {} + if not endpoint_spec_dict: + self.logger.warning(f"endpoint_spec 无法转换为字典,实际类型: {type(endpoint_spec)}") + + global_api_spec_dict: Dict[str, Any] + if hasattr(global_api_spec, 'to_dict') and callable(global_api_spec.to_dict): + global_api_spec_dict = global_api_spec.to_dict() + else: + global_api_spec_dict = global_api_spec if isinstance(global_api_spec, dict) else {} + if not global_api_spec_dict: + self.logger.warning(f"global_api_spec 无法转换为字典,实际类型: {type(global_api_spec)}") + + try: + test_case_instance = test_case_class( + endpoint_spec=endpoint_spec_dict, + global_api_spec=global_api_spec_dict + ) + test_case_instance.logger.info(f"开始执行测试用例 '{test_case_instance.id}' for endpoint '{endpoint_spec_dict.get('method')} {endpoint_spec_dict.get('path')}'") + + # 1. 请求构建阶段 (由测试用例驱动) + # 1a. 生成基础请求参数 (可以由编排器提供一个默认实现,或依赖测试用例完全自定义) + # 这里简化处理:假设APIRequest的构建是测试用例的职责,或者编排器提供一个初始的 + # 但测试用例的 generate_* 方法是主要的驱动者。 + + # TODO: 详细实现请求构建过程,调用 test_case_instance.generate_* 方法 + # 一个更完整的实现会是: + # base_query_params = self._generate_default_query_params(endpoint_spec) + # final_query_params = test_case_instance.generate_query_params(base_query_params) + # ...以此类推对 headers 和 body ... - # 执行响应验证阶段的规则 - rule_results = self.rule_executor.execute_rules_for_lifecycle( - lifecycle=RuleLifecycle.RESPONSE_VALIDATION, - context=context + # 暂时简化,假设编排器先构建一个粗略的请求,然后测试用例再调整 + # 这个 _build_api_request_for_test_case 需要适应新的上下文 + + # ---- 内部请求构建和预校验 ---- + # 1.1. 准备一个基础的APIRequest (这部分可以复用或重构旧的 _build_api_request 部分逻辑) + # 假设我们有一个方法来创建基于端点规格的"原始"或"默认"请求数据 + initial_request_data = self._prepare_initial_request_data(endpoint_spec) + + # 1.2. 测试用例修改请求数据 + current_q_params = test_case_instance.generate_query_params(initial_request_data['query_params']) + current_headers = test_case_instance.generate_headers(initial_request_data['headers']) + current_body = test_case_instance.generate_request_body(initial_request_data['body']) + + # 1.3. 构建最终请求URL (路径参数替换等) + final_url = self.base_url + endpoint_spec_dict.get('path', '') + # TODO: 处理路径参数替换, 从 initial_request_data 或 endpoint_spec 获取 + # 例如: path_params = self._extract_path_params(endpoint_spec, ...) + # for p_name, p_val in path_params.items(): + # final_url = final_url.replace(f"{{{p_name}}}", str(p_val)) + + + # 1.4. 创建 APIRequestContext + # 需要确保 endpoint_spec 也传递给 APIRequestContext + api_request_context = APIRequestContext( + method=endpoint_spec_dict.get('method', 'GET').upper(), # 从字典获取 + url=final_url, + path_params=initial_request_data.get('path_params', {}), + query_params=current_q_params, + headers=current_headers, + body=current_body, + endpoint_spec=endpoint_spec_dict # 传递字典 + ) + + # 1.5. 请求预校验 + validation_points.extend(test_case_instance.validate_request_url(api_request_context.url, api_request_context)) + validation_points.extend(test_case_instance.validate_request_headers(api_request_context.headers, api_request_context)) + validation_points.extend(test_case_instance.validate_request_body(api_request_context.body, api_request_context)) + + # 如果预校验有失败,且是CRITICAL/HIGH,可以考虑提前终止 (简化:暂时不提前终止,全部记录) + pre_validation_failed_critically = any( + not vp.passed and test_case_instance.severity in [TestSeverity.CRITICAL, TestSeverity.HIGH] + for vp in validation_points + ) + # if pre_validation_failed_critically : + # # ... 构造 ExecutedTestCaseResult 并返回 ... (状态 FAILED) + + # ---- API 调用 ---- + # 2. 实际API调用 + api_request_obj = APIRequest( + method=api_request_context.method, + url=api_request_context.url, + params=api_request_context.query_params, + headers=api_request_context.headers, + json_data=api_request_context.body # Assuming JSON, APICaller might need to handle other types ) - # 将规则执行结果添加到验证结果中 - for i, rule_result in enumerate(rule_results): - validation_results[f"rule_execution_{i}"] = { - "rule_id": rule_result.rule.id, - "rule_name": rule_result.rule.name, - "is_valid": rule_result.is_valid, - "message": rule_result.message, - "details": rule_result.details - } - - # 基本验证: 检查返回码、响应时间等 - validation_results["response_time"] = { - "value": response.elapsed_time, - "message": f"响应时间: {response.elapsed_time:.4f}秒" - } - - return validation_results - - def run_test_for_endpoint(self, endpoint: Union[YAPIEndpoint, SwaggerEndpoint]) -> TestResult: - """ - 运行单个API端点的测试 - - Args: - endpoint: API端点对象 + response_call_start_time = time.time() + api_response_obj = self.api_caller.call_api(api_request_obj) + response_call_elapsed_time = time.time() - response_call_start_time + + # ---- 响应验证 ---- + # 3. 创建 APIResponseContext + + actual_text_content: Optional[str] = None + if hasattr(api_response_obj, 'text_content') and api_response_obj.text_content is not None: # 优先尝试直接获取 + actual_text_content = api_response_obj.text_content + elif api_response_obj.json_content is not None: + if isinstance(api_response_obj.json_content, str): + actual_text_content = api_response_obj.json_content + else: + try: + actual_text_content = json.dumps(api_response_obj.json_content, ensure_ascii=False) + except TypeError: + actual_text_content = str(api_response_obj.json_content) # 最后手段 - Returns: - TestResult: 测试结果 + # elapsed_time: 使用 response_call_elapsed_time + # original_response: 设置为 None 因为 api_response_obj 没有 raw_response + + api_response_context = APIResponseContext( + status_code=api_response_obj.status_code, + headers=api_response_obj.headers, # 假设这些直接在 api_response_obj 上 + json_content=api_response_obj.json_content, # 这个根据之前的错误提示是存在的 + text_content=actual_text_content, + elapsed_time=response_call_elapsed_time, + original_response=None, # api_response_obj 没有 .raw_response 属性 + request_context=api_request_context + ) + + # 4. 执行响应验证和性能检查 + validation_points.extend(test_case_instance.validate_response(api_response_context, api_request_context)) + validation_points.extend(test_case_instance.check_performance(api_response_context, api_request_context)) + + # ---- 结果判定 ---- + # 5. 判断此测试用例的最终状态 + final_status = ExecutedTestCaseResult.Status.PASSED + if any(not vp.passed for vp in validation_points): + final_status = ExecutedTestCaseResult.Status.FAILED + + tc_duration = time.time() - tc_start_time + return ExecutedTestCaseResult( + test_case_id=test_case_instance.id, + test_case_name=test_case_instance.name, + test_case_severity=test_case_instance.severity, + status=final_status, + validation_points=validation_points, + duration=tc_duration + ) + + except Exception as e: + self.logger.error(f"执行测试用例 '{test_case_class.id if test_case_instance else test_case_class.__name__}' 时发生严重错误: {e}", exc_info=True) + tc_duration = time.time() - tc_start_time + return ExecutedTestCaseResult( + test_case_id=test_case_instance.id if test_case_instance else test_case_class.id if hasattr(test_case_class, 'id') else "unknown_tc_id", + test_case_name=test_case_instance.name if test_case_instance else test_case_class.name if hasattr(test_case_class, 'name') else "Unknown Test Case Name", + test_case_severity=test_case_instance.severity if test_case_instance else TestSeverity.CRITICAL, # Default to critical on error + status=ExecutedTestCaseResult.Status.ERROR, + validation_points=validation_points, # 可能包含部分成功或失败的验证点 + message=f"测试用例执行时发生内部错误: {str(e)}", + duration=tc_duration + ) + + def _prepare_initial_request_data(self, endpoint_spec: Union[YAPIEndpoint, SwaggerEndpoint]) -> Dict[str, Any]: """ - # 获取端点信息 - endpoint_id = f"{getattr(endpoint, 'method', 'GET')} {getattr(endpoint, 'path', '/')}" + 根据端点规格准备一个初始的请求数据结构。 + 这可以基于旧的 _build_api_request 的部分逻辑,但不实际执行规则或API调用。 + 返回一个包含 'path_params', 'query_params', 'headers', 'body' 的字典。 + """ + # TODO: 实现此辅助方法,从 endpoint_spec 生成默认的请求参数、头、体。 + # 例如,从 schema 生成一个最基础的 body,设置默认的 Content-Type 等。 + # 以下为非常简化的占位符实现: + self.logger.debug(f"Preparing initial request data for: {endpoint_spec.method} {endpoint_spec.path}") + + path_params_spec = [] + query_params_spec = [] + headers_spec = [] + body_schema = None + + if isinstance(endpoint_spec, YAPIEndpoint): + # YAPI specific parsing + # Path params are part of the path string, e.g., /users/{id} + # Query params from req_query + query_params_spec = endpoint_spec.req_query or [] + # Headers from req_headers + headers_spec = endpoint_spec.req_headers or [] + # Body from req_body_other (if JSON) + if endpoint_spec.req_body_type == 'json' and endpoint_spec.req_body_other: + try: + body_schema = json.loads(endpoint_spec.req_body_other) if isinstance(endpoint_spec.req_body_other, str) else endpoint_spec.req_body_other + except json.JSONDecodeError: + self.logger.warning(f"YAPI req_body_other for {endpoint_spec.path} is not valid JSON: {endpoint_spec.req_body_other}") + body_schema = None + + elif isinstance(endpoint_spec, SwaggerEndpoint): + # Swagger specific parsing + if endpoint_spec.parameters: + for param_spec in endpoint_spec.parameters: + if param_spec.get('in') == 'path': + path_params_spec.append(param_spec) + elif param_spec.get('in') == 'query': + query_params_spec.append(param_spec) + elif param_spec.get('in') == 'header': + headers_spec.append(param_spec) + if endpoint_spec.request_body and 'content' in endpoint_spec.request_body: + json_content_spec = endpoint_spec.request_body['content'].get('application/json', {}) + if 'schema' in json_content_spec: + body_schema = json_content_spec['schema'] + + # 生成数据 + path_params_data = {} # 例如: {"id": "default_id"} - 需要更智能的生成 + if hasattr(endpoint_spec, 'path'): + import re + param_names = re.findall(r'{([^}]+)}', endpoint_spec.path) + for name in param_names: + # 尝试从 path_params_spec (Swagger) 查找默认值或示例 + # 简化:用占位符 + path_params_data[name] = f"example_{name}" + + + query_params_data = {} + for q_param in query_params_spec: # YAPI: {'name': 'limit', 'value': '10'}, Swagger: {'name': 'limit', 'schema':{...}} + name = q_param.get('name') + if name: + # 优先使用示例或默认值,然后是基于schema的生成 + value = q_param.get('example', q_param.get('default')) + if value is None and q_param.get('schema'): + value = self._generate_data_from_schema(q_param['schema']) # 复用旧方法 + elif value is None and 'value' in q_param : # YAPI style default/example in 'value' + value = q_param['value'] + query_params_data[name] = value if value is not None else "example_query_value" + + + headers_data = {"Content-Type": "application/json", "Accept": "application/json"} # 默认值 + for h_param in headers_spec: # YAPI: {'name':'X-Token', 'value':'abc'}, Swagger: {'name':'X-Token', 'schema':{}} + name = h_param.get('name') + if name: + value = h_param.get('example', h_param.get('default')) + if value is None and h_param.get('schema'): + value = self._generate_data_from_schema(h_param['schema']) + elif value is None and 'value' in h_param: # YAPI style + value = h_param['value'] + if value is not None: + headers_data[name] = str(value) + + + body_data = None + if body_schema: + body_data = self._generate_data_from_schema(body_schema) # 复用旧方法 + + return { + "path_params": path_params_data, + "query_params": query_params_data, + "headers": headers_data, + "body": body_data + } + + def run_test_for_endpoint(self, endpoint: Union[YAPIEndpoint, SwaggerEndpoint], + global_api_spec: Union[ParsedYAPISpec, ParsedSwaggerSpec] # 新增参数 + ) -> TestResult: # 返回类型更新为新的TestResult (EndpointExecutionResult) + """ + 运行单个API端点的所有适用测试用例。 + """ + endpoint_id = f"{getattr(endpoint, 'method', 'GET').upper()} {getattr(endpoint, 'path', '/')}" endpoint_name = getattr(endpoint, 'title', '') or getattr(endpoint, 'summary', '') or endpoint_id - self.logger.info(f"测试端点: {endpoint_id} - {endpoint_name}") + self.logger.info(f"开始为端点测试: {endpoint_id} ({endpoint_name})") - try: - # 构建API请求 - request, test_data = self._build_api_request(endpoint) - - # 检查请求准备阶段的规则验证结果 - request_rule_failures = [] - for rule_result in test_data.get("rule_results", []): - if not rule_result.get("is_valid", True): - request_rule_failures.append(f"{rule_result.get('rule_name', '未知规则')}: {rule_result.get('message', '验证失败')}") - - # 如果有关键性的请求验证失败,可以选择跳过API调用 - if request_rule_failures and any("严重错误" in failure for failure in request_rule_failures): - return TestResult( + # 使用新的TestResult结构 (它现在代表 EndpointExecutionResult) + endpoint_test_result = TestResult( # 这是新的 TestResult endpoint_id=endpoint_id, endpoint_name=endpoint_name, - status=TestResult.Status.FAILED, - message=f"请求准备阶段验证失败: {'; '.join(request_rule_failures)}", - api_request=request, - api_response=None, - validation_details={"request_rule_failures": request_rule_failures}, - elapsed_time=0.0 - ) - - # 发送请求 - start_time = time.time() - response = self.api_caller.call_api(request) - elapsed_time = time.time() - start_time - - # 验证响应 - validation_results = self._validate_response(response, endpoint) - - # 执行请求后处理规则 - context = { - 'api_request': request, - 'api_response': response, - 'endpoint_id': endpoint_id, - 'endpoint': endpoint, - 'elapsed_time': elapsed_time - } - - post_rule_results = self.rule_executor.execute_rules_for_lifecycle( - lifecycle=RuleLifecycle.POST_VALIDATION, - context=context - ) - - # 将后处理规则结果添加到验证结果中 - for i, rule_result in enumerate(post_rule_results): - validation_results[f"post_rule_execution_{i}"] = { - "rule_id": rule_result.rule.id, - "rule_name": rule_result.rule.name, - "is_valid": rule_result.is_valid, - "message": rule_result.message, - "details": rule_result.details - } - - # 判断测试是否通过 - # 检查所有验证结果是否有失败的 - rule_failures = [] - validation_failures = [] - - for key, result in validation_results.items(): - if isinstance(result, dict) and 'is_valid' in result and not result['is_valid']: - if key.startswith('rule_execution_') or key.startswith('post_rule_execution_'): - rule_name = result.get('rule_name', '未知规则') - rule_message = result.get('message', '验证失败') - rule_failures.append(f"{rule_name}: {rule_message}") - else: - validation_failures.append(result.get('message', f"{key}验证失败")) - - # 合并请求规则失败和响应规则失败 - all_rule_failures = request_rule_failures + rule_failures - - # 决定测试结果状态 - if not validation_failures and not all_rule_failures: - # 所有验证和规则都通过 - result = TestResult( - endpoint_id=endpoint_id, - endpoint_name=endpoint_name, - status=TestResult.Status.PASSED, - message="API测试通过", - api_request=request, - api_response=response, - validation_details=validation_results, - elapsed_time=elapsed_time - ) - elif not validation_failures and all_rule_failures: - # 基本验证通过,但规则验证失败 - result = TestResult( - endpoint_id=endpoint_id, - endpoint_name=endpoint_name, - status=TestResult.Status.FAILED, - message=f"API规则验证失败: {'; '.join(all_rule_failures)}", - api_request=request, - api_response=response, - validation_details=validation_results, - elapsed_time=elapsed_time - ) - self.logger.error(f"接口{endpoint_id} 规则验证失败: {'; '.join(all_rule_failures)}") - else: - # 基本验证失败 - result = TestResult( - endpoint_id=endpoint_id, - endpoint_name=endpoint_name, - status=TestResult.Status.FAILED, - message=f"API测试失败: {'; '.join(validation_failures)}", - api_request=request, - api_response=response, - validation_details=validation_results, - elapsed_time=elapsed_time - ) - self.logger.error(f"接口{endpoint_id} 测试失败: {'; '.join(validation_failures)}") - - return result - - except Exception as e: - self.logger.error(f"测试端点 {endpoint_id} 时发生错误: {str(e)}") - return TestResult( - endpoint_id=endpoint_id, - endpoint_name=endpoint_name, - status=TestResult.Status.ERROR, - message=f"测试执行错误: {str(e)}", - elapsed_time=0.0 + # api_spec_details=endpoint.to_dict() if hasattr(endpoint, 'to_dict') else endpoint # 可选 + ) + + if not self.test_case_registry: + self.logger.warning(f"TestCaseRegistry 未初始化,无法为端点 '{endpoint_id}' 执行自定义测试用例。") + # TODO: 决定此时的行为,是跳过,还是执行旧的规则引擎(如果保留),或者标记为错误。 + # 简化:如果只想运行新的测试用例,那么这里就直接结束此端点的测试。 + endpoint_test_result.overall_status = TestResult.Status.SKIPPED # 或者 ERROR + endpoint_test_result.error_message = "TestCaseRegistry 未初始化。" + endpoint_test_result.finalize_endpoint_test() # 计算持续时间等 + return endpoint_test_result + + applicable_test_case_classes = self.test_case_registry.get_applicable_test_cases( + endpoint_method=endpoint.method.upper(), + endpoint_path=endpoint.path + ) + + if not applicable_test_case_classes: + self.logger.info(f"端点 '{endpoint_id}' 没有找到适用的自定义测试用例。") + # 同样,决定行为。如果只依赖自定义测试用例,则此端点可能算作 SKIPPED 或某种形式的通过/信息。 + # endpoint_test_result.overall_status = TestResult.Status.SKIPPED # 或 INFO / PASSED_NO_CASES + # endpoint_test_result.message = "没有适用的自定义测试用例。" + endpoint_test_result.finalize_endpoint_test() # 会将状态设置为ERROR并附带消息 + return endpoint_test_result + + self.logger.info(f"端点 '{endpoint_id}' 发现了 {len(applicable_test_case_classes)} 个适用的测试用例: {[tc.id for tc in applicable_test_case_classes]}") + + for tc_class in applicable_test_case_classes: + self.logger.debug(f"准备执行测试用例 '{tc_class.id}' for '{endpoint_id}'") + executed_case_result = self._execute_single_test_case( + test_case_class=tc_class, + endpoint_spec=endpoint, + global_api_spec=global_api_spec ) + endpoint_test_result.add_executed_test_case_result(executed_case_result) + 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}") + + # 旧的规则引擎逻辑 (self.rule_executor) 可以选择性地在这里调用, + # 或者完全被新的 APITestCase 机制取代。 + # 如果要保留,需要决定它如何与新的结果结构集成。 + # 目前,为了清晰和逐步迁移,我们假设主要依赖新的 APITestCase。 + + return endpoint_test_result - def run_tests_from_yapi(self, yapi_file_path: str, categories: Optional[List[str]] = None) -> TestSummary: + def run_tests_from_yapi(self, yapi_file_path: str, + categories: Optional[List[str]] = None, + custom_test_cases_dir: Optional[str] = None # 新增参数 + ) -> TestSummary: """ 从YAPI定义文件运行API测试 Args: yapi_file_path: YAPI定义文件路径 categories: 要测试的API分类列表(如果为None,则测试所有分类) + custom_test_cases_dir: 自定义测试用例的目录。如果 Orchestrator 初始化时已提供,则此参数可选。 + 如果 Orchestrator 未提供,则必须在此处提供以加载测试用例。 + 如果 Orchestrator 初始化和此处都提供了,此处的优先。 Returns: TestSummary: 测试结果摘要 """ - # 解析YAPI文件 + # 如果调用时传入了 custom_test_cases_dir,则重新初始化/更新 TestCaseRegistry + if custom_test_cases_dir and (not self.test_case_registry or self.test_case_registry.test_cases_dir != custom_test_cases_dir): + self.logger.info(f"从 run_tests_from_yapi 使用新的目录重新初始化 TestCaseRegistry: {custom_test_cases_dir}") + try: + self.test_case_registry = TestCaseRegistry(test_cases_dir=custom_test_cases_dir) + self.logger.info(f"TestCaseRegistry (re)initialization complete, found {len(self.test_case_registry.get_all_test_case_classes())} test case classes.") + except Exception as e: + self.logger.error(f"从 run_tests_from_yapi 重新初始化 TestCaseRegistry 失败: {e}", exc_info=True) + # 决定是中止还是继续(可能不运行自定义测试) + # For now, if it fails here, it might proceed without custom tests if registry becomes None + + self.logger.info(f"从YAPI文件加载API定义: {yapi_file_path}") parsed_yapi = self.parser.parse_yapi_spec(yapi_file_path) + summary = TestSummary() # 使用新的 TestSummary + if not parsed_yapi: self.logger.error(f"解析YAPI文件失败: {yapi_file_path}") - - # 创建一个空的测试摘要 - summary = TestSummary() - summary.finalize() + summary.finalize_summary() return summary - # 筛选端点 - endpoints = parsed_yapi.endpoints + endpoints_to_test = parsed_yapi.endpoints if categories: - endpoints = [endpoint for endpoint in endpoints if endpoint.category_name in categories] - - # 运行测试 - summary = TestSummary() + endpoints_to_test = [ep for ep in endpoints_to_test if ep.category_name in categories] - for endpoint in endpoints: - result = self.run_test_for_endpoint(endpoint) - summary.add_result(result) + summary.set_total_endpoints_defined(len(endpoints_to_test)) + + # 计算总的适用测试用例数量 (粗略估计,实际执行时可能会因内部逻辑跳过) + total_applicable_tcs = 0 + if self.test_case_registry: + for endpoint_spec in endpoints_to_test: + total_applicable_tcs += len( + self.test_case_registry.get_applicable_test_cases( + endpoint_spec.method.upper(), endpoint_spec.path + ) + ) + summary.set_total_test_cases_applicable(total_applicable_tcs) + + + for endpoint in endpoints_to_test: + # 将完整的 parsed_yapi 作为 global_api_spec 传递 + result = self.run_test_for_endpoint(endpoint, global_api_spec=parsed_yapi) + summary.add_endpoint_result(result) # 使用新的 TestSummary 方法 - summary.finalize() + summary.finalize_summary() # 使用新的 TestSummary 方法 return summary - def run_tests_from_swagger(self, swagger_file_path: str, tags: Optional[List[str]] = None) -> TestSummary: + def run_tests_from_swagger(self, swagger_file_path: str, + tags: Optional[List[str]] = None, + custom_test_cases_dir: Optional[str] = None # 新增参数 + ) -> TestSummary: """ 从Swagger定义文件运行API测试 Args: swagger_file_path: Swagger定义文件路径 tags: 要测试的API标签列表(如果为None,则测试所有标签) + custom_test_cases_dir: 自定义测试用例的目录。 (逻辑同 yapi 方法) Returns: TestSummary: 测试结果摘要 """ - # 解析Swagger文件 + if custom_test_cases_dir and (not self.test_case_registry or self.test_case_registry.test_cases_dir != custom_test_cases_dir): + self.logger.info(f"从 run_tests_from_swagger 使用新的目录重新初始化 TestCaseRegistry: {custom_test_cases_dir}") + try: + self.test_case_registry = TestCaseRegistry(test_cases_dir=custom_test_cases_dir) + self.logger.info(f"TestCaseRegistry (re)initialization complete, found {len(self.test_case_registry.get_all_test_case_classes())} test case classes.") + except Exception as e: + self.logger.error(f"从 run_tests_from_swagger 重新初始化 TestCaseRegistry 失败: {e}", exc_info=True) + + self.logger.info(f"从Swagger文件加载API定义: {swagger_file_path}") parsed_swagger = self.parser.parse_swagger_spec(swagger_file_path) + summary = TestSummary() # 使用新的 TestSummary + if not parsed_swagger: self.logger.error(f"解析Swagger文件失败: {swagger_file_path}") - - # 创建一个空的测试摘要 - summary = TestSummary() - summary.finalize() + summary.finalize_summary() return summary - # 筛选端点 - endpoints = parsed_swagger.endpoints + endpoints_to_test = parsed_swagger.endpoints if tags: - endpoints = [endpoint for endpoint in endpoints if any(tag in endpoint.tags for tag in tags)] + endpoints_to_test = [ep for ep in endpoints_to_test if any(tag in ep.tags for tag in tags)] + + summary.set_total_endpoints_defined(len(endpoints_to_test)) + + total_applicable_tcs = 0 + if self.test_case_registry: + for endpoint_spec in endpoints_to_test: + total_applicable_tcs += len( + self.test_case_registry.get_applicable_test_cases( + endpoint_spec.method.upper(), endpoint_spec.path + ) + ) + summary.set_total_test_cases_applicable(total_applicable_tcs) + + for endpoint in endpoints_to_test: + # 将完整的 parsed_swagger 作为 global_api_spec 传递 + result = self.run_test_for_endpoint(endpoint, global_api_spec=parsed_swagger) + summary.add_endpoint_result(result) # 使用新的 TestSummary 方法 - # 运行测试 - summary = TestSummary() - - for endpoint in endpoints: - result = self.run_test_for_endpoint(endpoint) - summary.add_result(result) - - summary.finalize() + summary.finalize_summary() # 使用新的 TestSummary 方法 return summary def _generate_data_from_schema(self, schema: Dict[str, Any]) -> Any: """ - 根据JSON Schema生成测试数据 + 根据JSON Schema生成测试数据 (此方法基本保持不变,可能被测试用例或编排器内部使用) Args: schema: JSON Schema @@ -726,77 +832,88 @@ class APITestOrchestrator: Returns: 生成的测试数据 """ - if not schema: + if not schema or not isinstance(schema, dict): # 添加检查 schema 是否为 dict + self.logger.debug(f"_generate_data_from_schema: 提供的 schema 无效或为空: {schema}") return None schema_type = schema.get('type') + # 优先使用 example 或 default + if 'example' in schema: + return schema['example'] + if 'default' in schema: + return schema['default'] + if schema_type == 'object': + # ... (内容与旧版本相同,此处省略以便简洁) ... result = {} properties = schema.get('properties', {}) + required_fields = schema.get('required', []) for prop_name, prop_schema in properties.items(): - # 首先检查是否有example或default值 - if 'example' in prop_schema: - result[prop_name] = prop_schema['example'] - elif 'default' in prop_schema: - result[prop_name] = prop_schema['default'] - else: - # 递归生成子属性的值 + # 如果字段是必需的,或者我们想为所有字段生成值 + # 为了生成更完整的请求体,我们通常会为所有定义的属性生成值 + # if prop_name in required_fields or True: # 改为总是尝试生成 result[prop_name] = self._generate_data_from_schema(prop_schema) - return result + # 确保所有必需字段都有值,即使它们在 properties 中没有 schema(不常见,但可能) + # for req_field in required_fields: + # if req_field not in result: + # result[req_field] = "example_required_value" # 或 None + return result if result else {} # 确保返回字典 elif schema_type == 'array': - # 为数组生成一个样本项 items_schema = schema.get('items', {}) - # 默认生成1个元素,对于测试来说通常足够 - return [self._generate_data_from_schema(items_schema)] + # 尝试生成一个或多个项,可以使用 minItems/maxItems (简化:生成一项) + min_items = schema.get('minItems', 1 if schema.get('default') is None and schema.get('example') is None else 0) # 如果有默认或示例空数组,则可以为0 + if min_items == 0 and (schema.get('default') == [] or schema.get('example') == []): + return [] + + num_items_to_generate = max(1, min_items) # 至少生成一项,除非minItems显式为0且无内容 + + generated_array = [self._generate_data_from_schema(items_schema) for _ in range(num_items_to_generate)] + # 过滤掉生成失败的 None 值,除非 schema 允许 null + # if items_schema.get('type') != 'null' and not ('null' in items_schema.get('type', []) if isinstance(items_schema.get('type'), list) else False): + # generated_array = [item for item in generated_array if item is not None] + return generated_array elif schema_type == 'string': - # 处理不同的字符串格式 string_format = schema.get('format', '') - - if string_format == 'date': - return '2023-01-01' - elif string_format == 'date-time': - return '2023-01-01T12:00:00Z' - elif string_format == 'email': - return 'test@example.com' - elif string_format == 'uuid': - return '00000000-0000-0000-0000-000000000000' - elif 'enum' in schema: - # 如果有枚举值,选择第一个 - return schema['enum'][0] if schema['enum'] else 'enum_value' - elif 'pattern' in schema: - # 如果有正则表达式模式,返回一个简单的符合模式的字符串 - # 注意:这里只是一个简单处理,不能处理所有正则表达式 - return f"pattern_{schema['pattern']}_value" - else: - return 'test_string' + if 'enum' in schema and schema['enum']: # 确保 enum 非空 + return schema['enum'][0] + + # ... (其他格式处理与旧版类似) ... + if string_format == 'date': return '2023-01-01' + if string_format == 'date-time': return datetime.datetime.now().isoformat() + if string_format == 'email': return 'test@example.com' + if string_format == 'uuid': import uuid; return str(uuid.uuid4()) + # pattern, minLength, maxLength 等可以进一步细化 + return schema.get('default', schema.get('example', 'example_string')) elif schema_type == 'number' or schema_type == 'integer': - # 处理数值类型 - if 'minimum' in schema and 'maximum' in schema: - # 如果有最小值和最大值,取中间值 - return (schema['minimum'] + schema['maximum']) / 2 - elif 'minimum' in schema: - return schema['minimum'] - elif 'maximum' in schema: - return schema['maximum'] - elif schema_type == 'integer': - return 1 - else: - return 1.0 + # ... (与旧版类似,优先 default/example) ... + val = schema.get('default', schema.get('example')) + if val is not None: return val + + minimum = schema.get('minimum') + maximum = schema.get('maximum') + if minimum is not None: return minimum + if maximum is not None: return maximum # (如果只有max,可能需要调整) + return 0 if schema_type == 'integer' else 0.0 elif schema_type == 'boolean': - return True + return schema.get('default', schema.get('example', False)) # 默认为 False elif schema_type == 'null': return None - # 如果是复杂类型或未知类型,返回一个默认值 - return 'test_value' + self.logger.debug(f"_generate_data_from_schema: 未知或不支持的 schema 类型 '{schema_type}' for schema: {schema}") + return None # 对于未知类型,返回None - - # python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6386850-6083489-default --yapi assets/doc/井筒API示例.json \ No newline at end of file +# ... (旧的 _build_api_request 和 _validate_response 基本可以移除了,因为它们的功能被新的流程覆盖) ... +# 确保删除或注释掉旧的 `_build_api_request` 和 `_validate_response` 方法, +# 因为它们的功能现在被 `_execute_single_test_case` 和 `_prepare_initial_request_data` 中的逻辑所取代或整合。 + +# python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6386850-6083489-default --yapi assets/doc/井筒API示例.json --custom-test-cases-dir ./custom_testcases +# (示例命令行调用,需要更新以匹配新的参数) + diff --git a/run_api_tests.py b/run_api_tests.py index d390c0b..71cfb12 100644 --- a/run_api_tests.py +++ b/run_api_tests.py @@ -60,6 +60,12 @@ def parse_args(): rule_group.add_argument('--create-basic-rules', action='store_true', help='创建基本规则集(性能、安全、RESTful设计、错误处理)',default=False) + # 新增:自定义测试用例参数组 + custom_tc_group = parser.add_argument_group('自定义测试用例选项') + custom_tc_group.add_argument('--custom-test-cases-dir', + default=None, # 或者 './custom_testcases' 如果想设为默认 + help='存放自定义APITestCase Python文件的目录路径。如果未提供,则不加载自定义测试。') + return parser.parse_args() def list_yapi_categories(yapi_file: str): @@ -280,10 +286,11 @@ def main(): """主函数""" args = parse_args() - # 设置日志级别 if args.verbose: - logging.getLogger().setLevel(logging.DEBUG) - + logging.getLogger('ddms_compliance_suite').setLevel(logging.DEBUG) + logger.setLevel(logging.DEBUG) + logger.debug("已启用详细日志模式") + # 列出规则 if args.list_rules: list_rules(args.rules_path) @@ -307,10 +314,12 @@ def main(): categories = args.categories.split(',') if args.categories else None tags = args.tags.split(',') if args.tags else None - # 创建测试编排器 + # 实例化测试编排器 + # 将 custom_test_cases_dir 参数传递给 APITestOrchestrator 的构造函数 orchestrator = APITestOrchestrator( - base_url=args.base_url, - rule_repo_path=args.rules_path + base_url=args.base_url, + rule_repo_path=args.rules_path, + custom_test_cases_dir=args.custom_test_cases_dir # 新增参数 ) # 创建基本规则集 @@ -329,27 +338,50 @@ def main(): if args.yapi: logger.info(f"从YAPI文件运行测试: {args.yapi}") - summary = orchestrator.run_tests_from_yapi(args.yapi, categories) + summary = orchestrator.run_tests_from_yapi( + yapi_file_path=args.yapi, + categories=categories, + custom_test_cases_dir=args.custom_test_cases_dir # 也传递给具体执行方法,以支持运行时覆盖 + ) elif args.swagger: logger.info(f"从Swagger文件运行测试: {args.swagger}") - summary = orchestrator.run_tests_from_swagger(args.swagger, tags) + summary = orchestrator.run_tests_from_swagger( + swagger_file_path=args.swagger, + tags=tags, + custom_test_cases_dir=args.custom_test_cases_dir # 也传递给具体执行方法 + ) + else: + logger.error("必须提供YAPI或Swagger文件路径") if not summary: logger.error("测试执行失败") return 1 # 打印结果摘要 - summary.print_summary() + summary.print_summary_to_console() # 保存结果 if args.output: save_results(summary, args.output, args.format) # 根据测试结果设置退出码 - return 0 if summary.failed == 0 and summary.error == 0 else 1 + # 直接访问 TestSummary 的属性 + has_endpoint_errors = summary.endpoints_error > 0 + has_endpoint_failures = summary.endpoints_failed > 0 + + # 或者,也可以关注测试用例级别的失败/错误 + # has_test_case_errors = summary.test_cases_error > 0 + # has_test_case_failures = summary.test_cases_failed > 0 + + if has_endpoint_errors or has_endpoint_failures: + return 1 # 表示测试运行中存在失败或错误 + else: + return 0 # 所有端点测试通过或部分成功(无错误或关键失败) if __name__ == "__main__": sys.exit(main()) -# python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6389742-6086420-default --swagger assets/doc/井筒API示例swagger.json \ No newline at end of file +# python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6389742-6086420-default --swagger assets/doc/井筒API示例swagger.json --custom-test-cases-dir ./custom_testcases \ +# --verbose \ +# --output test_report.json \ No newline at end of file diff --git a/test_report.json b/test_report.json new file mode 100644 index 0000000..1d4fca1 --- /dev/null +++ b/test_report.json @@ -0,0 +1,13650 @@ +{ + "summary_metadata": { + "start_time": "2025-05-19T17:07:46.066464", + "end_time": "2025-05-19T17:07:55.604781", + "duration_seconds": "9.54" + }, + "endpoint_stats": { + "total_defined": 278, + "total_tested": 278, + "passed": 0, + "failed": 0, + "partial_success": 278, + "error": 0, + "skipped": 0, + "success_rate_percentage": "0.00" + }, + "test_case_stats": { + "total_applicable": 556, + "total_executed": 556, + "passed": 278, + "failed": 278, + "error_in_execution": 0, + "skipped_during_endpoint_execution": 0, + "success_rate_percentage": "50.00" + }, + "detailed_results": [ + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}", + "endpoint_name": "数据推送接口", + "overall_status": "部分成功", + "duration_seconds": 0.103741, + "start_time": "2025-05-19T17:07:46.075102", + "end_time": "2025-05-19T17:07:46.178843", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.08167600631713867, + "timestamp": "2025-05-19T17:07:46.156837", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.021856069564819336, + "timestamp": "2025-05-19T17:07:46.178757", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}", + "endpoint_name": "地质单元列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.050578, + "start_time": "2025-05-19T17:07:46.178899", + "end_time": "2025-05-19T17:07:46.229477", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01723194122314453, + "timestamp": "2025-05-19T17:07:46.196183", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.03319501876831055, + "timestamp": "2025-05-19T17:07:46.229430", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit", + "endpoint_name": "地质单元数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.042387, + "start_time": "2025-05-19T17:07:46.229520", + "end_time": "2025-05-19T17:07:46.271907", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.026102066040039062, + "timestamp": "2025-05-19T17:07:46.255668", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01610088348388672, + "timestamp": "2025-05-19T17:07:46.271882", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit", + "endpoint_name": "地质单元数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.039029, + "start_time": "2025-05-19T17:07:46.271935", + "end_time": "2025-05-19T17:07:46.310964", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01849222183227539, + "timestamp": "2025-05-19T17:07:46.290469", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.020437002182006836, + "timestamp": "2025-05-19T17:07:46.310938", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit", + "endpoint_name": "地质单元数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.047351, + "start_time": "2025-05-19T17:07:46.310992", + "end_time": "2025-05-19T17:07:46.358343", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020494937896728516, + "timestamp": "2025-05-19T17:07:46.331552", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02672576904296875, + "timestamp": "2025-05-19T17:07:46.358318", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}", + "endpoint_name": "地质单元查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.043689, + "start_time": "2025-05-19T17:07:46.358372", + "end_time": "2025-05-19T17:07:46.402061", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.021137237548828125, + "timestamp": "2025-05-19T17:07:46.379582", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.022240161895751953, + "timestamp": "2025-05-19T17:07:46.401953", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dr_de_geology/{version}", + "endpoint_name": "钻井地质设计列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.038414, + "start_time": "2025-05-19T17:07:46.402094", + "end_time": "2025-05-19T17:07:46.440508", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01954793930053711, + "timestamp": "2025-05-19T17:07:46.421749", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018665790557861328, + "timestamp": "2025-05-19T17:07:46.440459", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dr_de_geology", + "endpoint_name": "钻井地质设计数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.028147, + "start_time": "2025-05-19T17:07:46.440544", + "end_time": "2025-05-19T17:07:46.468691", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014786958694458008, + "timestamp": "2025-05-19T17:07:46.455377", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013244867324829102, + "timestamp": "2025-05-19T17:07:46.468665", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dr_de_geology", + "endpoint_name": "钻井地质设计数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029677, + "start_time": "2025-05-19T17:07:46.468721", + "end_time": "2025-05-19T17:07:46.498398", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015439271926879883, + "timestamp": "2025-05-19T17:07:46.484198", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014138221740722656, + "timestamp": "2025-05-19T17:07:46.498370", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dr_de_geology", + "endpoint_name": "钻井地质设计数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.057719, + "start_time": "2025-05-19T17:07:46.498429", + "end_time": "2025-05-19T17:07:46.556148", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013853073120117188, + "timestamp": "2025-05-19T17:07:46.512326", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.03802299499511719, + "timestamp": "2025-05-19T17:07:46.550401", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dr_de_geology/{version}/{id}", + "endpoint_name": "钻井地质设计查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.157954, + "start_time": "2025-05-19T17:07:46.556197", + "end_time": "2025-05-19T17:07:46.714151", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.128676176071167, + "timestamp": "2025-05-19T17:07:46.684923", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02905106544494629, + "timestamp": "2025-05-19T17:07:46.714018", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_completion/{version}", + "endpoint_name": "井筒生产层段列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.035873, + "start_time": "2025-05-19T17:07:46.714225", + "end_time": "2025-05-19T17:07:46.750098", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018727779388427734, + "timestamp": "2025-05-19T17:07:46.733193", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016843080520629883, + "timestamp": "2025-05-19T17:07:46.750074", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_completion", + "endpoint_name": "井筒生产层段数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.041182, + "start_time": "2025-05-19T17:07:46.750127", + "end_time": "2025-05-19T17:07:46.791309", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.021080970764160156, + "timestamp": "2025-05-19T17:07:46.771285", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019962072372436523, + "timestamp": "2025-05-19T17:07:46.791283", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_completion", + "endpoint_name": "井筒生产层段数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.0313, + "start_time": "2025-05-19T17:07:46.791335", + "end_time": "2025-05-19T17:07:46.822635", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01666402816772461, + "timestamp": "2025-05-19T17:07:46.808044", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014469146728515625, + "timestamp": "2025-05-19T17:07:46.822609", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_completion", + "endpoint_name": "井筒生产层段数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029668, + "start_time": "2025-05-19T17:07:46.822665", + "end_time": "2025-05-19T17:07:46.852333", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014843940734863281, + "timestamp": "2025-05-19T17:07:46.837603", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014646768569946289, + "timestamp": "2025-05-19T17:07:46.852287", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_completion/{version}/{id}", + "endpoint_name": "井筒生产层段查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.037832, + "start_time": "2025-05-19T17:07:46.852370", + "end_time": "2025-05-19T17:07:46.890202", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018339157104492188, + "timestamp": "2025-05-19T17:07:46.870753", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01933002471923828, + "timestamp": "2025-05-19T17:07:46.890120", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/fr_dh_bas_frac_incr_stim", + "endpoint_name": "压裂基础数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.035819, + "start_time": "2025-05-19T17:07:46.890248", + "end_time": "2025-05-19T17:07:46.926067", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018929004669189453, + "timestamp": "2025-05-19T17:07:46.909283", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01671910285949707, + "timestamp": "2025-05-19T17:07:46.926042", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/fr_dh_bas_frac_incr_stim", + "endpoint_name": "压裂基础数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.027211, + "start_time": "2025-05-19T17:07:46.926093", + "end_time": "2025-05-19T17:07:46.953304", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013531208038330078, + "timestamp": "2025-05-19T17:07:46.939663", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01357889175415039, + "timestamp": "2025-05-19T17:07:46.953277", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/fr_dh_bas_frac_incr_stim", + "endpoint_name": "压裂基础数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.03267, + "start_time": "2025-05-19T17:07:46.953335", + "end_time": "2025-05-19T17:07:46.986005", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016628026962280273, + "timestamp": "2025-05-19T17:07:46.970005", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015938997268676758, + "timestamp": "2025-05-19T17:07:46.985982", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/fr_dh_bas_frac_incr_stim/{version}", + "endpoint_name": "压裂基础数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.028334, + "start_time": "2025-05-19T17:07:46.986032", + "end_time": "2025-05-19T17:07:47.014366", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014381647109985352, + "timestamp": "2025-05-19T17:07:47.000459", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013839960098266602, + "timestamp": "2025-05-19T17:07:47.014339", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/fr_dh_bas_frac_incr_stim/{version}/{id}", + "endpoint_name": "压裂基础数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.02833, + "start_time": "2025-05-19T17:07:47.014397", + "end_time": "2025-05-19T17:07:47.042727", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014264106750488281, + "timestamp": "2025-05-19T17:07:47.028705", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013955116271972656, + "timestamp": "2025-05-19T17:07:47.042703", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/fr_dh_ach_frac_build_data/{version}", + "endpoint_name": "压裂施工参数列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030362, + "start_time": "2025-05-19T17:07:47.042757", + "end_time": "2025-05-19T17:07:47.073119", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016479969024658203, + "timestamp": "2025-05-19T17:07:47.059279", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013773918151855469, + "timestamp": "2025-05-19T17:07:47.073089", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/fr_dh_ach_frac_build_data", + "endpoint_name": "压裂施工参数数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.034416, + "start_time": "2025-05-19T17:07:47.073148", + "end_time": "2025-05-19T17:07:47.107564", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016040802001953125, + "timestamp": "2025-05-19T17:07:47.089230", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.0182650089263916, + "timestamp": "2025-05-19T17:07:47.107533", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/fr_dh_ach_frac_build_data", + "endpoint_name": "压裂施工参数数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.034969, + "start_time": "2025-05-19T17:07:47.107597", + "end_time": "2025-05-19T17:07:47.142566", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014622926712036133, + "timestamp": "2025-05-19T17:07:47.122262", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02021312713623047, + "timestamp": "2025-05-19T17:07:47.142515", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/fr_dh_ach_frac_build_data", + "endpoint_name": "压裂施工参数数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.03841, + "start_time": "2025-05-19T17:07:47.142604", + "end_time": "2025-05-19T17:07:47.181014", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01673293113708496, + "timestamp": "2025-05-19T17:07:47.159378", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.021522045135498047, + "timestamp": "2025-05-19T17:07:47.180987", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/fr_dh_ach_frac_build_data/{version}/{id}", + "endpoint_name": "压裂施工参数查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.066721, + "start_time": "2025-05-19T17:07:47.181049", + "end_time": "2025-05-19T17:07:47.247770", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.03675079345703125, + "timestamp": "2025-05-19T17:07:47.217885", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.029787778854370117, + "timestamp": "2025-05-19T17:07:47.247718", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_perf_interval/{version}", + "endpoint_name": "射孔井段数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.034705, + "start_time": "2025-05-19T17:07:47.247841", + "end_time": "2025-05-19T17:07:47.282546", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01540827751159668, + "timestamp": "2025-05-19T17:07:47.263433", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018996000289916992, + "timestamp": "2025-05-19T17:07:47.282501", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ach_perf_interval", + "endpoint_name": "射孔井段数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029261, + "start_time": "2025-05-19T17:07:47.282606", + "end_time": "2025-05-19T17:07:47.311867", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014912128448486328, + "timestamp": "2025-05-19T17:07:47.297760", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013983011245727539, + "timestamp": "2025-05-19T17:07:47.311837", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ach_perf_interval", + "endpoint_name": "射孔井段数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.027569, + "start_time": "2025-05-19T17:07:47.311898", + "end_time": "2025-05-19T17:07:47.339467", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01312112808227539, + "timestamp": "2025-05-19T17:07:47.325062", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014348030090332031, + "timestamp": "2025-05-19T17:07:47.339445", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_perf_interval", + "endpoint_name": "射孔井段数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.033826, + "start_time": "2025-05-19T17:07:47.339492", + "end_time": "2025-05-19T17:07:47.373318", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017015933990478516, + "timestamp": "2025-05-19T17:07:47.356548", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016646146774291992, + "timestamp": "2025-05-19T17:07:47.373276", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ach_perf_interval/{version}/{id}", + "endpoint_name": "射孔井段数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.028662, + "start_time": "2025-05-19T17:07:47.373374", + "end_time": "2025-05-19T17:07:47.402036", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014967918395996094, + "timestamp": "2025-05-19T17:07:47.388434", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013484001159667969, + "timestamp": "2025-05-19T17:07:47.401970", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_perforate", + "endpoint_name": "射孔井段数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.0292, + "start_time": "2025-05-19T17:07:47.402108", + "end_time": "2025-05-19T17:07:47.431308", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015444040298461914, + "timestamp": "2025-05-19T17:07:47.417656", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01358795166015625, + "timestamp": "2025-05-19T17:07:47.431283", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ach_perforate", + "endpoint_name": "射孔数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.032131, + "start_time": "2025-05-19T17:07:47.431334", + "end_time": "2025-05-19T17:07:47.463465", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01766800880432129, + "timestamp": "2025-05-19T17:07:47.449050", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014289140701293945, + "timestamp": "2025-05-19T17:07:47.463440", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ach_perforate", + "endpoint_name": "射孔数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029551, + "start_time": "2025-05-19T17:07:47.463493", + "end_time": "2025-05-19T17:07:47.493044", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016201019287109375, + "timestamp": "2025-05-19T17:07:47.479732", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01323390007019043, + "timestamp": "2025-05-19T17:07:47.493004", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_perforate/{version}", + "endpoint_name": "射孔数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.034375, + "start_time": "2025-05-19T17:07:47.493071", + "end_time": "2025-05-19T17:07:47.527446", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014496088027954102, + "timestamp": "2025-05-19T17:07:47.507651", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019694089889526367, + "timestamp": "2025-05-19T17:07:47.527382", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ach_perforate/{version}/{id}", + "endpoint_name": "射孔数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.028477, + "start_time": "2025-05-19T17:07:47.527498", + "end_time": "2025-05-19T17:07:47.555975", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013965129852294922, + "timestamp": "2025-05-19T17:07:47.541530", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014368057250976562, + "timestamp": "2025-05-19T17:07:47.555949", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_string_list/{version}", + "endpoint_name": "管柱元件列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.0307, + "start_time": "2025-05-19T17:07:47.556007", + "end_time": "2025-05-19T17:07:47.586707", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014551877975463867, + "timestamp": "2025-05-19T17:07:47.570606", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01597428321838379, + "timestamp": "2025-05-19T17:07:47.586625", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ops_string_list/{version}/{id}", + "endpoint_name": "管柱元件查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031403, + "start_time": "2025-05-19T17:07:47.586836", + "end_time": "2025-05-19T17:07:47.618239", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013756036758422852, + "timestamp": "2025-05-19T17:07:47.600643", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017529964447021484, + "timestamp": "2025-05-19T17:07:47.618211", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ops_string_list", + "endpoint_name": "管柱元件数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.030992, + "start_time": "2025-05-19T17:07:47.618274", + "end_time": "2025-05-19T17:07:47.649266", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.0171051025390625, + "timestamp": "2025-05-19T17:07:47.635418", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013788938522338867, + "timestamp": "2025-05-19T17:07:47.649245", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ops_string_list", + "endpoint_name": "管柱元件数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.027074, + "start_time": "2025-05-19T17:07:47.649291", + "end_time": "2025-05-19T17:07:47.676365", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01386880874633789, + "timestamp": "2025-05-19T17:07:47.663200", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013103008270263672, + "timestamp": "2025-05-19T17:07:47.676339", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_string_list", + "endpoint_name": "管柱元件数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.031942, + "start_time": "2025-05-19T17:07:47.676393", + "end_time": "2025-05-19T17:07:47.708335", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01743483543395996, + "timestamp": "2025-05-19T17:07:47.693871", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01431894302368164, + "timestamp": "2025-05-19T17:07:47.708272", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test/{version}", + "endpoint_name": "试油成果数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.032814, + "start_time": "2025-05-19T17:07:47.708394", + "end_time": "2025-05-19T17:07:47.741208", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01851820945739746, + "timestamp": "2025-05-19T17:07:47.727001", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014137983322143555, + "timestamp": "2025-05-19T17:07:47.741181", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_test/{version}/{id}", + "endpoint_name": "试油成果数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.02937, + "start_time": "2025-05-19T17:07:47.741250", + "end_time": "2025-05-19T17:07:47.770620", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01470804214477539, + "timestamp": "2025-05-19T17:07:47.756143", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014401912689208984, + "timestamp": "2025-05-19T17:07:47.770584", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test", + "endpoint_name": "试油成果数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029856, + "start_time": "2025-05-19T17:07:47.770653", + "end_time": "2025-05-19T17:07:47.800509", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013405084609985352, + "timestamp": "2025-05-19T17:07:47.784116", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016243934631347656, + "timestamp": "2025-05-19T17:07:47.800455", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_test", + "endpoint_name": "试油成果数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.034459, + "start_time": "2025-05-19T17:07:47.800590", + "end_time": "2025-05-19T17:07:47.835049", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020650863647460938, + "timestamp": "2025-05-19T17:07:47.821340", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01360774040222168, + "timestamp": "2025-05-19T17:07:47.834991", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_test", + "endpoint_name": "试油成果数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030283, + "start_time": "2025-05-19T17:07:47.835111", + "end_time": "2025-05-19T17:07:47.865394", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016131162643432617, + "timestamp": "2025-05-19T17:07:47.851347", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013921022415161133, + "timestamp": "2025-05-19T17:07:47.865367", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_test_daily/{version}", + "endpoint_name": "试油日报列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031981, + "start_time": "2025-05-19T17:07:47.865425", + "end_time": "2025-05-19T17:07:47.897406", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.0150299072265625, + "timestamp": "2025-05-19T17:07:47.880499", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016839265823364258, + "timestamp": "2025-05-19T17:07:47.897382", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ops_test_daily", + "endpoint_name": "试油日报数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.031839, + "start_time": "2025-05-19T17:07:47.897435", + "end_time": "2025-05-19T17:07:47.929274", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017615318298339844, + "timestamp": "2025-05-19T17:07:47.915093", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014031171798706055, + "timestamp": "2025-05-19T17:07:47.929209", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ops_test_daily", + "endpoint_name": "试油日报数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029866, + "start_time": "2025-05-19T17:07:47.929349", + "end_time": "2025-05-19T17:07:47.959215", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014430999755859375, + "timestamp": "2025-05-19T17:07:47.943932", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01495504379272461, + "timestamp": "2025-05-19T17:07:47.959148", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_test_daily", + "endpoint_name": "试油日报数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.032699, + "start_time": "2025-05-19T17:07:47.959310", + "end_time": "2025-05-19T17:07:47.992009", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014973163604736328, + "timestamp": "2025-05-19T17:07:47.974392", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01747298240661621, + "timestamp": "2025-05-19T17:07:47.991955", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ops_test_daily/{version}/{id}", + "endpoint_name": "试油日报查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.03263, + "start_time": "2025-05-19T17:07:47.992180", + "end_time": "2025-05-19T17:07:48.024810", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018150806427001953, + "timestamp": "2025-05-19T17:07:48.010446", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01425623893737793, + "timestamp": "2025-05-19T17:07:48.024781", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_stage_pump_inject/{version}", + "endpoint_name": "井泵注程序数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029456, + "start_time": "2025-05-19T17:07:48.024840", + "end_time": "2025-05-19T17:07:48.054296", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014066219329833984, + "timestamp": "2025-05-19T17:07:48.038956", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01514291763305664, + "timestamp": "2025-05-19T17:07:48.054193", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ops_stage_pump_inject/{version}/{id}", + "endpoint_name": "井泵注程序数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032195, + "start_time": "2025-05-19T17:07:48.054954", + "end_time": "2025-05-19T17:07:48.087149", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015434980392456055, + "timestamp": "2025-05-19T17:07:48.070662", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01629805564880371, + "timestamp": "2025-05-19T17:07:48.087003", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ops_stage_pump_inject", + "endpoint_name": "井泵注程序数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031125, + "start_time": "2025-05-19T17:07:48.087350", + "end_time": "2025-05-19T17:07:48.118475", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014576196670532227, + "timestamp": "2025-05-19T17:07:48.102185", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01607799530029297, + "timestamp": "2025-05-19T17:07:48.118399", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ops_stage_pump_inject", + "endpoint_name": "井泵注程序数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.037518, + "start_time": "2025-05-19T17:07:48.118580", + "end_time": "2025-05-19T17:07:48.156098", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01367497444152832, + "timestamp": "2025-05-19T17:07:48.132411", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.023448944091796875, + "timestamp": "2025-05-19T17:07:48.155933", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_stage_pump_inject", + "endpoint_name": "井泵注程序数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.034782, + "start_time": "2025-05-19T17:07:48.156172", + "end_time": "2025-05-19T17:07:48.190954", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020318031311035156, + "timestamp": "2025-05-19T17:07:48.176597", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014281988143920898, + "timestamp": "2025-05-19T17:07:48.190931", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_trip_connect_data", + "endpoint_name": "起下钻接单根数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029985, + "start_time": "2025-05-19T17:07:48.190980", + "end_time": "2025-05-19T17:07:48.220965", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013557910919189453, + "timestamp": "2025-05-19T17:07:48.204584", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016272306442260742, + "timestamp": "2025-05-19T17:07:48.220946", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_trip_connect_data", + "endpoint_name": "起下钻接单根数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033116, + "start_time": "2025-05-19T17:07:48.220993", + "end_time": "2025-05-19T17:07:48.254109", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019296884536743164, + "timestamp": "2025-05-19T17:07:48.240334", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01367497444152832, + "timestamp": "2025-05-19T17:07:48.254081", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_trip_connect_data", + "endpoint_name": "起下钻接单根数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.032026, + "start_time": "2025-05-19T17:07:48.254139", + "end_time": "2025-05-19T17:07:48.286165", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01832413673400879, + "timestamp": "2025-05-19T17:07:48.272509", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013550758361816406, + "timestamp": "2025-05-19T17:07:48.286134", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_trip_connect_data/{version}", + "endpoint_name": "起下钻接单根数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031287, + "start_time": "2025-05-19T17:07:48.286197", + "end_time": "2025-05-19T17:07:48.317484", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014547348022460938, + "timestamp": "2025-05-19T17:07:48.301048", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016251802444458008, + "timestamp": "2025-05-19T17:07:48.317411", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_trip_connect_data/{version}/{id}", + "endpoint_name": "起下钻接单根查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032411, + "start_time": "2025-05-19T17:07:48.317566", + "end_time": "2025-05-19T17:07:48.349977", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014121055603027344, + "timestamp": "2025-05-19T17:07:48.331795", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018042802810668945, + "timestamp": "2025-05-19T17:07:48.349932", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_show_stat/{version}", + "endpoint_name": "油气显示统计表列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.034949, + "start_time": "2025-05-19T17:07:48.350047", + "end_time": "2025-05-19T17:07:48.384996", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019107818603515625, + "timestamp": "2025-05-19T17:07:48.369252", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01559305191040039, + "timestamp": "2025-05-19T17:07:48.384930", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_rpt_show_stat", + "endpoint_name": "油气显示统计表数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029767, + "start_time": "2025-05-19T17:07:48.385075", + "end_time": "2025-05-19T17:07:48.414842", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013704061508178711, + "timestamp": "2025-05-19T17:07:48.398876", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01589488983154297, + "timestamp": "2025-05-19T17:07:48.414814", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_rpt_show_stat", + "endpoint_name": "油气显示统计表数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029773, + "start_time": "2025-05-19T17:07:48.414868", + "end_time": "2025-05-19T17:07:48.444641", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014313220977783203, + "timestamp": "2025-05-19T17:07:48.429224", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015347957611083984, + "timestamp": "2025-05-19T17:07:48.444613", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_show_stat", + "endpoint_name": "油气显示统计表数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.031663, + "start_time": "2025-05-19T17:07:48.444671", + "end_time": "2025-05-19T17:07:48.476334", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01754021644592285, + "timestamp": "2025-05-19T17:07:48.462257", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013900041580200195, + "timestamp": "2025-05-19T17:07:48.476273", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_rpt_show_stat/{version}/{id}", + "endpoint_name": "油气显示统计表查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.029599, + "start_time": "2025-05-19T17:07:48.476447", + "end_time": "2025-05-19T17:07:48.506046", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014555931091308594, + "timestamp": "2025-05-19T17:07:48.491115", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014799118041992188, + "timestamp": "2025-05-19T17:07:48.505994", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_logging_comp_record", + "endpoint_name": "录井综合记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.032418, + "start_time": "2025-05-19T17:07:48.506116", + "end_time": "2025-05-19T17:07:48.538534", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014333963394165039, + "timestamp": "2025-05-19T17:07:48.520643", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017563819885253906, + "timestamp": "2025-05-19T17:07:48.538425", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_logging_comp_record", + "endpoint_name": "录井综合记录数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.034165, + "start_time": "2025-05-19T17:07:48.538652", + "end_time": "2025-05-19T17:07:48.572817", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019695043563842773, + "timestamp": "2025-05-19T17:07:48.558413", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014342784881591797, + "timestamp": "2025-05-19T17:07:48.572793", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_logging_comp_record", + "endpoint_name": "录井综合记录数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.027922, + "start_time": "2025-05-19T17:07:48.572842", + "end_time": "2025-05-19T17:07:48.600764", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013701200485229492, + "timestamp": "2025-05-19T17:07:48.586591", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013905763626098633, + "timestamp": "2025-05-19T17:07:48.600699", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_logging_comp_record/{version}/{id}", + "endpoint_name": "录井综合记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032355, + "start_time": "2025-05-19T17:07:48.600856", + "end_time": "2025-05-19T17:07:48.633211", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015243053436279297, + "timestamp": "2025-05-19T17:07:48.616204", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016827821731567383, + "timestamp": "2025-05-19T17:07:48.633148", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_logging_comp_record/{version}", + "endpoint_name": "录井综合记录列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029664, + "start_time": "2025-05-19T17:07:48.633288", + "end_time": "2025-05-19T17:07:48.662952", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01444697380065918, + "timestamp": "2025-05-19T17:07:48.647837", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01504826545715332, + "timestamp": "2025-05-19T17:07:48.662929", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_bas_test/{version}", + "endpoint_name": "试油基础数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.028604, + "start_time": "2025-05-19T17:07:48.662982", + "end_time": "2025-05-19T17:07:48.691586", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013425827026367188, + "timestamp": "2025-05-19T17:07:48.676454", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014983892440795898, + "timestamp": "2025-05-19T17:07:48.691536", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_bas_test/{version}/{id}", + "endpoint_name": "试油基础数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.034933, + "start_time": "2025-05-19T17:07:48.691649", + "end_time": "2025-05-19T17:07:48.726582", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020560026168823242, + "timestamp": "2025-05-19T17:07:48.712308", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014208078384399414, + "timestamp": "2025-05-19T17:07:48.726558", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_bas_test", + "endpoint_name": "试油基础数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028303, + "start_time": "2025-05-19T17:07:48.726641", + "end_time": "2025-05-19T17:07:48.754944", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013602018356323242, + "timestamp": "2025-05-19T17:07:48.740296", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014558792114257812, + "timestamp": "2025-05-19T17:07:48.754896", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_bas_test", + "endpoint_name": "试油基础数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029292, + "start_time": "2025-05-19T17:07:48.754983", + "end_time": "2025-05-19T17:07:48.784275", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015640974044799805, + "timestamp": "2025-05-19T17:07:48.770667", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013458251953125, + "timestamp": "2025-05-19T17:07:48.784167", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_bas_test", + "endpoint_name": "试油基础数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030638, + "start_time": "2025-05-19T17:07:48.784378", + "end_time": "2025-05-19T17:07:48.815016", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016632080078125, + "timestamp": "2025-05-19T17:07:48.801117", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013783931732177734, + "timestamp": "2025-05-19T17:07:48.814993", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/query/dh_con_sum_oil_tube/{version}", + "endpoint_name": "施工总结油管记录列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.0332, + "start_time": "2025-05-19T17:07:48.815045", + "end_time": "2025-05-19T17:07:48.848245", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014413595199584961, + "timestamp": "2025-05-19T17:07:48.829505", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01862502098083496, + "timestamp": "2025-05-19T17:07:48.848200", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_con_sum_oil_tube", + "endpoint_name": "施工总结油管记录数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.028775, + "start_time": "2025-05-19T17:07:48.848309", + "end_time": "2025-05-19T17:07:48.877084", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014683008193969727, + "timestamp": "2025-05-19T17:07:48.863084", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013925313949584961, + "timestamp": "2025-05-19T17:07:48.877050", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_con_sum_oil_tube", + "endpoint_name": "施工总结油管记录数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.03049, + "start_time": "2025-05-19T17:07:48.877131", + "end_time": "2025-05-19T17:07:48.907621", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013740062713623047, + "timestamp": "2025-05-19T17:07:48.891047", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016510009765625, + "timestamp": "2025-05-19T17:07:48.907597", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_con_sum_oil_tube", + "endpoint_name": "施工总结油管记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.031036, + "start_time": "2025-05-19T17:07:48.907648", + "end_time": "2025-05-19T17:07:48.938684", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016438007354736328, + "timestamp": "2025-05-19T17:07:48.924131", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014382123947143555, + "timestamp": "2025-05-19T17:07:48.938619", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_con_sum_oil_tube/{version}/{id}", + "endpoint_name": "施工总结油管记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.033741, + "start_time": "2025-05-19T17:07:48.938764", + "end_time": "2025-05-19T17:07:48.972505", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019163131713867188, + "timestamp": "2025-05-19T17:07:48.958047", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014355897903442383, + "timestamp": "2025-05-19T17:07:48.972475", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/query/dh_bas_layering_job/{version}", + "endpoint_name": "酸化压裂分层作业列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030194, + "start_time": "2025-05-19T17:07:48.972536", + "end_time": "2025-05-19T17:07:49.002730", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014600038528442383, + "timestamp": "2025-05-19T17:07:48.987185", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015395879745483398, + "timestamp": "2025-05-19T17:07:49.002700", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_bas_layering_job", + "endpoint_name": "酸化压裂分层作业数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.032174, + "start_time": "2025-05-19T17:07:49.002759", + "end_time": "2025-05-19T17:07:49.034933", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017142057418823242, + "timestamp": "2025-05-19T17:07:49.019950", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014827966690063477, + "timestamp": "2025-05-19T17:07:49.034876", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_bas_layering_job", + "endpoint_name": "酸化压裂分层作业数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.030451, + "start_time": "2025-05-19T17:07:49.035000", + "end_time": "2025-05-19T17:07:49.065451", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016360998153686523, + "timestamp": "2025-05-19T17:07:49.051457", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013898849487304688, + "timestamp": "2025-05-19T17:07:49.065399", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_bas_layering_job", + "endpoint_name": "酸化压裂分层作业数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.032985, + "start_time": "2025-05-19T17:07:49.065527", + "end_time": "2025-05-19T17:07:49.098512", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014067888259887695, + "timestamp": "2025-05-19T17:07:49.079690", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018754005432128906, + "timestamp": "2025-05-19T17:07:49.098485", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_bas_layering_job/{version}/{id}", + "endpoint_name": "酸化压裂分层作业查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031289, + "start_time": "2025-05-19T17:07:49.098544", + "end_time": "2025-05-19T17:07:49.129833", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013551712036132812, + "timestamp": "2025-05-19T17:07:49.112142", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017530202865600586, + "timestamp": "2025-05-19T17:07:49.129763", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_proppant_data/{version}", + "endpoint_name": "支撑剂数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.03129, + "start_time": "2025-05-19T17:07:49.129878", + "end_time": "2025-05-19T17:07:49.161168", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014178991317749023, + "timestamp": "2025-05-19T17:07:49.144108", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016927003860473633, + "timestamp": "2025-05-19T17:07:49.161125", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ach_proppant_data", + "endpoint_name": "支撑剂数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.032794, + "start_time": "2025-05-19T17:07:49.161232", + "end_time": "2025-05-19T17:07:49.194026", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013766288757324219, + "timestamp": "2025-05-19T17:07:49.175091", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018832921981811523, + "timestamp": "2025-05-19T17:07:49.193997", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ach_proppant_data", + "endpoint_name": "支撑剂数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.028092, + "start_time": "2025-05-19T17:07:49.194057", + "end_time": "2025-05-19T17:07:49.222149", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014448881149291992, + "timestamp": "2025-05-19T17:07:49.208552", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013508081436157227, + "timestamp": "2025-05-19T17:07:49.222098", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ach_proppant_data", + "endpoint_name": "支撑剂数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028709, + "start_time": "2025-05-19T17:07:49.222211", + "end_time": "2025-05-19T17:07:49.250920", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014465093612670898, + "timestamp": "2025-05-19T17:07:49.236816", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01381230354309082, + "timestamp": "2025-05-19T17:07:49.250679", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ach_proppant_data/{version}/{id}", + "endpoint_name": "支撑剂数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.058097, + "start_time": "2025-05-19T17:07:49.251003", + "end_time": "2025-05-19T17:07:49.309100", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.038012027740478516, + "timestamp": "2025-05-19T17:07:49.289126", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019757747650146484, + "timestamp": "2025-05-19T17:07:49.308995", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_dst/{version}", + "endpoint_name": "地层测试列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030182, + "start_time": "2025-05-19T17:07:49.309185", + "end_time": "2025-05-19T17:07:49.339367", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014743804931640625, + "timestamp": "2025-05-19T17:07:49.324057", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015066146850585938, + "timestamp": "2025-05-19T17:07:49.339275", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_dst", + "endpoint_name": "地层测试数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029207, + "start_time": "2025-05-19T17:07:49.339496", + "end_time": "2025-05-19T17:07:49.368703", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01415705680847168, + "timestamp": "2025-05-19T17:07:49.353785", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014741182327270508, + "timestamp": "2025-05-19T17:07:49.368621", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_dst", + "endpoint_name": "地层测试数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.034924, + "start_time": "2025-05-19T17:07:49.368843", + "end_time": "2025-05-19T17:07:49.403767", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016309022903442383, + "timestamp": "2025-05-19T17:07:49.385305", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01829695701599121, + "timestamp": "2025-05-19T17:07:49.403707", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_dst", + "endpoint_name": "地层测试数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029491, + "start_time": "2025-05-19T17:07:49.403853", + "end_time": "2025-05-19T17:07:49.433344", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014472246170043945, + "timestamp": "2025-05-19T17:07:49.418431", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014744758605957031, + "timestamp": "2025-05-19T17:07:49.433263", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_dst/{version}/{id}", + "endpoint_name": "地层测试查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030084, + "start_time": "2025-05-19T17:07:49.433426", + "end_time": "2025-05-19T17:07:49.463510", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015413999557495117, + "timestamp": "2025-05-19T17:07:49.448969", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014329910278320312, + "timestamp": "2025-05-19T17:07:49.463420", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test_water/{version}", + "endpoint_name": "水分析列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.033953, + "start_time": "2025-05-19T17:07:49.463593", + "end_time": "2025-05-19T17:07:49.497546", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017418861389160156, + "timestamp": "2025-05-19T17:07:49.481283", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016080856323242188, + "timestamp": "2025-05-19T17:07:49.497513", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_test_water", + "endpoint_name": "水分析数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.028159, + "start_time": "2025-05-19T17:07:49.497587", + "end_time": "2025-05-19T17:07:49.525746", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013454914093017578, + "timestamp": "2025-05-19T17:07:49.511150", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014474868774414062, + "timestamp": "2025-05-19T17:07:49.525703", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_test_water", + "endpoint_name": "水分析数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033696, + "start_time": "2025-05-19T17:07:49.525804", + "end_time": "2025-05-19T17:07:49.559500", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013715982437133789, + "timestamp": "2025-05-19T17:07:49.539615", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019663095474243164, + "timestamp": "2025-05-19T17:07:49.559436", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test_water", + "endpoint_name": "水分析数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.027022, + "start_time": "2025-05-19T17:07:49.559567", + "end_time": "2025-05-19T17:07:49.586589", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014008045196533203, + "timestamp": "2025-05-19T17:07:49.573718", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01279902458190918, + "timestamp": "2025-05-19T17:07:49.586560", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_test_water/{version}/{id}", + "endpoint_name": "水分析查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030807, + "start_time": "2025-05-19T17:07:49.586619", + "end_time": "2025-05-19T17:07:49.617426", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013350963592529297, + "timestamp": "2025-05-19T17:07:49.600013", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017197132110595703, + "timestamp": "2025-05-19T17:07:49.617301", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp_data/{version}", + "endpoint_name": "测温测压数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.032451, + "start_time": "2025-05-19T17:07:49.617503", + "end_time": "2025-05-19T17:07:49.649954", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015314102172851562, + "timestamp": "2025-05-19T17:07:49.632924", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016849994659423828, + "timestamp": "2025-05-19T17:07:49.649880", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp_data", + "endpoint_name": "测温测压数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.031247, + "start_time": "2025-05-19T17:07:49.650164", + "end_time": "2025-05-19T17:07:49.681411", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017319202423095703, + "timestamp": "2025-05-19T17:07:49.667680", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013485908508300781, + "timestamp": "2025-05-19T17:07:49.681338", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp_data", + "endpoint_name": "测温测压数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.027306, + "start_time": "2025-05-19T17:07:49.681474", + "end_time": "2025-05-19T17:07:49.708780", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014013051986694336, + "timestamp": "2025-05-19T17:07:49.695535", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013184070587158203, + "timestamp": "2025-05-19T17:07:49.708754", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp_data", + "endpoint_name": "测温测压数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.030554, + "start_time": "2025-05-19T17:07:49.708812", + "end_time": "2025-05-19T17:07:49.739366", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016629934310913086, + "timestamp": "2025-05-19T17:07:49.725486", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01372075080871582, + "timestamp": "2025-05-19T17:07:49.739340", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp_data/{version}/{id}", + "endpoint_name": "测温测压数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.033279, + "start_time": "2025-05-19T17:07:49.739396", + "end_time": "2025-05-19T17:07:49.772675", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018446683883666992, + "timestamp": "2025-05-19T17:07:49.757886", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014654159545898438, + "timestamp": "2025-05-19T17:07:49.772587", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_farmation_test/{version}", + "endpoint_name": "地层测试成果列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031407, + "start_time": "2025-05-19T17:07:49.772766", + "end_time": "2025-05-19T17:07:49.804173", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015442132949829102, + "timestamp": "2025-05-19T17:07:49.788331", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015670061111450195, + "timestamp": "2025-05-19T17:07:49.804122", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_farmation_test", + "endpoint_name": "地层测试成果数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.048368, + "start_time": "2025-05-19T17:07:49.804245", + "end_time": "2025-05-19T17:07:49.852613", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017818927764892578, + "timestamp": "2025-05-19T17:07:49.822155", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.030162811279296875, + "timestamp": "2025-05-19T17:07:49.852568", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_farmation_test", + "endpoint_name": "地层测试成果数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033898, + "start_time": "2025-05-19T17:07:49.852671", + "end_time": "2025-05-19T17:07:49.886569", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019198894500732422, + "timestamp": "2025-05-19T17:07:49.871988", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014397859573364258, + "timestamp": "2025-05-19T17:07:49.886505", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_farmation_test", + "endpoint_name": "地层测试成果数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030606, + "start_time": "2025-05-19T17:07:49.886659", + "end_time": "2025-05-19T17:07:49.917265", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015845775604248047, + "timestamp": "2025-05-19T17:07:49.902635", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014536857604980469, + "timestamp": "2025-05-19T17:07:49.917238", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_farmation_test/{version}/{id}", + "endpoint_name": "地层测试成果查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.036818, + "start_time": "2025-05-19T17:07:49.917294", + "end_time": "2025-05-19T17:07:49.954112", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.02121281623840332, + "timestamp": "2025-05-19T17:07:49.938580", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015390872955322266, + "timestamp": "2025-05-19T17:07:49.954085", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test_base_data/{version}", + "endpoint_name": "试油成果统计数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029272, + "start_time": "2025-05-19T17:07:49.954139", + "end_time": "2025-05-19T17:07:49.983411", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014239072799682617, + "timestamp": "2025-05-19T17:07:49.968427", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01482391357421875, + "timestamp": "2025-05-19T17:07:49.983361", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_test_base_data", + "endpoint_name": "试油成果统计数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030402, + "start_time": "2025-05-19T17:07:49.983475", + "end_time": "2025-05-19T17:07:50.013877", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016314029693603516, + "timestamp": "2025-05-19T17:07:49.999891", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013924837112426758, + "timestamp": "2025-05-19T17:07:50.013854", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_test_base_data", + "endpoint_name": "试油成果统计数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031175, + "start_time": "2025-05-19T17:07:50.013906", + "end_time": "2025-05-19T17:07:50.045081", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015395879745483398, + "timestamp": "2025-05-19T17:07:50.029343", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01559901237487793, + "timestamp": "2025-05-19T17:07:50.045013", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_test_base_data", + "endpoint_name": "试油成果统计数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.033595, + "start_time": "2025-05-19T17:07:50.045203", + "end_time": "2025-05-19T17:07:50.078798", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013743162155151367, + "timestamp": "2025-05-19T17:07:50.059099", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019630908966064453, + "timestamp": "2025-05-19T17:07:50.078773", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_test_base_data/{version}/{id}", + "endpoint_name": "试油成果统计数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.029502, + "start_time": "2025-05-19T17:07:50.078826", + "end_time": "2025-05-19T17:07:50.108328", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01526188850402832, + "timestamp": "2025-05-19T17:07:50.094133", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01412510871887207, + "timestamp": "2025-05-19T17:07:50.108304", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp/{version}", + "endpoint_name": "测温测压列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.027102, + "start_time": "2025-05-19T17:07:50.108368", + "end_time": "2025-05-19T17:07:50.135470", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013740777969360352, + "timestamp": "2025-05-19T17:07:50.122152", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01321101188659668, + "timestamp": "2025-05-19T17:07:50.135405", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp", + "endpoint_name": "测温测压数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.032724, + "start_time": "2025-05-19T17:07:50.135781", + "end_time": "2025-05-19T17:07:50.168505", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016822099685668945, + "timestamp": "2025-05-19T17:07:50.152906", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015531778335571289, + "timestamp": "2025-05-19T17:07:50.168479", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp", + "endpoint_name": "测温测压数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031414, + "start_time": "2025-05-19T17:07:50.168535", + "end_time": "2025-05-19T17:07:50.199949", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016672134399414062, + "timestamp": "2025-05-19T17:07:50.185252", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014632940292358398, + "timestamp": "2025-05-19T17:07:50.199924", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp", + "endpoint_name": "测温测压数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029411, + "start_time": "2025-05-19T17:07:50.199976", + "end_time": "2025-05-19T17:07:50.229387", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014600992202758789, + "timestamp": "2025-05-19T17:07:50.214615", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01471090316772461, + "timestamp": "2025-05-19T17:07:50.229360", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_pres_temp/{version}/{id}", + "endpoint_name": "测温测压查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030257, + "start_time": "2025-05-19T17:07:50.229419", + "end_time": "2025-05-19T17:07:50.259676", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016286849975585938, + "timestamp": "2025-05-19T17:07:50.245750", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013862133026123047, + "timestamp": "2025-05-19T17:07:50.259653", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_dyn_dat/{version}", + "endpoint_name": "排液求产动态数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.032148, + "start_time": "2025-05-19T17:07:50.259705", + "end_time": "2025-05-19T17:07:50.291853", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018731117248535156, + "timestamp": "2025-05-19T17:07:50.278477", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013311147689819336, + "timestamp": "2025-05-19T17:07:50.291827", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_dyn_dat/{version}/{id}", + "endpoint_name": "排液求产动态数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.028602, + "start_time": "2025-05-19T17:07:50.291882", + "end_time": "2025-05-19T17:07:50.320484", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014496803283691406, + "timestamp": "2025-05-19T17:07:50.306527", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013888835906982422, + "timestamp": "2025-05-19T17:07:50.320457", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_dyn_dat", + "endpoint_name": "排液求产动态数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.0301, + "start_time": "2025-05-19T17:07:50.320513", + "end_time": "2025-05-19T17:07:50.350613", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013904809951782227, + "timestamp": "2025-05-19T17:07:50.334464", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01608896255493164, + "timestamp": "2025-05-19T17:07:50.350587", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_dyn_dat", + "endpoint_name": "排液求产动态数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031766, + "start_time": "2025-05-19T17:07:50.350644", + "end_time": "2025-05-19T17:07:50.382410", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01720595359802246, + "timestamp": "2025-05-19T17:07:50.367894", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014414072036743164, + "timestamp": "2025-05-19T17:07:50.382386", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_dyn_dat", + "endpoint_name": "排液求产动态数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029253, + "start_time": "2025-05-19T17:07:50.382435", + "end_time": "2025-05-19T17:07:50.411688", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013424873352050781, + "timestamp": "2025-05-19T17:07:50.395902", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015713930130004883, + "timestamp": "2025-05-19T17:07:50.411662", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_res_dat/{version}", + "endpoint_name": "排液求产成果数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031594, + "start_time": "2025-05-19T17:07:50.411718", + "end_time": "2025-05-19T17:07:50.443312", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013913154602050781, + "timestamp": "2025-05-19T17:07:50.425705", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01749110221862793, + "timestamp": "2025-05-19T17:07:50.443287", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_res_dat", + "endpoint_name": "排液求产成果数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.031665, + "start_time": "2025-05-19T17:07:50.443343", + "end_time": "2025-05-19T17:07:50.475008", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01745891571044922, + "timestamp": "2025-05-19T17:07:50.460846", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014008760452270508, + "timestamp": "2025-05-19T17:07:50.474949", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_res_dat", + "endpoint_name": "排液求产成果数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.029335, + "start_time": "2025-05-19T17:07:50.475084", + "end_time": "2025-05-19T17:07:50.504419", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015184164047241211, + "timestamp": "2025-05-19T17:07:50.490367", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013926982879638672, + "timestamp": "2025-05-19T17:07:50.504375", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_res_dat", + "endpoint_name": "排液求产成果数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031133, + "start_time": "2025-05-19T17:07:50.504479", + "end_time": "2025-05-19T17:07:50.535612", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01382589340209961, + "timestamp": "2025-05-19T17:07:50.518417", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01710200309753418, + "timestamp": "2025-05-19T17:07:50.535587", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ops_cleanup_prod_res_dat/{version}/{id}", + "endpoint_name": "排液求产成果数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032873, + "start_time": "2025-05-19T17:07:50.535640", + "end_time": "2025-05-19T17:07:50.568513", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013351202011108398, + "timestamp": "2025-05-19T17:07:50.549035", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019370079040527344, + "timestamp": "2025-05-19T17:07:50.568486", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_construction_summary/{version}", + "endpoint_name": "施工总结列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031967, + "start_time": "2025-05-19T17:07:50.568582", + "end_time": "2025-05-19T17:07:50.600549", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014843940734863281, + "timestamp": "2025-05-19T17:07:50.583518", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016849994659423828, + "timestamp": "2025-05-19T17:07:50.600500", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_construction_summary", + "endpoint_name": "施工总结数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.034123, + "start_time": "2025-05-19T17:07:50.600591", + "end_time": "2025-05-19T17:07:50.634714", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015516996383666992, + "timestamp": "2025-05-19T17:07:50.616148", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018419265747070312, + "timestamp": "2025-05-19T17:07:50.634614", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_construction_summary", + "endpoint_name": "施工总结数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032162, + "start_time": "2025-05-19T17:07:50.634792", + "end_time": "2025-05-19T17:07:50.666954", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01682305335998535, + "timestamp": "2025-05-19T17:07:50.651719", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015144824981689453, + "timestamp": "2025-05-19T17:07:50.666907", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_construction_summary", + "endpoint_name": "施工总结数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029346, + "start_time": "2025-05-19T17:07:50.667015", + "end_time": "2025-05-19T17:07:50.696361", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014492034912109375, + "timestamp": "2025-05-19T17:07:50.681611", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014568090438842773, + "timestamp": "2025-05-19T17:07:50.696256", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_construction_summary/{version}/{id}", + "endpoint_name": "施工总结查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.033825, + "start_time": "2025-05-19T17:07:50.696640", + "end_time": "2025-05-19T17:07:50.730465", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019771814346313477, + "timestamp": "2025-05-19T17:07:50.716531", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013787984848022461, + "timestamp": "2025-05-19T17:07:50.730427", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_job_daily/{version}", + "endpoint_name": "井下作业日报列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.02804, + "start_time": "2025-05-19T17:07:50.730537", + "end_time": "2025-05-19T17:07:50.758577", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013880014419555664, + "timestamp": "2025-05-19T17:07:50.744505", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013962030410766602, + "timestamp": "2025-05-19T17:07:50.758513", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_ops_job_daily", + "endpoint_name": "井下作业日报数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.03091, + "start_time": "2025-05-19T17:07:50.758652", + "end_time": "2025-05-19T17:07:50.789562", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014277219772338867, + "timestamp": "2025-05-19T17:07:50.773030", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016473054885864258, + "timestamp": "2025-05-19T17:07:50.789539", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_ops_job_daily", + "endpoint_name": "井下作业日报数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032171, + "start_time": "2025-05-19T17:07:50.789586", + "end_time": "2025-05-19T17:07:50.821757", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017644643783569336, + "timestamp": "2025-05-19T17:07:50.807277", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014369964599609375, + "timestamp": "2025-05-19T17:07:50.821728", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_ops_job_daily", + "endpoint_name": "井下作业日报数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028124, + "start_time": "2025-05-19T17:07:50.821790", + "end_time": "2025-05-19T17:07:50.849914", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014272928237915039, + "timestamp": "2025-05-19T17:07:50.836124", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013618946075439453, + "timestamp": "2025-05-19T17:07:50.849888", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_ops_job_daily/{version}/{id}", + "endpoint_name": "井下作业日报查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030012, + "start_time": "2025-05-19T17:07:50.849944", + "end_time": "2025-05-19T17:07:50.879956", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014076948165893555, + "timestamp": "2025-05-19T17:07:50.864064", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015757083892822266, + "timestamp": "2025-05-19T17:07:50.879871", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_con_sum_management_info/{version}", + "endpoint_name": "施工总结管理信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.035241, + "start_time": "2025-05-19T17:07:50.880051", + "end_time": "2025-05-19T17:07:50.915292", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.0159299373626709, + "timestamp": "2025-05-19T17:07:50.896141", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018673181533813477, + "timestamp": "2025-05-19T17:07:50.915211", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_con_sum_management_info", + "endpoint_name": "施工总结管理信息数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.027448, + "start_time": "2025-05-19T17:07:50.915352", + "end_time": "2025-05-19T17:07:50.942800", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01358175277709961, + "timestamp": "2025-05-19T17:07:50.929024", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013674020767211914, + "timestamp": "2025-05-19T17:07:50.942738", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_con_sum_management_info", + "endpoint_name": "施工总结管理信息数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032453, + "start_time": "2025-05-19T17:07:50.942861", + "end_time": "2025-05-19T17:07:50.975314", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014676809310913086, + "timestamp": "2025-05-19T17:07:50.957636", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017563819885253906, + "timestamp": "2025-05-19T17:07:50.975267", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_con_sum_management_info", + "endpoint_name": "施工总结管理信息数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.031199, + "start_time": "2025-05-19T17:07:50.975376", + "end_time": "2025-05-19T17:07:51.006575", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014706850051879883, + "timestamp": "2025-05-19T17:07:50.990275", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01618814468383789, + "timestamp": "2025-05-19T17:07:51.006544", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_con_sum_management_info/{version}/{id}", + "endpoint_name": "施工总结管理信息查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.02981, + "start_time": "2025-05-19T17:07:51.006609", + "end_time": "2025-05-19T17:07:51.036419", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013847827911376953, + "timestamp": "2025-05-19T17:07:51.020505", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01573491096496582, + "timestamp": "2025-05-19T17:07:51.036346", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_sidewall_core_stat/{version}", + "endpoint_name": "井壁取心统计列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.035237, + "start_time": "2025-05-19T17:07:51.036465", + "end_time": "2025-05-19T17:07:51.071702", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019198179244995117, + "timestamp": "2025-05-19T17:07:51.055713", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01575493812561035, + "timestamp": "2025-05-19T17:07:51.071673", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_rpt_sidewall_core_stat", + "endpoint_name": "井壁取心统计数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.028455, + "start_time": "2025-05-19T17:07:51.071734", + "end_time": "2025-05-19T17:07:51.100189", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014021158218383789, + "timestamp": "2025-05-19T17:07:51.085798", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014333248138427734, + "timestamp": "2025-05-19T17:07:51.100167", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_rpt_sidewall_core_stat", + "endpoint_name": "井壁取心统计数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.035551, + "start_time": "2025-05-19T17:07:51.100216", + "end_time": "2025-05-19T17:07:51.135767", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014189004898071289, + "timestamp": "2025-05-19T17:07:51.114444", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02126169204711914, + "timestamp": "2025-05-19T17:07:51.135743", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_sidewall_core_stat", + "endpoint_name": "井壁取心统计数据添加 ", + "overall_status": "部分成功", + "duration_seconds": 0.041684, + "start_time": "2025-05-19T17:07:51.135794", + "end_time": "2025-05-19T17:07:51.177478", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.026053905487060547, + "timestamp": "2025-05-19T17:07:51.161890", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01547098159790039, + "timestamp": "2025-05-19T17:07:51.177434", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_rpt_sidewall_core_stat/{version}/{id}", + "endpoint_name": "井壁取心统计查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030706, + "start_time": "2025-05-19T17:07:51.177543", + "end_time": "2025-05-19T17:07:51.208249", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014293670654296875, + "timestamp": "2025-05-19T17:07:51.191937", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016197919845581055, + "timestamp": "2025-05-19T17:07:51.208221", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core_scan/{version}", + "endpoint_name": "岩心图像扫描记录列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031968, + "start_time": "2025-05-19T17:07:51.208289", + "end_time": "2025-05-19T17:07:51.240257", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013727903366088867, + "timestamp": "2025-05-19T17:07:51.222061", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018108844757080078, + "timestamp": "2025-05-19T17:07:51.240215", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_core_scan", + "endpoint_name": "岩心图像扫描记录数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.033946, + "start_time": "2025-05-19T17:07:51.240314", + "end_time": "2025-05-19T17:07:51.274260", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018889904022216797, + "timestamp": "2025-05-19T17:07:51.259305", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014854907989501953, + "timestamp": "2025-05-19T17:07:51.274204", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_core_scan", + "endpoint_name": "岩心图像扫描记录数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.06231, + "start_time": "2025-05-19T17:07:51.274340", + "end_time": "2025-05-19T17:07:51.336650", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.022548913955688477, + "timestamp": "2025-05-19T17:07:51.296985", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.03947305679321289, + "timestamp": "2025-05-19T17:07:51.336599", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core_scan", + "endpoint_name": "岩心图像扫描记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.036275, + "start_time": "2025-05-19T17:07:51.336686", + "end_time": "2025-05-19T17:07:51.372961", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01695108413696289, + "timestamp": "2025-05-19T17:07:51.353682", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01899886131286621, + "timestamp": "2025-05-19T17:07:51.372863", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_core_scan/{version}/{id}", + "endpoint_name": "岩心图像扫描记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032184, + "start_time": "2025-05-19T17:07:51.373043", + "end_time": "2025-05-19T17:07:51.405227", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016828060150146484, + "timestamp": "2025-05-19T17:07:51.389976", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01512002944946289, + "timestamp": "2025-05-19T17:07:51.405166", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_gas_data/{version}", + "endpoint_name": "气测迟到数据表列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029321, + "start_time": "2025-05-19T17:07:51.405314", + "end_time": "2025-05-19T17:07:51.434635", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01459503173828125, + "timestamp": "2025-05-19T17:07:51.420002", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01451420783996582, + "timestamp": "2025-05-19T17:07:51.434562", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_gas_data", + "endpoint_name": "气测迟到数据表数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030303, + "start_time": "2025-05-19T17:07:51.434761", + "end_time": "2025-05-19T17:07:51.465064", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013544082641601562, + "timestamp": "2025-05-19T17:07:51.448455", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01648736000061035, + "timestamp": "2025-05-19T17:07:51.464993", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_gas_data", + "endpoint_name": "气测迟到数据表数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.031243, + "start_time": "2025-05-19T17:07:51.465131", + "end_time": "2025-05-19T17:07:51.496374", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014827966690063477, + "timestamp": "2025-05-19T17:07:51.480088", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016180992126464844, + "timestamp": "2025-05-19T17:07:51.496348", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_gas_data", + "endpoint_name": "气测迟到数据表数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.12792, + "start_time": "2025-05-19T17:07:51.496398", + "end_time": "2025-05-19T17:07:51.624318", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013990163803100586, + "timestamp": "2025-05-19T17:07:51.510593", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.11345386505126953, + "timestamp": "2025-05-19T17:07:51.624162", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_gas_data/{version}/{id}", + "endpoint_name": "气测迟到数据表查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.035118, + "start_time": "2025-05-19T17:07:51.624427", + "end_time": "2025-05-19T17:07:51.659545", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.02039194107055664, + "timestamp": "2025-05-19T17:07:51.644929", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014549016952514648, + "timestamp": "2025-05-19T17:07:51.659518", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_residual_carbon", + "endpoint_name": "残余碳分析记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028078, + "start_time": "2025-05-19T17:07:51.659573", + "end_time": "2025-05-19T17:07:51.687651", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.0135650634765625, + "timestamp": "2025-05-19T17:07:51.673179", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014405965805053711, + "timestamp": "2025-05-19T17:07:51.687628", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_residual_carbon", + "endpoint_name": "残余碳分析记录数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030106, + "start_time": "2025-05-19T17:07:51.687684", + "end_time": "2025-05-19T17:07:51.717790", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015502214431762695, + "timestamp": "2025-05-19T17:07:51.703226", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014503240585327148, + "timestamp": "2025-05-19T17:07:51.717767", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_residual_carbon", + "endpoint_name": "残余碳分析记录数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.028387, + "start_time": "2025-05-19T17:07:51.717819", + "end_time": "2025-05-19T17:07:51.746206", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015378952026367188, + "timestamp": "2025-05-19T17:07:51.733237", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.012907028198242188, + "timestamp": "2025-05-19T17:07:51.746180", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_residual_carbon/{version}/{id}", + "endpoint_name": "残余碳分析记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032974, + "start_time": "2025-05-19T17:07:51.746236", + "end_time": "2025-05-19T17:07:51.779210", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01425313949584961, + "timestamp": "2025-05-19T17:07:51.760534", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01861119270324707, + "timestamp": "2025-05-19T17:07:51.779186", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_residual_carbon/{version}", + "endpoint_name": "残余碳分析记录列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029152, + "start_time": "2025-05-19T17:07:51.779236", + "end_time": "2025-05-19T17:07:51.808388", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014626026153564453, + "timestamp": "2025-05-19T17:07:51.793906", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014417886734008789, + "timestamp": "2025-05-19T17:07:51.808362", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core/{version}", + "endpoint_name": "井壁取心列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029242, + "start_time": "2025-05-19T17:07:51.808415", + "end_time": "2025-05-19T17:07:51.837657", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014338254928588867, + "timestamp": "2025-05-19T17:07:51.822795", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01473689079284668, + "timestamp": "2025-05-19T17:07:51.837634", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core", + "endpoint_name": "井壁取心数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032384, + "start_time": "2025-05-19T17:07:51.837687", + "end_time": "2025-05-19T17:07:51.870071", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017328977584838867, + "timestamp": "2025-05-19T17:07:51.855056", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014957904815673828, + "timestamp": "2025-05-19T17:07:51.870048", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core", + "endpoint_name": "井壁取心数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.033738, + "start_time": "2025-05-19T17:07:51.870096", + "end_time": "2025-05-19T17:07:51.903834", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018498897552490234, + "timestamp": "2025-05-19T17:07:51.888639", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015114068984985352, + "timestamp": "2025-05-19T17:07:51.903811", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core", + "endpoint_name": "井壁取心数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.02987, + "start_time": "2025-05-19T17:07:51.903858", + "end_time": "2025-05-19T17:07:51.933728", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015094995498657227, + "timestamp": "2025-05-19T17:07:51.919105", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014525175094604492, + "timestamp": "2025-05-19T17:07:51.933703", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core/{version}/{id}", + "endpoint_name": "井壁取心查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032092, + "start_time": "2025-05-19T17:07:51.933757", + "end_time": "2025-05-19T17:07:51.965849", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017343997955322266, + "timestamp": "2025-05-19T17:07:51.951148", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014473915100097656, + "timestamp": "2025-05-19T17:07:51.965700", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_bas_gas", + "endpoint_name": "气测录井基础信息数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032585, + "start_time": "2025-05-19T17:07:51.965964", + "end_time": "2025-05-19T17:07:51.998549", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.0176541805267334, + "timestamp": "2025-05-19T17:07:51.983724", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01423788070678711, + "timestamp": "2025-05-19T17:07:51.998425", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_bas_gas", + "endpoint_name": "气测录井基础信息数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.03698, + "start_time": "2025-05-19T17:07:51.998767", + "end_time": "2025-05-19T17:07:52.035747", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014139890670776367, + "timestamp": "2025-05-19T17:07:52.013049", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.022598981857299805, + "timestamp": "2025-05-19T17:07:52.035694", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_gas", + "endpoint_name": "气测录井基础信息数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.030201, + "start_time": "2025-05-19T17:07:52.035814", + "end_time": "2025-05-19T17:07:52.066015", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01510000228881836, + "timestamp": "2025-05-19T17:07:52.051013", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014854907989501953, + "timestamp": "2025-05-19T17:07:52.065948", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_gas/{version}", + "endpoint_name": "气测录井基础信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030005, + "start_time": "2025-05-19T17:07:52.066080", + "end_time": "2025-05-19T17:07:52.096085", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015252113342285156, + "timestamp": "2025-05-19T17:07:52.081683", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01421976089477539, + "timestamp": "2025-05-19T17:07:52.096014", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_bas_gas/{version}/{id}", + "endpoint_name": "气测录井基础信息查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.035288, + "start_time": "2025-05-19T17:07:52.096152", + "end_time": "2025-05-19T17:07:52.131440", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017163991928100586, + "timestamp": "2025-05-19T17:07:52.113618", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017691850662231445, + "timestamp": "2025-05-19T17:07:52.131372", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_bas_mud_logging_interp/{version}/{id}", + "endpoint_name": "录井综合解释查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.0301, + "start_time": "2025-05-19T17:07:52.131572", + "end_time": "2025-05-19T17:07:52.161672", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015474081039428711, + "timestamp": "2025-05-19T17:07:52.147260", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014241218566894531, + "timestamp": "2025-05-19T17:07:52.161626", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_mud_logging_interp", + "endpoint_name": "录井综合解释数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028446, + "start_time": "2025-05-19T17:07:52.161734", + "end_time": "2025-05-19T17:07:52.190180", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014526128768920898, + "timestamp": "2025-05-19T17:07:52.176346", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01370382308959961, + "timestamp": "2025-05-19T17:07:52.190100", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_bas_mud_logging_interp", + "endpoint_name": "录井综合解释数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.036027, + "start_time": "2025-05-19T17:07:52.190393", + "end_time": "2025-05-19T17:07:52.226420", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017091035842895508, + "timestamp": "2025-05-19T17:07:52.207707", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01856684684753418, + "timestamp": "2025-05-19T17:07:52.226362", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_bas_mud_logging_interp", + "endpoint_name": "录井综合解释数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029199, + "start_time": "2025-05-19T17:07:52.226499", + "end_time": "2025-05-19T17:07:52.255698", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014560937881469727, + "timestamp": "2025-05-19T17:07:52.241171", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014335155487060547, + "timestamp": "2025-05-19T17:07:52.255626", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_mud_logging_interp/{version}", + "endpoint_name": "录井综合解释列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.028697, + "start_time": "2025-05-19T17:07:52.255773", + "end_time": "2025-05-19T17:07:52.284470", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014016151428222656, + "timestamp": "2025-05-19T17:07:52.269894", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014481067657470703, + "timestamp": "2025-05-19T17:07:52.284444", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_logging_daily/{version}", + "endpoint_name": "录井日报列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.034891, + "start_time": "2025-05-19T17:07:52.284502", + "end_time": "2025-05-19T17:07:52.319393", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016546010971069336, + "timestamp": "2025-05-19T17:07:52.301095", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018145084381103516, + "timestamp": "2025-05-19T17:07:52.319324", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_rpt_logging_daily", + "endpoint_name": "录井日报数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.027741, + "start_time": "2025-05-19T17:07:52.319462", + "end_time": "2025-05-19T17:07:52.347203", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01390528678894043, + "timestamp": "2025-05-19T17:07:52.333482", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013543844223022461, + "timestamp": "2025-05-19T17:07:52.347124", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_rpt_logging_daily", + "endpoint_name": "录井日报数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.028629, + "start_time": "2025-05-19T17:07:52.347303", + "end_time": "2025-05-19T17:07:52.375932", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01485896110534668, + "timestamp": "2025-05-19T17:07:52.362275", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01353001594543457, + "timestamp": "2025-05-19T17:07:52.375886", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_rpt_logging_daily", + "endpoint_name": "录井日报数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.032044, + "start_time": "2025-05-19T17:07:52.375992", + "end_time": "2025-05-19T17:07:52.408036", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01708698272705078, + "timestamp": "2025-05-19T17:07:52.393182", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014709949493408203, + "timestamp": "2025-05-19T17:07:52.407994", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_rpt_logging_daily/{version}/{id}", + "endpoint_name": "录井日报查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032207, + "start_time": "2025-05-19T17:07:52.408066", + "end_time": "2025-05-19T17:07:52.440273", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017470836639404297, + "timestamp": "2025-05-19T17:07:52.425588", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014574766159057617, + "timestamp": "2025-05-19T17:07:52.440207", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_bas_acid_incr_stim/{version}", + "endpoint_name": "酸化基础数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.028792, + "start_time": "2025-05-19T17:07:52.440343", + "end_time": "2025-05-19T17:07:52.469135", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01401209831237793, + "timestamp": "2025-05-19T17:07:52.454874", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014105081558227539, + "timestamp": "2025-05-19T17:07:52.469044", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/dh_bas_acid_incr_stim", + "endpoint_name": "酸化基础数据数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030528, + "start_time": "2025-05-19T17:07:52.469209", + "end_time": "2025-05-19T17:07:52.499737", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016234874725341797, + "timestamp": "2025-05-19T17:07:52.485546", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01402592658996582, + "timestamp": "2025-05-19T17:07:52.499660", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/dh_bas_acid_incr_stim", + "endpoint_name": "酸化基础数据数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032925, + "start_time": "2025-05-19T17:07:52.499804", + "end_time": "2025-05-19T17:07:52.532729", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01776576042175293, + "timestamp": "2025-05-19T17:07:52.517872", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014652013778686523, + "timestamp": "2025-05-19T17:07:52.532631", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/dh_bas_acid_incr_stim", + "endpoint_name": "酸化基础数据数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.071046, + "start_time": "2025-05-19T17:07:52.532797", + "end_time": "2025-05-19T17:07:52.603843", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.05126810073852539, + "timestamp": "2025-05-19T17:07:52.584194", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019475221633911133, + "timestamp": "2025-05-19T17:07:52.603816", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/dh_bas_acid_incr_stim/{version}/{id}", + "endpoint_name": "酸化基础数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.027952, + "start_time": "2025-05-19T17:07:52.603883", + "end_time": "2025-05-19T17:07:52.631835", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013847112655639648, + "timestamp": "2025-05-19T17:07:52.617778", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013992071151733398, + "timestamp": "2025-05-19T17:07:52.631810", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_cuttings/{version}", + "endpoint_name": "岩屑描述记录列表查询 ", + "overall_status": "部分成功", + "duration_seconds": 0.028381, + "start_time": "2025-05-19T17:07:52.631863", + "end_time": "2025-05-19T17:07:52.660244", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014271020889282227, + "timestamp": "2025-05-19T17:07:52.646178", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014001131057739258, + "timestamp": "2025-05-19T17:07:52.660219", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_cuttings", + "endpoint_name": "岩屑描述记录数据修改 ", + "overall_status": "部分成功", + "duration_seconds": 0.032581, + "start_time": "2025-05-19T17:07:52.660270", + "end_time": "2025-05-19T17:07:52.692851", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015506982803344727, + "timestamp": "2025-05-19T17:07:52.675819", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016973018646240234, + "timestamp": "2025-05-19T17:07:52.692826", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_cuttings", + "endpoint_name": "岩屑描述记录数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.028283, + "start_time": "2025-05-19T17:07:52.692880", + "end_time": "2025-05-19T17:07:52.721163", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014928817749023438, + "timestamp": "2025-05-19T17:07:52.707851", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01324915885925293, + "timestamp": "2025-05-19T17:07:52.721137", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_cuttings", + "endpoint_name": "岩屑描述记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.027017, + "start_time": "2025-05-19T17:07:52.721194", + "end_time": "2025-05-19T17:07:52.748211", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013918161392211914, + "timestamp": "2025-05-19T17:07:52.735153", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.012996196746826172, + "timestamp": "2025-05-19T17:07:52.748185", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_cuttings/{version}/{id}", + "endpoint_name": "岩屑描述记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.035382, + "start_time": "2025-05-19T17:07:52.748239", + "end_time": "2025-05-19T17:07:52.783621", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01617598533630371, + "timestamp": "2025-05-19T17:07:52.764457", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019094228744506836, + "timestamp": "2025-05-19T17:07:52.783589", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_mud_logging_interp/{version}", + "endpoint_name": "录井解释成果表列表查询 ", + "overall_status": "部分成功", + "duration_seconds": 0.029092, + "start_time": "2025-05-19T17:07:52.783651", + "end_time": "2025-05-19T17:07:52.812743", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014282941818237305, + "timestamp": "2025-05-19T17:07:52.798038", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014639854431152344, + "timestamp": "2025-05-19T17:07:52.812715", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_mud_logging_interp", + "endpoint_name": "录井解释成果表数据修改 ", + "overall_status": "部分成功", + "duration_seconds": 0.030174, + "start_time": "2025-05-19T17:07:52.812775", + "end_time": "2025-05-19T17:07:52.842949", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014508962631225586, + "timestamp": "2025-05-19T17:07:52.827328", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.0155029296875, + "timestamp": "2025-05-19T17:07:52.842873", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_mud_logging_interp", + "endpoint_name": "录井解释成果表数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.038857, + "start_time": "2025-05-19T17:07:52.843014", + "end_time": "2025-05-19T17:07:52.881871", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018359899520874023, + "timestamp": "2025-05-19T17:07:52.861876", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019058942794799805, + "timestamp": "2025-05-19T17:07:52.881032", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_mud_logging_interp", + "endpoint_name": "录井解释成果表数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.045471, + "start_time": "2025-05-19T17:07:52.881967", + "end_time": "2025-05-19T17:07:52.927438", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020708799362182617, + "timestamp": "2025-05-19T17:07:52.902898", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02436089515686035, + "timestamp": "2025-05-19T17:07:52.927393", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_mud_logging_interp/{version}/{id}", + "endpoint_name": "录井解释成果表查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030531, + "start_time": "2025-05-19T17:07:52.927473", + "end_time": "2025-05-19T17:07:52.958004", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015034914016723633, + "timestamp": "2025-05-19T17:07:52.942605", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015316009521484375, + "timestamp": "2025-05-19T17:07:52.957962", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_core/{version}/{id}", + "endpoint_name": "钻井取心筒次数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032559, + "start_time": "2025-05-19T17:07:52.958040", + "end_time": "2025-05-19T17:07:52.990599", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013842105865478516, + "timestamp": "2025-05-19T17:07:52.971922", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018426895141601562, + "timestamp": "2025-05-19T17:07:52.990500", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_core", + "endpoint_name": "钻井取心筒次数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.03515, + "start_time": "2025-05-19T17:07:52.990732", + "end_time": "2025-05-19T17:07:53.025882", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015437126159667969, + "timestamp": "2025-05-19T17:07:53.006558", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.019093036651611328, + "timestamp": "2025-05-19T17:07:53.025832", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_core", + "endpoint_name": "钻井取心筒次数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.033815, + "start_time": "2025-05-19T17:07:53.025947", + "end_time": "2025-05-19T17:07:53.059762", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019233226776123047, + "timestamp": "2025-05-19T17:07:53.045278", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01434183120727539, + "timestamp": "2025-05-19T17:07:53.059707", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core", + "endpoint_name": "钻井取心筒次数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.115287, + "start_time": "2025-05-19T17:07:53.059850", + "end_time": "2025-05-19T17:07:53.175137", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.031912803649902344, + "timestamp": "2025-05-19T17:07:53.091887", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.08313226699829102, + "timestamp": "2025-05-19T17:07:53.175093", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core/{version}", + "endpoint_name": "钻井取心筒次数据列表查询 ", + "overall_status": "部分成功", + "duration_seconds": 0.042968, + "start_time": "2025-05-19T17:07:53.175196", + "end_time": "2025-05-19T17:07:53.218164", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.02294611930847168, + "timestamp": "2025-05-19T17:07:53.198237", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018976926803588867, + "timestamp": "2025-05-19T17:07:53.218112", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core_desc/{version}", + "endpoint_name": "钻井取心描述记录列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030305, + "start_time": "2025-05-19T17:07:53.218239", + "end_time": "2025-05-19T17:07:53.248544", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015357732772827148, + "timestamp": "2025-05-19T17:07:53.233692", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014680862426757812, + "timestamp": "2025-05-19T17:07:53.248477", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_core_desc", + "endpoint_name": "钻井取心描述记录数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.033677, + "start_time": "2025-05-19T17:07:53.248628", + "end_time": "2025-05-19T17:07:53.282305", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01840996742248535, + "timestamp": "2025-05-19T17:07:53.267163", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01499795913696289, + "timestamp": "2025-05-19T17:07:53.282258", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_core_desc", + "endpoint_name": "钻井取心描述记录数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029149, + "start_time": "2025-05-19T17:07:53.282371", + "end_time": "2025-05-19T17:07:53.311520", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014188766479492188, + "timestamp": "2025-05-19T17:07:53.296678", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014672279357910156, + "timestamp": "2025-05-19T17:07:53.311464", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_core_desc", + "endpoint_name": "钻井取心描述记录数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.051558, + "start_time": "2025-05-19T17:07:53.311595", + "end_time": "2025-05-19T17:07:53.363153", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.02348804473876953, + "timestamp": "2025-05-19T17:07:53.335266", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.027595043182373047, + "timestamp": "2025-05-19T17:07:53.363128", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_core_desc/{version}/{id}", + "endpoint_name": "钻井取心描述记录查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.035401, + "start_time": "2025-05-19T17:07:53.363181", + "end_time": "2025-05-19T17:07:53.398582", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.02025008201599121, + "timestamp": "2025-05-19T17:07:53.383479", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014935731887817383, + "timestamp": "2025-05-19T17:07:53.398529", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_gas_interp/{version}", + "endpoint_name": "气测解释成果列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.029426, + "start_time": "2025-05-19T17:07:53.398664", + "end_time": "2025-05-19T17:07:53.428090", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01499795913696289, + "timestamp": "2025-05-19T17:07:53.413793", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01416778564453125, + "timestamp": "2025-05-19T17:07:53.428034", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_gas_interp", + "endpoint_name": "气测解释成果数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.032894, + "start_time": "2025-05-19T17:07:53.428166", + "end_time": "2025-05-19T17:07:53.461060", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014410018920898438, + "timestamp": "2025-05-19T17:07:53.442702", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018139123916625977, + "timestamp": "2025-05-19T17:07:53.460962", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_gas_interp", + "endpoint_name": "气测解释成果数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.033648, + "start_time": "2025-05-19T17:07:53.461214", + "end_time": "2025-05-19T17:07:53.494862", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018908977508544922, + "timestamp": "2025-05-19T17:07:53.480260", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.0144500732421875, + "timestamp": "2025-05-19T17:07:53.494802", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_gas_interp", + "endpoint_name": "气测解释成果数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.028976, + "start_time": "2025-05-19T17:07:53.494939", + "end_time": "2025-05-19T17:07:53.523915", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014042854309082031, + "timestamp": "2025-05-19T17:07:53.509106", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014649152755737305, + "timestamp": "2025-05-19T17:07:53.523868", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_gas_interp/{version}/{id}", + "endpoint_name": "气测解释成果查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031289, + "start_time": "2025-05-19T17:07:53.523984", + "end_time": "2025-05-19T17:07:53.555273", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014072179794311523, + "timestamp": "2025-05-19T17:07:53.538157", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01693415641784668, + "timestamp": "2025-05-19T17:07:53.555220", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core_desc/{version}", + "endpoint_name": "取心描述列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.044269, + "start_time": "2025-05-19T17:07:53.555334", + "end_time": "2025-05-19T17:07:53.599603", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019266843795776367, + "timestamp": "2025-05-19T17:07:53.574700", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02473902702331543, + "timestamp": "2025-05-19T17:07:53.599550", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core_desc", + "endpoint_name": "取心描述数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030255, + "start_time": "2025-05-19T17:07:53.599676", + "end_time": "2025-05-19T17:07:53.629931", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015081167221069336, + "timestamp": "2025-05-19T17:07:53.614871", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014920234680175781, + "timestamp": "2025-05-19T17:07:53.629877", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core_desc", + "endpoint_name": "取心描述数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032686, + "start_time": "2025-05-19T17:07:53.630006", + "end_time": "2025-05-19T17:07:53.662692", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015806913375854492, + "timestamp": "2025-05-19T17:07:53.645937", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016623735427856445, + "timestamp": "2025-05-19T17:07:53.662636", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core_desc", + "endpoint_name": "取心描述数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.034653, + "start_time": "2025-05-19T17:07:53.662767", + "end_time": "2025-05-19T17:07:53.697420", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019028902053833008, + "timestamp": "2025-05-19T17:07:53.681917", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015290260314941406, + "timestamp": "2025-05-19T17:07:53.697372", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_sidewall_core_desc/{version}/{id}", + "endpoint_name": "取心描述查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030142, + "start_time": "2025-05-19T17:07:53.697489", + "end_time": "2025-05-19T17:07:53.727631", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013981819152832031, + "timestamp": "2025-05-19T17:07:53.711621", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015163898468017578, + "timestamp": "2025-05-19T17:07:53.727493", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_sealing_core/{version}", + "endpoint_name": "钻井取心列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.032162, + "start_time": "2025-05-19T17:07:53.727738", + "end_time": "2025-05-19T17:07:53.759900", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014991283416748047, + "timestamp": "2025-05-19T17:07:53.742864", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016473054885864258, + "timestamp": "2025-05-19T17:07:53.759625", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_bas_sealing_core", + "endpoint_name": "钻井取心数据修改 ", + "overall_status": "部分成功", + "duration_seconds": 0.0306, + "start_time": "2025-05-19T17:07:53.760130", + "end_time": "2025-05-19T17:07:53.790730", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014085054397583008, + "timestamp": "2025-05-19T17:07:53.774394", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01618480682373047, + "timestamp": "2025-05-19T17:07:53.790669", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_bas_sealing_core", + "endpoint_name": "钻井取心数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.028806, + "start_time": "2025-05-19T17:07:53.790819", + "end_time": "2025-05-19T17:07:53.819625", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01441192626953125, + "timestamp": "2025-05-19T17:07:53.805364", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014080047607421875, + "timestamp": "2025-05-19T17:07:53.819552", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_sealing_core", + "endpoint_name": "钻井取心数据添加 ", + "overall_status": "部分成功", + "duration_seconds": 0.035152, + "start_time": "2025-05-19T17:07:53.819703", + "end_time": "2025-05-19T17:07:53.854855", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020874977111816406, + "timestamp": "2025-05-19T17:07:53.840764", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013932943344116211, + "timestamp": "2025-05-19T17:07:53.854794", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_bas_sealing_core/{version}/{id}", + "endpoint_name": "钻井取心查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031714, + "start_time": "2025-05-19T17:07:53.854926", + "end_time": "2025-05-19T17:07:53.886640", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015633344650268555, + "timestamp": "2025-05-19T17:07:53.870667", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015651702880859375, + "timestamp": "2025-05-19T17:07:53.886489", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_well_zonation_scheme/{version}", + "endpoint_name": "单井地质分层列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.032483, + "start_time": "2025-05-19T17:07:53.886820", + "end_time": "2025-05-19T17:07:53.919303", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014718055725097656, + "timestamp": "2025-05-19T17:07:53.901655", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017429113388061523, + "timestamp": "2025-05-19T17:07:53.919162", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_bas_well_zonation_scheme", + "endpoint_name": "单井地质分层数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.03244, + "start_time": "2025-05-19T17:07:53.919386", + "end_time": "2025-05-19T17:07:53.951826", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018035888671875, + "timestamp": "2025-05-19T17:07:53.937581", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013987064361572266, + "timestamp": "2025-05-19T17:07:53.951667", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_bas_well_zonation_scheme", + "endpoint_name": "单井地质分层数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.029704, + "start_time": "2025-05-19T17:07:53.952048", + "end_time": "2025-05-19T17:07:53.981752", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01522207260131836, + "timestamp": "2025-05-19T17:07:53.967538", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014099836349487305, + "timestamp": "2025-05-19T17:07:53.981726", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_well_zonation_scheme", + "endpoint_name": "单井地质分层数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029502, + "start_time": "2025-05-19T17:07:53.981781", + "end_time": "2025-05-19T17:07:54.011283", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01371908187866211, + "timestamp": "2025-05-19T17:07:53.995545", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015666961669921875, + "timestamp": "2025-05-19T17:07:54.011248", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_bas_well_zonation_scheme/{version}/{id}", + "endpoint_name": "单井地质分层查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031971, + "start_time": "2025-05-19T17:07:54.011329", + "end_time": "2025-05-19T17:07:54.043300", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01708078384399414, + "timestamp": "2025-05-19T17:07:54.028467", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014729022979736328, + "timestamp": "2025-05-19T17:07:54.043237", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_bas_wellbore_stratum", + "endpoint_name": "地质分层数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.036688, + "start_time": "2025-05-19T17:07:54.043429", + "end_time": "2025-05-19T17:07:54.080117", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014707088470458984, + "timestamp": "2025-05-19T17:07:54.058271", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02174997329711914, + "timestamp": "2025-05-19T17:07:54.080091", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_bas_wellbore_stratum", + "endpoint_name": "地质分层数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.037988, + "start_time": "2025-05-19T17:07:54.080146", + "end_time": "2025-05-19T17:07:54.118134", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016034841537475586, + "timestamp": "2025-05-19T17:07:54.096251", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.021806955337524414, + "timestamp": "2025-05-19T17:07:54.118108", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_wellbore_stratum", + "endpoint_name": "地质分层数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.04377, + "start_time": "2025-05-19T17:07:54.118162", + "end_time": "2025-05-19T17:07:54.161932", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019886016845703125, + "timestamp": "2025-05-19T17:07:54.138108", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.02371811866760254, + "timestamp": "2025-05-19T17:07:54.161907", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_bas_wellbore_stratum/{version}", + "endpoint_name": "地质分层数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030684, + "start_time": "2025-05-19T17:07:54.161959", + "end_time": "2025-05-19T17:07:54.192643", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015306949615478516, + "timestamp": "2025-05-19T17:07:54.177312", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01515507698059082, + "timestamp": "2025-05-19T17:07:54.192578", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_bas_wellbore_stratum/{version}/{id}", + "endpoint_name": "地质分层数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032886, + "start_time": "2025-05-19T17:07:54.192719", + "end_time": "2025-05-19T17:07:54.225605", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015101194381713867, + "timestamp": "2025-05-19T17:07:54.207922", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017574071884155273, + "timestamp": "2025-05-19T17:07:54.225544", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_well/{version}", + "endpoint_name": "井基本信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.031308, + "start_time": "2025-05-19T17:07:54.225677", + "end_time": "2025-05-19T17:07:54.256985", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014245033264160156, + "timestamp": "2025-05-19T17:07:54.240019", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016878128051757812, + "timestamp": "2025-05-19T17:07:54.256943", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_well", + "endpoint_name": "井基本信息数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030972, + "start_time": "2025-05-19T17:07:54.257045", + "end_time": "2025-05-19T17:07:54.288017", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015092134475708008, + "timestamp": "2025-05-19T17:07:54.272234", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01564502716064453, + "timestamp": "2025-05-19T17:07:54.287981", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_well", + "endpoint_name": "井基本信息数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033949, + "start_time": "2025-05-19T17:07:54.288048", + "end_time": "2025-05-19T17:07:54.321997", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019129037857055664, + "timestamp": "2025-05-19T17:07:54.307249", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014642000198364258, + "timestamp": "2025-05-19T17:07:54.321937", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_well", + "endpoint_name": "井基本信息数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.029372, + "start_time": "2025-05-19T17:07:54.322059", + "end_time": "2025-05-19T17:07:54.351431", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014330148696899414, + "timestamp": "2025-05-19T17:07:54.336492", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014641046524047852, + "timestamp": "2025-05-19T17:07:54.351322", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_well/{version}/{id}", + "endpoint_name": "井基本信息查询详情-dsid", + "overall_status": "部分成功", + "duration_seconds": 0.03283, + "start_time": "2025-05-19T17:07:54.351531", + "end_time": "2025-05-19T17:07:54.384361", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018208980560302734, + "timestamp": "2025-05-19T17:07:54.369862", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014311075210571289, + "timestamp": "2025-05-19T17:07:54.384285", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/masterdata/cd_well/{version}/{id}", + "endpoint_name": "基本信息查询详情-井ID", + "overall_status": "部分成功", + "duration_seconds": 0.030606, + "start_time": "2025-05-19T17:07:54.384429", + "end_time": "2025-05-19T17:07:54.415035", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016582250595092773, + "timestamp": "2025-05-19T17:07:54.401119", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013791084289550781, + "timestamp": "2025-05-19T17:07:54.415007", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/naturalkey/cd_well/{version}", + "endpoint_name": "通过业务主键获取数据详情", + "overall_status": "部分成功", + "duration_seconds": 0.034813, + "start_time": "2025-05-19T17:07:54.415065", + "end_time": "2025-05-19T17:07:54.449878", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013879060745239258, + "timestamp": "2025-05-19T17:07:54.428991", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.020724058151245117, + "timestamp": "2025-05-19T17:07:54.449794", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_event/{version}", + "endpoint_name": "井作业阶段信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.028584, + "start_time": "2025-05-19T17:07:54.449964", + "end_time": "2025-05-19T17:07:54.478548", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014104127883911133, + "timestamp": "2025-05-19T17:07:54.464177", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014255285263061523, + "timestamp": "2025-05-19T17:07:54.478523", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_event/{version}/{id}", + "endpoint_name": "井作业阶段查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.028264, + "start_time": "2025-05-19T17:07:54.478578", + "end_time": "2025-05-19T17:07:54.506842", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014065980911254883, + "timestamp": "2025-05-19T17:07:54.492688", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01402902603149414, + "timestamp": "2025-05-19T17:07:54.506817", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_event", + "endpoint_name": "井作业阶段数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.035158, + "start_time": "2025-05-19T17:07:54.506870", + "end_time": "2025-05-19T17:07:54.542028", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01680302619934082, + "timestamp": "2025-05-19T17:07:54.523823", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.0181121826171875, + "timestamp": "2025-05-19T17:07:54.542004", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_event", + "endpoint_name": "井作业阶段数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.028014, + "start_time": "2025-05-19T17:07:54.542055", + "end_time": "2025-05-19T17:07:54.570069", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014596939086914062, + "timestamp": "2025-05-19T17:07:54.556691", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.0133209228515625, + "timestamp": "2025-05-19T17:07:54.570048", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_event", + "endpoint_name": "井作业阶段数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.0276, + "start_time": "2025-05-19T17:07:54.570095", + "end_time": "2025-05-19T17:07:54.597695", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013878107070922852, + "timestamp": "2025-05-19T17:07:54.584020", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013569116592407227, + "timestamp": "2025-05-19T17:07:54.597675", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_organization", + "endpoint_name": "组织机构数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.030956, + "start_time": "2025-05-19T17:07:54.597721", + "end_time": "2025-05-19T17:07:54.628677", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015817880630493164, + "timestamp": "2025-05-19T17:07:54.613585", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014986991882324219, + "timestamp": "2025-05-19T17:07:54.628650", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_organization", + "endpoint_name": "组织机构数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.031809, + "start_time": "2025-05-19T17:07:54.628706", + "end_time": "2025-05-19T17:07:54.660515", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016355037689208984, + "timestamp": "2025-05-19T17:07:54.645103", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015022039413452148, + "timestamp": "2025-05-19T17:07:54.660445", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_organization", + "endpoint_name": "组织机构数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.034968, + "start_time": "2025-05-19T17:07:54.660591", + "end_time": "2025-05-19T17:07:54.695559", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015573263168334961, + "timestamp": "2025-05-19T17:07:54.676280", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01914501190185547, + "timestamp": "2025-05-19T17:07:54.695516", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_organization/{version}/{id}", + "endpoint_name": "组织机构查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.032936, + "start_time": "2025-05-19T17:07:54.695597", + "end_time": "2025-05-19T17:07:54.728533", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016448020935058594, + "timestamp": "2025-05-19T17:07:54.712093", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016342878341674805, + "timestamp": "2025-05-19T17:07:54.728506", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_organization/{version}", + "endpoint_name": "组织机构信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.033436, + "start_time": "2025-05-19T17:07:54.728565", + "end_time": "2025-05-19T17:07:54.762001", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015278100967407227, + "timestamp": "2025-05-19T17:07:54.743961", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01795029640197754, + "timestamp": "2025-05-19T17:07:54.761960", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_wellbore_zone/{version}", + "endpoint_name": "小层分层数据列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.03358, + "start_time": "2025-05-19T17:07:54.762035", + "end_time": "2025-05-19T17:07:54.795615", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01543116569519043, + "timestamp": "2025-05-19T17:07:54.777547", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017796993255615234, + "timestamp": "2025-05-19T17:07:54.795449", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_wellbore_zone/{version}/{id}", + "endpoint_name": "小层分层数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.031638, + "start_time": "2025-05-19T17:07:54.795730", + "end_time": "2025-05-19T17:07:54.827368", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014605045318603516, + "timestamp": "2025-05-19T17:07:54.810800", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016143083572387695, + "timestamp": "2025-05-19T17:07:54.827129", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/{dms_instance_code}/v1/cd_wellbore_zone", + "endpoint_name": "小层分层数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.036266, + "start_time": "2025-05-19T17:07:54.827511", + "end_time": "2025-05-19T17:07:54.863777", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.020006895065307617, + "timestamp": "2025-05-19T17:07:54.847663", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015980958938598633, + "timestamp": "2025-05-19T17:07:54.863724", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/{dms_instance_code}/v1/cd_wellbore_zone", + "endpoint_name": "小层分层数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.031067, + "start_time": "2025-05-19T17:07:54.863883", + "end_time": "2025-05-19T17:07:54.894950", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015249252319335938, + "timestamp": "2025-05-19T17:07:54.879346", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015372991561889648, + "timestamp": "2025-05-19T17:07:54.894904", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/{dms_instance_code}/v1/cd_wellbore_zone", + "endpoint_name": "小层分层数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033351, + "start_time": "2025-05-19T17:07:54.895015", + "end_time": "2025-05-19T17:07:54.928366", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01439523696899414, + "timestamp": "2025-05-19T17:07:54.909502", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018706083297729492, + "timestamp": "2025-05-19T17:07:54.928313", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ops_hp_mat_smpl/{version}", + "endpoint_name": "高压物性取样列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.03514, + "start_time": "2025-05-19T17:07:54.928476", + "end_time": "2025-05-19T17:07:54.963616", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018542051315307617, + "timestamp": "2025-05-19T17:07:54.947156", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01629018783569336, + "timestamp": "2025-05-19T17:07:54.963521", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/{dms_instance_code}/v1/tp_ops_hp_mat_smpl", + "endpoint_name": "高压物性取样数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.031983, + "start_time": "2025-05-19T17:07:54.963754", + "end_time": "2025-05-19T17:07:54.995737", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015857934951782227, + "timestamp": "2025-05-19T17:07:54.979856", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015678882598876953, + "timestamp": "2025-05-19T17:07:54.995647", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/{dms_instance_code}/v1/tp_ops_hp_mat_smpl", + "endpoint_name": "高压物性取样数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.033187, + "start_time": "2025-05-19T17:07:54.995872", + "end_time": "2025-05-19T17:07:55.029059", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014600992202758789, + "timestamp": "2025-05-19T17:07:55.010713", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.018140792846679688, + "timestamp": "2025-05-19T17:07:55.028969", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/{dms_instance_code}/v1/tp_ops_hp_mat_smpl", + "endpoint_name": "高压物性取样数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.03291, + "start_time": "2025-05-19T17:07:55.029188", + "end_time": "2025-05-19T17:07:55.062098", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015612125396728516, + "timestamp": "2025-05-19T17:07:55.044981", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01694798469543457, + "timestamp": "2025-05-19T17:07:55.062057", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ops_hp_mat_smpl/{version}/{id}", + "endpoint_name": "高压物性取样查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.034108, + "start_time": "2025-05-19T17:07:55.062170", + "end_time": "2025-05-19T17:07:55.096278", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.016338825225830078, + "timestamp": "2025-05-19T17:07:55.078723", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01724386215209961, + "timestamp": "2025-05-19T17:07:55.096119", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_res_pyro_interp/{version}", + "endpoint_name": "储集岩热解解释成果数据列表查询 ", + "overall_status": "部分成功", + "duration_seconds": 0.038789, + "start_time": "2025-05-19T17:07:55.096528", + "end_time": "2025-05-19T17:07:55.135317", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.021148204803466797, + "timestamp": "2025-05-19T17:07:55.117813", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01685309410095215, + "timestamp": "2025-05-19T17:07:55.135229", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/ml_ach_res_pyro_interp", + "endpoint_name": "储集岩热解解释成果数据数据修改 ", + "overall_status": "部分成功", + "duration_seconds": 0.036368, + "start_time": "2025-05-19T17:07:55.135497", + "end_time": "2025-05-19T17:07:55.171865", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.019086837768554688, + "timestamp": "2025-05-19T17:07:55.154969", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016750097274780273, + "timestamp": "2025-05-19T17:07:55.171817", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/ml_ach_res_pyro_interp", + "endpoint_name": "储集岩热解解释成果数据数据删除 ", + "overall_status": "部分成功", + "duration_seconds": 0.035827, + "start_time": "2025-05-19T17:07:55.171923", + "end_time": "2025-05-19T17:07:55.207750", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018307209014892578, + "timestamp": "2025-05-19T17:07:55.190326", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.017302989959716797, + "timestamp": "2025-05-19T17:07:55.207722", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/ml_ach_res_pyro_interp", + "endpoint_name": "储集岩热解解释成果数据数据添加 ", + "overall_status": "部分成功", + "duration_seconds": 0.034417, + "start_time": "2025-05-19T17:07:55.207779", + "end_time": "2025-05-19T17:07:55.242196", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018109798431396484, + "timestamp": "2025-05-19T17:07:55.225933", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.016198158264160156, + "timestamp": "2025-05-19T17:07:55.242169", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/ml_ach_res_pyro_interp/{version}/{id}", + "endpoint_name": "储集岩热解解释成果数据查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.035446, + "start_time": "2025-05-19T17:07:55.242225", + "end_time": "2025-05-19T17:07:55.277671", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014807701110839844, + "timestamp": "2025-05-19T17:07:55.257076", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.020528793334960938, + "timestamp": "2025-05-19T17:07:55.277646", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_wellbore/{version}", + "endpoint_name": "井筒基本信息列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.030083, + "start_time": "2025-05-19T17:07:55.277700", + "end_time": "2025-05-19T17:07:55.307783", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01451420783996582, + "timestamp": "2025-05-19T17:07:55.292253", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015352964401245117, + "timestamp": "2025-05-19T17:07:55.307647", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_wellbore", + "endpoint_name": "井筒基本信息数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.030489, + "start_time": "2025-05-19T17:07:55.307892", + "end_time": "2025-05-19T17:07:55.338381", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.015015840530395508, + "timestamp": "2025-05-19T17:07:55.322965", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015336990356445312, + "timestamp": "2025-05-19T17:07:55.338347", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_wellbore", + "endpoint_name": "井筒基本信息数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.032602, + "start_time": "2025-05-19T17:07:55.338410", + "end_time": "2025-05-19T17:07:55.371012", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.018079042434692383, + "timestamp": "2025-05-19T17:07:55.356529", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014426231384277344, + "timestamp": "2025-05-19T17:07:55.370991", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_wellbore", + "endpoint_name": "井筒基本信息数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.047457, + "start_time": "2025-05-19T17:07:55.371041", + "end_time": "2025-05-19T17:07:55.418498", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.03304100036621094, + "timestamp": "2025-05-19T17:07:55.404131", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014215946197509766, + "timestamp": "2025-05-19T17:07:55.418425", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_wellbore/{version}/{id}", + "endpoint_name": "井筒基本信息查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.030356, + "start_time": "2025-05-19T17:07:55.418612", + "end_time": "2025-05-19T17:07:55.448968", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014789819717407227, + "timestamp": "2025-05-19T17:07:55.433519", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015307188034057617, + "timestamp": "2025-05-19T17:07:55.448901", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/tp_ach_hp_mat/{version}", + "endpoint_name": "高压物性分析列表查询", + "overall_status": "部分成功", + "duration_seconds": 0.033545, + "start_time": "2025-05-19T17:07:55.449043", + "end_time": "2025-05-19T17:07:55.482588", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.017143964767456055, + "timestamp": "2025-05-19T17:07:55.466868", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.015571117401123047, + "timestamp": "2025-05-19T17:07:55.482532", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "PUT /api/{dms_instance_code}/v1/tp_ach_hp_mat", + "endpoint_name": "高压物性分析数据修改", + "overall_status": "部分成功", + "duration_seconds": 0.03011, + "start_time": "2025-05-19T17:07:55.482731", + "end_time": "2025-05-19T17:07:55.512841", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01590585708618164, + "timestamp": "2025-05-19T17:07:55.498744", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.013956069946289062, + "timestamp": "2025-05-19T17:07:55.512779", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "DELETE /api/{dms_instance_code}/v1/tp_ach_hp_mat", + "endpoint_name": "高压物性分析数据删除", + "overall_status": "部分成功", + "duration_seconds": 0.034165, + "start_time": "2025-05-19T17:07:55.512903", + "end_time": "2025-05-19T17:07:55.547068", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.013820886611938477, + "timestamp": "2025-05-19T17:07:55.527360", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.01957392692565918, + "timestamp": "2025-05-19T17:07:55.547004", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "POST /api/{dms_instance_code}/v1/tp_ach_hp_mat", + "endpoint_name": "高压物性分析数据添加", + "overall_status": "部分成功", + "duration_seconds": 0.0297, + "start_time": "2025-05-19T17:07:55.547143", + "end_time": "2025-05-19T17:07:55.576843", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.01477193832397461, + "timestamp": "2025-05-19T17:07:55.562024", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.014607906341552734, + "timestamp": "2025-05-19T17:07:55.576741", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + }, + { + "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/tp_ach_hp_mat/{version}/{id}", + "endpoint_name": "高压物性分析查询详情", + "overall_status": "部分成功", + "duration_seconds": 0.02781, + "start_time": "2025-05-19T17:07:55.576924", + "end_time": "2025-05-19T17:07:55.604734", + "executed_test_cases": [ + { + "test_case_id": "TC-HEADER-001", + "test_case_name": "检查响应中是否存在 'X-Request-ID' 头", + "test_case_severity": "中", + "status": "失败", + "message": "", + "duration_seconds": 0.014668941497802734, + "timestamp": "2025-05-19T17:07:55.591737", + "validation_points": [ + { + "expected_header": "X-Request-ID", + "actual_headers": [ + "Vary", + "Access-Control-Allow-Origin", + "Content-Type", + "Content-Length", + "success", + "Date", + "Connection", + "Keep-Alive" + ] + } + ] + }, + { + "test_case_id": "TC-STATUS-001", + "test_case_name": "基本状态码 200 检查", + "test_case_severity": "严重", + "status": "通过", + "message": "", + "duration_seconds": 0.012926101684570312, + "timestamp": "2025-05-19T17:07:55.604705", + "validation_points": [ + { + "passed": true, + "message": "响应状态码为 200,符合预期 200。" + } + ] + } + ] + } + ] +} \ No newline at end of file