Files
danyang-match/infrastructure/scripts/smoke-test.sh
T

60 lines
1.8 KiB
Bash

#!/bin/bash
# ============================================
# 丹阳公益婚恋服务平台 — 生产上线冒烟测试
# ============================================
set -euo pipefail
BASE_URL="${BASE_URL:-https://match.danyang.gov.cn}"
PASS=0
FAIL=0
check() {
local name="$1"
local url="$2"
local expected="$3"
local code
code=$(curl -sf -o /dev/null -w "%{http_code}" "${BASE_URL}${url}" 2>/dev/null || echo "000")
if [ "$code" = "$expected" ]; then
PASS=$((PASS + 1))
echo " ✅ $name (HTTP $code)"
else
FAIL=$((FAIL + 1))
echo " ❌ $name (期望$expected, 实际$code)"
fi
}
echo "============================================"
echo " 丹阳公益婚恋平台 — 生产冒烟测试"
echo " $(date '+%Y-%m-%d %H:%M:%S')"
echo "============================================"
echo ""
echo "【健康检查】"
check "后端live" "/api/v1/health/live" "200"
check "后端ready" "/api/v1/health/ready" "200"
check "版本信息" "/version" "200"
echo ""
echo "【认证流程】"
check "微信登录端点" "/api/v1/auth/wechat/login" "401" # 无code参数应400或401
echo ""
echo "【核心功能】"
check "用户资料接口" "/api/v1/profile" "401" # 未登录应401
check "推荐列表接口" "/api/v1/matches/recommendations" "401"
echo ""
echo "【安全接口】"
check "管理员接口无认证拒绝" "/api/v1/operator/users" "401"
check "举报提交接口" "/api/v1/risk/reports" "401"
echo ""
echo "【Nginx】"
check "Nginx首页" "/" "200"
echo ""
echo "============================================"
echo " 结果: PASS=${PASS} FAIL=${FAIL}"
echo "============================================"
[ ${FAIL} -eq 0 ] && echo "✅ 冒烟测试通过" && exit 0 || echo "❌ 存在${FAIL}个失败项" && exit 1