测试服务器功能
(server_url, tool_names, test_timeout=10, connectivity_only=False)
| 234 | |
| 235 | |
| 236 | def test_servers(server_url, tool_names, test_timeout=10, connectivity_only=False): |
| 237 | """测试服务器功能""" |
| 238 | print(f"🧪 测试服务器: {server_url}") |
| 239 | |
| 240 | try: |
| 241 | # 基础连通性测试 |
| 242 | print(f"🔍 测试Master连通性: {server_url}/health") |
| 243 | response = requests.get(f"{server_url}/health", timeout=test_timeout) |
| 244 | if response.status_code == 200: |
| 245 | data = response.json() |
| 246 | print(" ✅ Master健康检查通过") |
| 247 | print(f" - 支持工具: {data.get('tools', [])}") |
| 248 | print(f" - 注册Worker数: {data.get('registered_workers', 0)}") |
| 249 | print(f" - 活跃Worker数: {len([w for w in data.get('workers', {}).values() if w.get('status') == 'alive'])}") |
| 250 | |
| 251 | if not connectivity_only: |
| 252 | # 详细端点测试 |
| 253 | print(f"\n🧪 测试工具端点...") |
| 254 | |
| 255 | for tool_name in tool_names: |
| 256 | print(f"\n--- 测试工具: {tool_name} ---") |
| 257 | success = True |
| 258 | |
| 259 | # 测试创建端点 |
| 260 | try: |
| 261 | create_url = f"{server_url}/{tool_name}/create" |
| 262 | test_data = {"instance_id": f"test_instance_{tool_name}", "identity": {"test": True}} |
| 263 | response = requests.post(create_url, json=test_data, timeout=test_timeout) |
| 264 | if response.status_code == 200 and response.json().get("success"): |
| 265 | print(f" ✅ 创建端点测试通过: {create_url}") |
| 266 | else: |
| 267 | print(f" ❌ 创建端点测试失败: 状态码 {response.status_code}") |
| 268 | success = False |
| 269 | except Exception as e: |
| 270 | print(f" ❌ 创建端点请求失败: {e}") |
| 271 | success = False |
| 272 | |
| 273 | # 测试执行端点 |
| 274 | try: |
| 275 | execute_url = f"{server_url}/{tool_name}/execute" |
| 276 | test_data = {"instance_id": f"test_instance_{tool_name}", "test_param": "value"} |
| 277 | response = requests.post(execute_url, json=test_data, timeout=test_timeout) |
| 278 | if response.status_code == 200: |
| 279 | print(f" ✅ 执行端点测试通过: {execute_url}") |
| 280 | else: |
| 281 | print(f" ❌ 执行端点测试失败: 状态码 {response.status_code}") |
| 282 | success = False |
| 283 | except Exception as e: |
| 284 | print(f" ❌ 执行端点请求失败: {e}") |
| 285 | success = False |
| 286 | |
| 287 | # 测试释放端点 |
| 288 | try: |
| 289 | release_url = f"{server_url}/{tool_name}/release" |
| 290 | test_data = {"instance_id": f"test_instance_{tool_name}"} |
| 291 | response = requests.post(release_url, json=test_data, timeout=test_timeout) |
| 292 | if response.status_code == 200 and response.json().get("success"): |
| 293 | print(f" ✅ 释放端点测试通过: {release_url}") |