🚀 核心更新: - ✅ 完善 NestJS 企业级架构设计 - ✅ 优化配置中心和基础设施层 - ✅ 增强第三方服务集成能力 - ✅ 完善多租户架构支持 - 🎯 对标 Java Spring Boot 和 PHP ThinkPHP 📦 新增文件: - wwjcloud-nest 完整框架结构 - Docker 容器化配置 - 管理后台界面 - 数据库迁移脚本 🔑 Key: ebb38b43ec39f355f071294fd1cf9c42
107 lines
3.8 KiB
Bash
Executable File
107 lines
3.8 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# WWJCloud Docker 自动测试脚本
|
||
# ========================================
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 日志函数
|
||
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
||
log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
|
||
log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
|
||
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
|
||
|
||
# 测试计数器
|
||
TESTS_PASSED=0
|
||
TESTS_FAILED=0
|
||
TOTAL_TESTS=0
|
||
|
||
# 测试函数
|
||
run_test() {
|
||
local test_name="$1"
|
||
local test_command="$2"
|
||
|
||
TOTAL_TESTS=$((TOTAL_TESTS + 1))
|
||
log_info "测试 $TOTAL_TESTS: $test_name"
|
||
|
||
if eval "$test_command" >/dev/null 2>&1; then
|
||
log_success "✅ $test_name - 通过"
|
||
TESTS_PASSED=$((TESTS_PASSED + 1))
|
||
return 0
|
||
else
|
||
log_error "❌ $test_name - 失败"
|
||
TESTS_FAILED=$((TESTS_FAILED + 1))
|
||
return 1
|
||
fi
|
||
}
|
||
|
||
# 主测试函数
|
||
main() {
|
||
echo "🚀 WWJCloud Docker 自动测试开始..."
|
||
echo "========================================"
|
||
|
||
# 1. 检查容器状态
|
||
log_info "检查容器运行状态..."
|
||
run_test "MySQL 容器运行" "docker ps | grep wwjcloud-mysql | grep Up"
|
||
run_test "Redis 容器运行" "docker ps | grep wwjcloud-redis | grep Up"
|
||
|
||
# 2. 等待服务就绪
|
||
log_info "等待服务完全启动..."
|
||
sleep 10
|
||
|
||
# 3. 测试 MySQL 连接
|
||
log_info "测试 MySQL 数据库连接..."
|
||
run_test "MySQL Root 用户连接" "docker exec wwjcloud-mysql mysql -u root -pwwjcloud -e 'SELECT 1;'"
|
||
run_test "MySQL wwjcloud 用户连接" "docker exec wwjcloud-mysql mysql -u wwjcloud -pwwjcloud -e 'SELECT 1;'"
|
||
run_test "MySQL 数据库存在" "docker exec wwjcloud-mysql mysql -u wwjcloud -pwwjcloud -e 'USE wwjcloud; SHOW TABLES;'"
|
||
|
||
# 4. 测试 Redis 连接
|
||
log_info "测试 Redis 缓存连接..."
|
||
run_test "Redis 连接测试" "docker exec wwjcloud-redis redis-cli -a redis123456 ping"
|
||
run_test "Redis 读写测试" "docker exec wwjcloud-redis redis-cli -a redis123456 set test_key 'test_value' && docker exec wwjcloud-redis redis-cli -a redis123456 get test_key"
|
||
|
||
# 5. 测试网络连通性
|
||
log_info "测试网络连通性..."
|
||
run_test "MySQL 端口访问" "nc -z localhost 3306"
|
||
run_test "Redis 端口访问" "nc -z localhost 6379"
|
||
|
||
# 6. 测试健康检查
|
||
log_info "测试服务健康状态..."
|
||
run_test "MySQL 健康检查" "docker exec wwjcloud-mysql mysqladmin ping -h localhost -u root -pwwjcloud"
|
||
run_test "Redis 健康检查" "docker exec wwjcloud-redis redis-cli -a redis123456 ping"
|
||
|
||
# 7. 测试数据持久化
|
||
log_info "测试数据持久化..."
|
||
run_test "MySQL 数据写入" "docker exec wwjcloud-mysql mysql -u wwjcloud -pwwjcloud -e 'USE wwjcloud; CREATE TABLE IF NOT EXISTS test_table (id INT PRIMARY KEY, name VARCHAR(50));'"
|
||
run_test "MySQL 数据读取" "docker exec wwjcloud-mysql mysql -u wwjcloud -pwwjcloud -e 'USE wwjcloud; INSERT INTO test_table VALUES (2, \"test2\") ON DUPLICATE KEY UPDATE name=\"test2\"; SELECT * FROM test_table;'"
|
||
|
||
# 输出测试结果
|
||
echo ""
|
||
echo "========================================"
|
||
echo "📊 测试结果汇总"
|
||
echo "========================================"
|
||
echo "总测试数: $TOTAL_TESTS"
|
||
echo "通过: $TESTS_PASSED"
|
||
echo "失败: $TESTS_FAILED"
|
||
|
||
if [ $TESTS_FAILED -eq 0 ]; then
|
||
log_success "🎉 所有测试通过!WWJCloud Docker 环境运行正常"
|
||
echo ""
|
||
echo "🌐 访问信息:"
|
||
echo "MySQL: localhost:3306 (用户: wwjcloud, 密码: wwjcloud, 数据库: wwjcloud)"
|
||
echo "Redis: localhost:6379 (密码: redis123456)"
|
||
exit 0
|
||
else
|
||
log_error "❌ 有 $TESTS_FAILED 个测试失败,请检查服务状态"
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
# 运行主函数
|
||
main "$@"
|