Files
wwjcloud/docker/auto-test.sh
wanwu 2285206b3f feat: WWJCloud 企业级全栈框架 v0.3.5 完整更新
🚀 核心更新:
-  完善 NestJS 企业级架构设计
-  优化配置中心和基础设施层
-  增强第三方服务集成能力
-  完善多租户架构支持
- 🎯 对标 Java Spring Boot 和 PHP ThinkPHP

📦 新增文件:
- wwjcloud-nest 完整框架结构
- Docker 容器化配置
- 管理后台界面
- 数据库迁移脚本

🔑 Key: ebb38b43ec39f355f071294fd1cf9c42
2025-10-13 01:27:37 +08:00

107 lines
3.8 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 "$@"