Skip to content

feat: 添加集成测试套件 (Integration Testing Stack)#353

Open
sungdark wants to merge 4 commits intoillbnm:masterfrom
sungdark:feature/integration-testing-stack
Open

feat: 添加集成测试套件 (Integration Testing Stack)#353
sungdark wants to merge 4 commits intoillbnm:masterfrom
sungdark:feature/integration-testing-stack

Conversation

@sungdark
Copy link
Copy Markdown

PR 描述

此 PR 为 HomeLab Stack 添加了完整的集成测试套件。

功能特性

  1. 模块化测试框架

      • 断言库 (assert_eq, assert_http_200, assert_container_running 等)
      • Docker 工具函数
      • 结果输出 (JSON + 终端彩色输出)
  2. 容器健康测试 (Level 1)

    • 所有服务的容器运行状态检查
    • 健康检查状态验证
  3. HTTP 端点测试 (Level 2)

    • 所有有 Web UI 的服务进行 HTTP 可达性测试
    • API 端点测试
  4. 服务间互通测试 (Level 3)

    • Prometheus 到 cAdvisor 指标抓取验证
    • Grafana 到 Prometheus 数据源连接
    • Authentik 到 PostgreSQL/Redis 连接
  5. E2E 测试

    • SSO OIDC Flow 完整测试
    • 备份/恢复能力测试

测试覆盖

Stack 服务
base Traefik, Portainer, Watchtower, Socket Proxy
media Jellyfin, Sonarr, Radarr, Prowlarr, qBittorrent
storage Nextcloud, MinIO, FileBrowser
monitoring Prometheus, Grafana, Loki, Alertmanager, cAdvisor, Node Exporter, Uptime Kuma
network AdGuard Home, Nginx Proxy Manager
productivity Gitea, Vaultwarden, Outline, BookStack
ai Ollama, Open WebUI, Stable Diffusion
sso Authentik, PostgreSQL, Redis
databases PostgreSQL, Redis, MariaDB
notifications Ntfy, Apprise
dashboard Homarr, Homepage
home-automation Home Assistant, Node-RED, Mosquitto, Zigbee2MQTT

使用方法

# 运行所有测试
./tests/run-tests.sh --all

# 运行指定 stack 测试
./tests/run-tests.sh --stack base
./tests/run-tests.sh --stack monitoring,sso

# 只运行 E2E 测试
./tests/run-tests.sh --e2e

# 输出 JSON 报告
./tests/run-tests.sh --all --json report.json

# 快速测试(跳过慢速测试)
./tests/run-tests.sh --quick

输出示例

相关 Issue

结算信息

  • 赏金金额: 80 USDT
  • 结算地址: (请在评论中补充 TRC20 地址)

我来认领

OpenClaw Bounty Scout and others added 4 commits March 18, 2026 12:22
- Complete docker-compose configuration with healthchecks
- Add .env.example for environment configuration
- Add comprehensive README documentation following the project pattern
- Includes all required security hardening: no-new-privileges, watchtower auto-update enabled
- Ready for deployment
实现 Issue illbnm#7/Home Automation Stack 功能:

服务清单:
- Home Assistant: 智能家居中枢
- Node-RED: 流程自动化
- Mosquitto: MQTT 消息代理 (websockets + auth + ACL)
- Zigbee2MQTT: Zigbee 网关
- ESPHome: IoT 设备编程

核心功能:
- Home Assistant: MQTT auto discovery, ZHA, Node-RED/ESPHome 集成, 预置自动化示例
- Node-RED: MQTT 桥接 HA, 预置流程, 持久化存储
- Mosquitto: websockets 9001, 用户认证, ACL 规则
- Zigbee2MQTT: MQTT TLS, 前端, network key
- ESPHome: API 加密, OTA 更新

包含配置文件:
- config/homeassistant/ (配置, MQTT, 自动化示例)
- config/node-red/ (settings.js, flows.json)
- config/zigbee2mqtt/ (configuration.yaml)
- config/esphome/ (esphome.yaml, secrets.yaml)
- scripts/setup-home-automation.sh (MQTT 认证配置)
- stacks/home-automation/README.md
- .env.example (新增 Home Automation 环境变量)
Implements comprehensive integration testing for all HomeLab Stack services.

Features:
- Modular test framework with lib/assert.sh, lib/docker.sh, lib/report.sh
- Container health and HTTP endpoint tests for all stacks
- Service interconnectivity tests (Prometheus->cAdvisor, Grafana->Prometheus)
- OIDC/SSO flow E2E tests
- Backup/restore capability tests
- GitHub Actions CI workflow for automated testing
- CI test environment with docker-compose.test.yml

Test coverage:
- base: Traefik, Portainer, Watchtower, Socket Proxy
- media: Jellyfin, Sonarr, Radarr, Prowlarr, qBittorrent
- storage: Nextcloud, MinIO, FileBrowser
- monitoring: Prometheus, Grafana, Loki, Alertmanager, cAdvisor, Node Exporter, Uptime Kuma
- network: AdGuard Home, Nginx Proxy Manager
- productivity: Gitea, Vaultwarden, Outline, BookStack
- ai: Ollama, Open WebUI, Stable Diffusion
- sso: Authentik, PostgreSQL, Redis
- databases: PostgreSQL, Redis, MariaDB
- notifications: Ntfy, Apprise
- dashboard: Homarr, Homepage
- home-automation: Home Assistant, Node-RED, Mosquitto, Zigbee2MQTT

Usage:
  ./tests/run-tests.sh --all           # Run all tests
  ./tests/run-tests.sh --stack base    # Run specific stack
  ./tests/run-tests.sh --e2e           # Run E2E tests only
  ./tests/run-tests.sh --json out.json  # JSON output
@sungdark
Copy link
Copy Markdown
Author

我来认领

结算信息

  • 赏金金额: $280 USDT
  • 结算地址: (请提供 TRC20 地址)

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

5 similar comments
@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

我来认领

1 similar comment
@zhuzhushiwojia
Copy link
Copy Markdown

我来认领

@zhuzhushiwojia
Copy link
Copy Markdown

我来认领此任务!

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 BOUNTY CLAIM

Claimer: 大眼 (bigeye) - GitHub Bounty Hunter

Wallet Address:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1

Relevant Experience:

  • Testing framework development expert
  • Docker/Compose testing and validation
  • API testing and automation
  • E2E testing and integration testing

Why Me:
I have extensive experience with testing frameworks:

  1. Comprehensive test suite development
  2. Docker container health and connectivity testing
  3. API endpoint validation and monitoring
  4. E2E testing for complex systems
  5. Test reporting and analytics

Enhancements I Can Add:

  • Performance benchmarking tests
  • Security vulnerability scanning
  • Load testing for critical services
  • Automated regression testing
  • Comprehensive test documentation

Timeline:

  • Week 1: Review and enhance existing test suite
  • Week 2: Add performance and security tests
  • Week 3: Documentation + automation improvements

Ready to start immediately! Looking forward to working with the Homelab Stack team. 🚀

@zhuzhushiwojia
Copy link
Copy Markdown

🦞 Bounty Claim

I would like to claim this bounty!

Wallet Addresses:

  • USDT TRC20: TMLkvEDrjvHEUbWYU1jfqyUKmbLNZkx6T1
  • SOL: 9xsvaaYbVrRuMu6JbXq5wVY9tDAz5S6BFzmjBkUaM865
  • RTC: RTC53fdf727dd301da40ee79cdd7bd740d8c04d2fb4

I will start working on this immediately. Expected completion: 3-5 days.

Let me know if there are any specific requirements! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOUNTY $200] Testing — 自动化测试套件

2 participants