#!/bin/bash # ======================================== # API 测试脚本 # ======================================== BASE_URL="http://localhost:8080" SESSION_ID="test-session" echo "🧪 DHCP & DNS 管理器 - API 测试" echo "==================================" echo "" # 1. 健康检查 echo "1. 健康检查..." curl -s "$BASE_URL/api/health" | python3 -m json.tool 2>/dev/null || echo "❌ 健康检查失败" echo "" # 2. 登录 echo "2. 登录..." LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/api/login" \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin"}') echo "$LOGIN_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "❌ 登录失败" echo "" # 3. 获取 DHCP 配置 echo "3. 获取 DHCP 配置..." curl -s "$BASE_URL/api/dhcp/config" \ -H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取 DHCP 配置失败" echo "" # 4. 更新 DHCP 配置 echo "4. 更新 DHCP 配置..." curl -s -X PUT "$BASE_URL/api/dhcp/config" \ -H "X-Session-ID: $SESSION_ID" \ -H "Content-Type: application/json" \ -d '{"network":"192.168.1.0","gateway":"192.168.1.1"}' | python3 -m json.tool 2>/dev/null || echo "❌ 更新 DHCP 配置失败" echo "" # 5. 获取 DNS 配置 echo "5. 获取 DNS 配置..." curl -s "$BASE_URL/api/dns/config" \ -H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取 DNS 配置失败" echo "" # 6. 更新 DNS 配置 echo "6. 更新 DNS 配置..." curl -s -X PUT "$BASE_URL/api/dns/config" \ -H "X-Session-ID: $SESSION_ID" \ -H "Content-Type: application/json" \ -d '{"listen_port":53,"recursion":true}' | python3 -m json.tool 2>/dev/null || echo "❌ 更新 DNS 配置失败" echo "" # 7. 获取完整配置 echo "7. 获取完整配置..." curl -s "$BASE_URL/api/config" \ -H "X-Session-ID: $SESSION_ID" | python3 -m json.tool 2>/dev/null || echo "❌ 获取完整配置失败" echo "" echo "==================================" echo "测试完成!" echo "" echo "💡 如果所有测试都通过,说明 API 工作正常" echo "💡 如果有失败,请检查服务器日志" echo ""