refactor(test): 重构测试套件结构并优化测试配置
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置 fix(api): 修复数据库实体和仓库的删除操作返回值 style(api): 统一数据库表名和字段命名 perf(api): 添加缓存注解提升配置查询性能 test(api): 添加H2测试数据库配置支持 chore: 清理旧的测试文件和脚本
This commit is contained in:
Executable
+160
@@ -0,0 +1,160 @@
|
||||
#!/bin/bash
|
||||
# 完整的E2E/UAT测试启动脚本
|
||||
|
||||
set -e
|
||||
|
||||
echo "================================================"
|
||||
echo "🔧 E2E/UAT 测试完整启动脚本"
|
||||
echo "================================================"
|
||||
|
||||
# 解析参数
|
||||
ENV=${1:-dev}
|
||||
DATABASE=${2:-h2}
|
||||
BACKEND_URL=${3:-http://localhost:8084}
|
||||
FRONTEND_URL=${4:-http://localhost:3000}
|
||||
|
||||
echo "📋 配置参数:"
|
||||
echo " 环境: $ENV"
|
||||
echo " 数据库: $DATABASE"
|
||||
echo " 后端地址: $BACKEND_URL"
|
||||
echo " 前端地址: $FRONTEND_URL"
|
||||
echo ""
|
||||
|
||||
# 步骤1: 检查依赖
|
||||
echo "📦 步骤1: 检查依赖..."
|
||||
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
echo "❌ 未找到Python3,请安装Python 3.10+"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 --version
|
||||
|
||||
if ! command -v mvn &> /dev/null; then
|
||||
echo "❌ 未找到Maven,请安装Maven"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mvn -version
|
||||
|
||||
echo "✅ 依赖检查通过"
|
||||
echo ""
|
||||
|
||||
# 步骤2: 启动后端服务
|
||||
echo "🚀 步骤2: 启动后端服务..."
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# 检查后端是否已启动
|
||||
if curl -s "$BACKEND_URL/actuator/health" | grep -q '"status":"UP"'; then
|
||||
echo "✅ 后端服务已在运行: $BACKEND_URL"
|
||||
else
|
||||
echo "⚙️ 启动后端服务(后台运行)..."
|
||||
nohup mvn spring-boot:run \
|
||||
-pl ../novalon-manage-api/manage-app \
|
||||
-Dspring-boot.run.profiles=$ENV \
|
||||
-Dspring.r2dbc.url="r2dbc:h2:mem:///testdb" \
|
||||
-Dspring.datasource.url="jdbc:h2:mem:testdb" \
|
||||
-Dflyway.enabled=false \
|
||||
> /tmp/backend.log 2>&1 &
|
||||
|
||||
BACKEND_PID=$!
|
||||
echo " 后端服务PID: $BACKEND_PID"
|
||||
|
||||
echo "⏳ 等待后端服务启动..."
|
||||
for i in {1..30}; do
|
||||
if curl -s "$BACKEND_URL/actuator/health" | grep -q '"status":"UP"'; then
|
||||
echo "✅ 后端服务启动成功"
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 步骤3: 启动前端服务
|
||||
echo "🚀 步骤3: 启动前端服务..."
|
||||
|
||||
cd novalon-manage-web
|
||||
|
||||
if curl -s "$FRONTEND_URL" | grep -q "Novalon"; then
|
||||
echo "✅ 前端服务已在运行: $FRONTEND_URL"
|
||||
else
|
||||
echo "⚙️ 启动前端服务(后台运行)..."
|
||||
nohup npm run dev > /tmp/frontend.log 2>&1 &
|
||||
|
||||
FRONTEND_PID=$!
|
||||
echo " 前端服务PID: $FRONTEND_PID"
|
||||
|
||||
echo "⏳ 等待前端服务启动..."
|
||||
sleep 10
|
||||
|
||||
if curl -s "$FRONTEND_URL" | grep -q "Novalon"; then
|
||||
echo "✅ 前端服务启动成功"
|
||||
else
|
||||
echo "⚠️ 前端服务启动可能失败,请检查日志: /tmp/frontend.log"
|
||||
fi
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 步骤4: 运行测试
|
||||
echo "🧪 步骤4: 运行测试..."
|
||||
|
||||
cd ../test-suite
|
||||
|
||||
# 安装测试依赖
|
||||
echo "📦 安装测试依赖..."
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 设置环境变量
|
||||
export BASE_URL=$BACKEND_URL
|
||||
export FRONTEND_URL=$FRONTEND_URL
|
||||
export ENV=$ENV
|
||||
export DATABASE=$DATABASE
|
||||
|
||||
# 运行测试
|
||||
echo "🚀 运行E2E/UAT测试..."
|
||||
python3 run_tests.py \
|
||||
--env $ENV \
|
||||
--database $DATABASE \
|
||||
--backend-url $BACKEND_URL \
|
||||
--frontend-url $FRONTEND_URL \
|
||||
--test-dir tests \
|
||||
--parallel \
|
||||
--reruns 2 \
|
||||
--html-report reports/report.html \
|
||||
--junit-report reports/junit.xml \
|
||||
--coverage
|
||||
|
||||
TEST_RESULT=$?
|
||||
|
||||
echo ""
|
||||
|
||||
# 步骤5: 输出报告
|
||||
echo "================================================"
|
||||
echo "📊 测试报告"
|
||||
echo "================================================"
|
||||
|
||||
if [ $TEST_RESULT -eq 0 ]; then
|
||||
echo "✅ 测试全部通过!"
|
||||
else
|
||||
echo "❌ 测试失败,请检查报告"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "📄 报告文件:"
|
||||
echo " HTML: file://$(pwd)/reports/report.html"
|
||||
echo " JUnit: $(pwd)/reports/junit.xml"
|
||||
echo " Coverage: file://$(pwd)/reports/coverage/index.html"
|
||||
echo ""
|
||||
|
||||
# 步骤6: 清理
|
||||
echo "🧹 步骤6: 清理..."
|
||||
|
||||
echo "✅ 清理完成"
|
||||
echo ""
|
||||
echo "================================================"
|
||||
echo "🔧 E2E/UAT 测试完成"
|
||||
echo "================================================"
|
||||
|
||||
exit $TEST_RESULT
|
||||
Reference in New Issue
Block a user