8ad4c3576d
- Fixed verifyAssignment being too strict for new clients - Fixed parseRequestedIP string conversion bug - Fixed response sent to 0.0.0.0 instead of broadcast address - Added SO_BROADCAST support for UDP socket - Fixed session persistence after page refresh (localStorage) - Added in-memory session store for auth middleware - Added config reloader so DHCP server picks up web UI changes dynamically
67 рядки
2.1 KiB
Bash
Виконуваний файл
67 рядки
2.1 KiB
Bash
Виконуваний файл
#!/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 ""
|