test(observability): add one-shot QA suite
Some checks failed
CD Pipeline / deploy (push) Has been cancelled

This commit is contained in:
OoO
2026-05-05 15:39:55 +08:00
parent b963dcf209
commit 6a0d5c138d
3 changed files with 88 additions and 2 deletions

View File

@@ -40,11 +40,17 @@ AI 觀測台是「AI 中樞控制室」,不是 Bootstrap 報表頁。任何新
先跑本地 guard避免把已知 UI/UX 回歸重新帶進 repo
```bash
scripts/check_observability_suite.sh
```
若只想跑靜態檢查:
```bash
python3 scripts/check_observability_ui.py
```
或透過既有 quick review 選單執行第 6 項
或透過既有 quick review 選單執行第 8 項完整 QA 套件、第 6 項靜態 UI guard
```bash
./scripts/quick_review.sh

View File

@@ -0,0 +1,65 @@
#!/usr/bin/env bash
# AI observability QA suite.
#
# Runs the static UI regression guard first, then the production page smoke
# check unless --skip-production is provided.
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
BASE_URL="https://mo.wooo.work"
SKIP_PRODUCTION=0
while [[ $# -gt 0 ]]; do
case "$1" in
--base-url)
BASE_URL="${2:-}"
if [[ -z "$BASE_URL" ]]; then
echo "ERROR: --base-url requires a value" >&2
exit 1
fi
shift 2
;;
--skip-production)
SKIP_PRODUCTION=1
shift
;;
-h|--help)
cat <<'EOF'
Usage: scripts/check_observability_suite.sh [--base-url URL] [--skip-production]
Runs:
1. python3 scripts/check_observability_ui.py
2. python3 scripts/check_observability_pages.py --base-url URL
Options:
--base-url URL Target site for the 10-page smoke check.
--skip-production Run only the static UI guard.
EOF
exit 0
;;
*)
echo "ERROR: unknown option: $1" >&2
exit 1
;;
esac
done
cd "$PROJECT_ROOT"
echo "========================================"
echo "AI Observability QA Suite"
echo "========================================"
echo "1/2 Static UI guard"
python3 scripts/check_observability_ui.py
if [[ "$SKIP_PRODUCTION" -eq 1 ]]; then
echo "2/2 Production smoke skipped"
echo "AI Observability QA Suite: PASS"
exit 0
fi
echo "2/2 Production 10-page smoke"
python3 scripts/check_observability_pages.py --base-url "$BASE_URL"
echo "AI Observability QA Suite: PASS"

View File

@@ -17,6 +17,7 @@ PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
CODE_REVIEW_SCRIPT="$PROJECT_ROOT/scripts/code_review.py"
OBSERVABILITY_UI_GUARD="$PROJECT_ROOT/scripts/check_observability_ui.py"
OBSERVABILITY_PAGE_SMOKE="$PROJECT_ROOT/scripts/check_observability_pages.py"
OBSERVABILITY_QA_SUITE="$PROJECT_ROOT/scripts/check_observability_suite.sh"
# 顯示標題
echo -e "${BLUE}========================================${NC}"
@@ -64,6 +65,16 @@ run_observability_page_smoke() {
python3 "$OBSERVABILITY_PAGE_SMOKE"
}
run_observability_qa_suite() {
if [ ! -f "$OBSERVABILITY_QA_SUITE" ]; then
echo -e "${RED}❌ AI觀測台 QA 套件不存在: $OBSERVABILITY_QA_SUITE${NC}"
exit 1
fi
echo -e "${GREEN}🏛️ 開始 AI觀測台完整 QA 套件...${NC}"
bash "$OBSERVABILITY_QA_SUITE"
}
# 顯示選單
if [ $# -eq 0 ]; then
echo -e "${YELLOW}請選擇操作:${NC}"
@@ -74,8 +85,9 @@ if [ $# -eq 0 ]; then
echo "5) 效能檢查 (Performance Review)"
echo "6) AI觀測台 UI/UX 防回歸檢查"
echo "7) AI觀測台 10頁線上巡檢"
echo "8) AI觀測台完整 QA 套件"
echo ""
read -p "請輸入選項 (1-7): " choice
read -p "請輸入選項 (1-8): " choice
case $choice in
1)
@@ -111,6 +123,9 @@ if [ $# -eq 0 ]; then
7)
run_observability_page_smoke
;;
8)
run_observability_qa_suite
;;
*)
echo -e "${RED}❌ 無效選項${NC}"
exit 1