# 接口测试具体实现 import requests def execute_api_test_case(test_case_id: str, endpoint: str, http_method: str, headers: dict, request_body: bytes, expected_status_code: int): """ 实际执行API测试的函数。 可以集成 pytest, requests 等库。 """ base_url = "http://localhost:8080" # 假设 API 服务的基地址 full_url = f"{base_url}{endpoint}" log_output = [] success = False actual_status = 0 response_body = b"" log_output.append(f"Executing API test: {test_case_id} - {http_method} {full_url}") try: if http_method.upper() == "GET": response = requests.get(full_url, headers=headers, timeout=10) elif http_method.upper() == "POST": response = requests.post(full_url, headers=headers, data=request_body, timeout=10) # ... 其他 HTTP 方法 else: raise ValueError(f"Unsupported HTTP method: {http_method}") actual_status = response.status_code response_body = response.content log_output.append(f"Response Status: {actual_status}") log_output.append(f"Response Body: {response_body.decode('utf-8')[:500]}...") # 只显示前500字符 if actual_status == expected_status_code: success = True log_output.append("API Test PASSED: Status code matched.") else: success = False log_output.append(f"API Test FAILED: Expected {expected_status_code}, got {actual_status}.") except requests.exceptions.RequestException as e: log_output.append(f"API Test Failed (Request Exception): {e}") success = False except Exception as e: log_output.append(f"API Test Failed (Unexpected Error): {e}") success = False return success, actual_status, response_body, "\n".join(log_output)