diff --git a/lib/test.sh b/lib/test.sh index 23e635b..9f836f5 100644 --- a/lib/test.sh +++ b/lib/test.sh @@ -452,6 +452,27 @@ test_payment_verify_detection() { return 0 } +# ---------- nginx 代理测试 ---------- + +test_nginx_proxy_temp() { + log_info "测试 nginx proxy temp(POST body 权限)..." + # 发送 POST 请求验证 nginx 能正确代理带 body 的请求(AppArmor proxy temp 权限检查) + local body; body=$(python3 -c "print('x'*50000)" 2>/dev/null || printf 'x%.0s' {1..50000}) + local resp + resp=$(curl -sk --max-time 10 -X POST "${BASE_URL}" \ + -H "Content-Type: application/json" \ + -d "{\"test_body_size\":${#body}}" 2>&1) || true + + # 只要能返回响应(包括错误),就说明 nginx 能正常处理 POST body + # 如果 proxy temp 无权限,nginx 会返回 502/403 或超时 + if [ -n "$resp" ]; then + log_info " nginx POST body 代理正常 ✅" + return 0 + fi + log_error "nginx POST body 代理失败(proxy temp 可能无权限)" + return 1 +} + # ---------- 主测试入口 ---------- run_tests() { log_step "执行部署后测试..." @@ -466,6 +487,7 @@ run_tests() { "test_invalid_token_401:无效 Token 401" "test_response_content:响应内容验证" "test_mock_login:Mock 登录 + 通知接口" + "test_nginx_proxy_temp:nginx proxy temp" "test_payment_endpoints:支付端点" "test_payment_flow:支付链路" "test_migration_status:迁移状态"