mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-12 20:57:26 +08:00
144 lines
3.6 KiB
Bash
Executable File
144 lines
3.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# EasyTier Uptime Monitor 集成测试脚本
|
|
|
|
set -e
|
|
|
|
echo "🧪 Running EasyTier Uptime Monitor Integration Tests..."
|
|
|
|
# 检查依赖
|
|
echo "📦 Checking dependencies..."
|
|
|
|
# 检查 Rust
|
|
if ! command -v cargo &> /dev/null; then
|
|
echo "❌ Rust is not installed. Please install Rust first."
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 curl
|
|
if ! command -v curl &> /dev/null; then
|
|
echo "❌ curl is not installed. Please install curl first."
|
|
exit 1
|
|
fi
|
|
|
|
# 设置环境变量
|
|
export RUST_LOG=info
|
|
export NODE_ENV=test
|
|
|
|
# 创建测试目录
|
|
echo "📁 Creating test directories..."
|
|
mkdir -p test-results
|
|
mkdir -p test-logs
|
|
|
|
# 复制测试环境配置
|
|
if [ ! -f .env ]; then
|
|
echo "📝 Creating test environment configuration..."
|
|
cp .env.development .env
|
|
fi
|
|
|
|
# 构建项目
|
|
echo "🔧 Building project..."
|
|
cargo build
|
|
|
|
# 启动后端服务进行测试
|
|
echo "🚀 Starting backend server for testing..."
|
|
cargo run &
|
|
BACKEND_PID=$!
|
|
|
|
# 等待后端服务启动
|
|
echo "⏳ Waiting for backend server to start..."
|
|
sleep 5
|
|
|
|
# 检查服务是否运行
|
|
echo "🔍 Checking if server is running..."
|
|
if curl -f http://localhost:8080/health > /dev/null 2>&1; then
|
|
echo "✅ Backend server is running"
|
|
else
|
|
echo "❌ Backend server failed to start"
|
|
kill $BACKEND_PID 2>/dev/null || true
|
|
exit 1
|
|
fi
|
|
|
|
# 运行API测试
|
|
echo "🧪 Running API tests..."
|
|
if cargo test api_test --lib -- --nocapture > test-results/api-test.log 2>&1; then
|
|
echo "✅ API tests passed"
|
|
else
|
|
echo "❌ API tests failed"
|
|
echo "Check test-results/api-test.log for details"
|
|
fi
|
|
|
|
# 运行健康检查测试
|
|
echo "🏥 Running health check tests..."
|
|
curl -s http://localhost:8080/health | jq . > test-results/health-check.json
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Health check test passed"
|
|
else
|
|
echo "❌ Health check test failed"
|
|
fi
|
|
|
|
# 运行节点管理测试
|
|
echo "🔧 Running node management tests..."
|
|
# 创建测试节点
|
|
curl -s -X POST http://localhost:8080/api/nodes \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"name": "Test Node",
|
|
"host": "127.0.0.1",
|
|
"port": 11010,
|
|
"protocol": "tcp",
|
|
"version": "1.0.0",
|
|
"description": "Test node for integration testing",
|
|
"max_connections": 100
|
|
}' > test-results/create-node.json
|
|
|
|
# 获取节点列表
|
|
curl -s http://localhost:8080/api/nodes > test-results/get-nodes.json
|
|
|
|
echo "✅ Node management tests completed"
|
|
|
|
# 停止后端服务
|
|
echo "🛑 Stopping backend server..."
|
|
kill $BACKEND_PID 2>/dev/null || true
|
|
sleep 2
|
|
|
|
# 强制杀死可能残留的进程
|
|
pkill -f easytier-uptime 2>/dev/null || true
|
|
|
|
echo "✅ Integration tests completed!"
|
|
echo "📊 Test results saved to test-results/"
|
|
echo "📋 Test logs saved to test-logs/"
|
|
|
|
# 生成测试报告
|
|
echo "📝 Generating test report..."
|
|
cat > test-results/test-report.md << EOF
|
|
# EasyTier Uptime Monitor Integration Test Report
|
|
|
|
## Test Summary
|
|
- **Test Date**: $(date)
|
|
- **Test Environment**: Integration
|
|
- **Backend PID**: $BACKEND_PID
|
|
|
|
## Test Results
|
|
|
|
### API Tests
|
|
- Status: $(grep -q "test result: ok" test-results/api-test.log && echo "PASSED" || echo "FAILED")
|
|
- Log: [api-test.log](api-test.log)
|
|
|
|
### Health Check
|
|
- Status: $(jq -r '.success' test-results/health-check.json 2>/dev/null || echo "FAILED")
|
|
- Response: $(cat test-results/health-check.json 2>/dev/null || echo "No response")
|
|
|
|
### Node Management
|
|
- Status: COMPLETED
|
|
- Create Node: [create-node.json](create-node.json)
|
|
- Get Nodes: [get-nodes.json](get-nodes.json)
|
|
|
|
## System Information
|
|
- **Rust Version**: $(rustc --version)
|
|
- **Cargo Version**: $(cargo --version)
|
|
- **System**: $(uname -a)
|
|
|
|
EOF
|
|
|
|
echo "✅ Test report generated: test-results/test-report.md" |