Co-authored-by: xiuting.xu <xiutingxt.xu@gmail.com> Reviewed-on: #21 Reviewed-by: huhy <husteryezi@163.com> Reviewed-by: sundapeng <sundp@mail.zgclab.edu.cn> Reviewed-by: yuyr <yuyr@zgclab.edu.cn>
94 lines
2.7 KiB
Bash
94 lines
2.7 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
WEB_URL=${WEB_URL:-"http://localhost:8080"}
|
||
API_URL=${API_URL:-"http://master.argus.com/api/v1/master/nodes"}
|
||
TIMEOUT=10
|
||
|
||
GREEN="\033[1;32m"
|
||
RED="\033[1;31m"
|
||
YELLOW="\033[1;33m"
|
||
RESET="\033[0m"
|
||
|
||
echo "[info] 测试 Argus Web 前端启动状态..."
|
||
echo "--------------------------------------------------"
|
||
|
||
# 等待 web 前端可用
|
||
attempt=1
|
||
while (( attempt <= 10 )); do
|
||
if curl -fsS -m "$TIMEOUT" -o /dev/null "$WEB_URL"; then
|
||
echo "[ok] Web 前端已启动 (${attempt}/10)"
|
||
break
|
||
fi
|
||
echo "[..] 等待 Web 前端启动中 (${attempt}/10)"
|
||
sleep 3
|
||
(( attempt++ ))
|
||
done
|
||
|
||
if (( attempt > 10 )); then
|
||
echo "[err] Web 前端在 30 秒内未启动"
|
||
exit 1
|
||
fi
|
||
|
||
# 1. 检查首页可访问性
|
||
echo "[test] 检查首页访问..."
|
||
if curl -fsS "$WEB_URL" -m "$TIMEOUT" | grep -q "<title>"; then
|
||
echo -e "[${GREEN}ok${RESET}] 首页可访问"
|
||
else
|
||
echo -e "[${RED}err${RESET}] 首页访问失败"
|
||
exit 1
|
||
fi
|
||
|
||
# 2. 检查静态资源加载
|
||
echo "[test] 检查静态资源..."
|
||
if curl -fsS "$WEB_URL/static/js" -m "$TIMEOUT" | grep -q "Cannot GET"; then
|
||
echo -e "[${YELLOW}warn${RESET}] 静态资源路径可能未正确配置"
|
||
else
|
||
echo -e "[${GREEN}ok${RESET}] 静态资源服务正常"
|
||
fi
|
||
|
||
# 3. 检查前端路由兼容
|
||
echo "[test] 检查 React Router 路由兼容..."
|
||
if curl -fsS "$WEB_URL/dashboard" -m "$TIMEOUT" | grep -q "<title>"; then
|
||
echo -e "[${GREEN}ok${RESET}] React Router 路由兼容正常"
|
||
else
|
||
echo -e "[${YELLOW}warn${RESET}] /dashboard 路由未正确返回 index.html"
|
||
fi
|
||
|
||
# 4. 测试 API 代理访问
|
||
echo "[test] 检查 API 代理..."
|
||
if curl -fsS "$API_URL" -m "$TIMEOUT" | grep -q "nodes"; then
|
||
echo -e "[${GREEN}ok${RESET}] API 代理成功"
|
||
else
|
||
echo -e "[${YELLOW}warn${RESET}] API 代理请求失败,请检查 Nginx proxy_pass"
|
||
fi
|
||
|
||
# 5. 页面关键字验证
|
||
echo "[test] 检查关键内容..."
|
||
if curl -fsS "$WEB_URL" | grep -q "Argus"; then
|
||
echo -e "[${GREEN}ok${RESET}] 页面包含关键字 'Argus'"
|
||
else
|
||
echo -e "[${YELLOW}warn${RESET}] 页面内容中未找到 'Argus'"
|
||
fi
|
||
|
||
# 6. DNS 检查
|
||
echo "[test] 检查 DNS 解析..."
|
||
if dig +short web.argus.com >/dev/null; then
|
||
echo -e "[${GREEN}ok${RESET}] 域名 web.argus.com 解析正常"
|
||
else
|
||
echo -e "[${YELLOW}warn${RESET}] 域名 web.argus.com 解析失败"
|
||
fi
|
||
|
||
# 7. 响应时间测试
|
||
echo "[test] 检查响应时间..."
|
||
response_time=$(curl -o /dev/null -s -w "%{time_total}\n" "$WEB_URL")
|
||
echo "[info] 响应时间: ${response_time}s"
|
||
if (( $(echo "$response_time > 2.0" | bc -l) )); then
|
||
echo -e "[${YELLOW}warn${RESET}] 响应时间较慢(>2s)"
|
||
else
|
||
echo -e "[${GREEN}ok${RESET}] 响应时间正常"
|
||
fi
|
||
|
||
echo "--------------------------------------------------"
|
||
echo "[done] Web 前端测试完成 ✅"
|