Initial commit: SMS Forwarder project with Docker support
This commit is contained in:
114
scripts/test-docker.sh
Executable file
114
scripts/test-docker.sh
Executable file
@ -0,0 +1,114 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Docker 环境测试脚本
|
||||
|
||||
set -e
|
||||
|
||||
echo "🧪 SMS Forwarder Docker 测试"
|
||||
echo "============================"
|
||||
|
||||
# 检查服务是否运行
|
||||
check_service() {
|
||||
if ! docker ps --filter "name=sms-forwarder" --filter "status=running" | grep -q sms-forwarder; then
|
||||
echo "❌ SMS Forwarder 服务未运行"
|
||||
echo "请先运行: docker-compose up -d"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 服务正在运行"
|
||||
}
|
||||
|
||||
# 获取 API 密钥
|
||||
get_api_key() {
|
||||
if [ -f "config.yaml" ]; then
|
||||
API_KEY=$(grep "api_key:" config.yaml | awk '{print $2}' | tr -d '"')
|
||||
if [ -z "$API_KEY" ]; then
|
||||
echo "❌ 无法从配置文件获取 API 密钥"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 获取到 API 密钥"
|
||||
else
|
||||
echo "❌ 配置文件不存在"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 测试健康检查
|
||||
test_health() {
|
||||
echo "🔍 测试健康检查..."
|
||||
if curl -f http://localhost:12152/health &> /dev/null; then
|
||||
echo "✅ 健康检查通过"
|
||||
else
|
||||
echo "❌ 健康检查失败"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 测试状态接口
|
||||
test_status() {
|
||||
echo "📊 测试状态接口..."
|
||||
STATUS=$(curl -s http://localhost:12152/status)
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 状态接口正常"
|
||||
echo "服务状态: $STATUS"
|
||||
else
|
||||
echo "❌ 状态接口异常"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 测试通知发送
|
||||
test_notification() {
|
||||
echo "📱 测试通知发送..."
|
||||
|
||||
RESPONSE=$(curl -s -X POST "http://localhost:12152/notify/simple" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"api_key\": \"$API_KEY\",
|
||||
\"content\": \"Docker 测试通知 - $(date)\",
|
||||
\"sender\": \"Docker 测试\"
|
||||
}")
|
||||
|
||||
if echo "$RESPONSE" | grep -q '"success":true'; then
|
||||
echo "✅ 通知发送成功"
|
||||
echo "响应: $RESPONSE"
|
||||
else
|
||||
echo "❌ 通知发送失败"
|
||||
echo "响应: $RESPONSE"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 显示容器信息
|
||||
show_container_info() {
|
||||
echo ""
|
||||
echo "📋 容器信息:"
|
||||
docker-compose ps
|
||||
|
||||
echo ""
|
||||
echo "💾 资源使用:"
|
||||
docker stats sms-forwarder --no-stream --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"
|
||||
}
|
||||
|
||||
# 主函数
|
||||
main() {
|
||||
check_service
|
||||
get_api_key
|
||||
|
||||
echo ""
|
||||
echo "开始测试..."
|
||||
|
||||
test_health
|
||||
test_status
|
||||
test_notification
|
||||
|
||||
echo ""
|
||||
echo "🎉 所有测试通过!"
|
||||
|
||||
show_container_info
|
||||
|
||||
echo ""
|
||||
echo "如果你的 Android 设备收到了通知,说明 Docker 部署成功!"
|
||||
}
|
||||
|
||||
# 运行主函数
|
||||
main "$@"
|
Reference in New Issue
Block a user