NFCcreate-web/linux64_release/test_api.sh
2025-09-25 19:04:00 +08:00

92 lines
2.3 KiB
Bash

#!/bin/bash
# CMAC API 測試腳本
echo "🚀 啟動 CMAC 驗證 API 測試..."
# 啟動 API 服務器
echo "📡 啟動 API 服務器..."
./cmac_api_server 8888 &
API_PID=$!
# 等待服務器啟動
sleep 3
# 檢查服務器是否啟動
if ! ps -p $API_PID > /dev/null 2>&1; then
echo "❌ API 服務器啟動失敗"
exit 1
fi
echo "✅ API 服務器已啟動 (PID: $API_PID)"
# 測試健康檢查
echo ""
echo "🏥 測試健康檢查..."
if HEALTH_RESPONSE=$(curl -s -m 5 "http://localhost:8888/health" 2>/dev/null); then
echo "✅ 健康檢查成功:"
echo "$HEALTH_RESPONSE" | head -5
else
echo "❌ 健康檢查失敗"
fi
# 測試首頁
echo ""
echo "🏠 測試首頁..."
if HOME_RESPONSE=$(curl -s -m 5 "http://localhost:8888/" 2>/dev/null); then
echo "✅ 首頁測試成功:"
echo "$HOME_RESPONSE" | grep -o '<title>.*</title>' || echo "HTML 回應正常"
else
echo "❌ 首頁測試失敗"
fi
# 測試 CMAC 驗證 (使用之前測試成功的資料)
echo ""
echo "🔐 測試 CMAC 驗證..."
TEST_UID="0456735AD51F90"
TEST_CTR="000028"
TEST_CMAC="222ED1BA962F7F5C"
TEST_KEY="1"
VERIFY_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}&cmac=${TEST_CMAC}&key=${TEST_KEY}"
if VERIFY_RESPONSE=$(curl -s -m 5 "$VERIFY_URL" 2>/dev/null); then
echo "✅ CMAC 驗證測試成功:"
echo "$VERIFY_RESPONSE"
else
echo "❌ CMAC 驗證測試失敗"
fi
# 測試錯誤的 CMAC
echo ""
echo "🚫 測試錯誤 CMAC (預期失敗)..."
WRONG_CMAC="FFFFFFFFFFFFFFFF"
WRONG_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}&cmac=${WRONG_CMAC}&key=${TEST_KEY}"
if WRONG_RESPONSE=$(curl -s -m 5 "$WRONG_URL" 2>/dev/null); then
echo "✅ 錯誤 CMAC 測試成功:"
echo "$WRONG_RESPONSE"
else
echo "❌ 錯誤 CMAC 測試失敗"
fi
# 測試缺少參數
echo ""
echo "📝 測試缺少參數 (預期失敗)..."
INCOMPLETE_URL="http://localhost:8888/verify?uid=${TEST_UID}&ctr=${TEST_CTR}"
if INCOMPLETE_RESPONSE=$(curl -s -m 5 "$INCOMPLETE_URL" 2>/dev/null); then
echo "✅ 缺少參數測試成功:"
echo "$INCOMPLETE_RESPONSE"
else
echo "❌ 缺少參數測試失敗"
fi
# 清理
echo ""
echo "🧹 清理中..."
kill $API_PID 2>/dev/null
wait $API_PID 2>/dev/null
echo ""
echo "✅ API 測試完成!"