#!/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