Files
goodgo-platform/load-tests

K6 Load Testing — Goodgo Platform

Tổng quan

Các bài load test hiệu năng cho những API path quan trọng, sử dụng K6.

Bộ kiểm thử

Script Mục tiêu VU đỉnh Thời lượng
auth.js Đăng nhập/Đăng ký 100 2min
listings.js Tìm kiếm + Chi tiết 500 3min
search.js Tìm kiếm văn bản + Địa lý 200 3min
search-advanced.js Kết hợp geo + text + bộ lọc, phân trang 300 3min
admin.js Hàng đợi kiểm duyệt, bảng điều khiển, nhật ký audit 50 2.5min
mcp.js MCP server discovery, property-search, valuation 120 2.5min
payments.js Tạo + Danh sách 50 2min

Ngưỡng SLA

Chỉ số Ngưỡng
Độ trễ p50 < 200ms
Độ trễ p95 < 500ms
Độ trễ p99 < 1000ms
Tỷ lệ lỗi < 1%

Ngưỡng tuỳ chỉnh theo bộ kiểm thử

Bộ kiểm thử Chỉ số Ngưỡng
search-advanced advanced_search_duration p95 < 800ms
search-advanced geo_filter_search_duration p95 < 800ms
admin moderation_action_duration p95 < 800ms
admin admin_dashboard_duration p95 < 500ms
mcp mcp_property_search_duration p95 < 1500ms
mcp mcp_valuation_duration p95 < 1000ms
mcp mcp_batch_valuation_duration p95 < 2000ms

Điều kiện tiên quyết

# Cài đặt K6
brew install k6        # macOS
# hoặc: https://grafana.com/docs/k6/latest/set-up/install-k6/

# Khởi động API
pnpm --filter @goodgo/api run dev

Chạy kiểm thử

# Chạy từng bộ kiểm thử riêng lẻ
k6 run load-tests/scripts/auth.js
k6 run load-tests/scripts/listings.js
k6 run load-tests/scripts/search.js
k6 run load-tests/scripts/search-advanced.js
k6 run load-tests/scripts/admin.js
k6 run load-tests/scripts/mcp.js
k6 run load-tests/scripts/payments.js

# Chạy với URL API tuỳ chỉnh
k6 run -e API_BASE_URL=https://staging.goodgo.vn load-tests/scripts/auth.js

# Chạy tất cả các bộ kiểm thử tuần tự
for f in load-tests/scripts/*.js; do k6 run "$f"; done

# Xuất kết quả dưới dạng JSON
k6 run --out json=results/auth.json load-tests/scripts/auth.js

Tích hợp CI

Workflow load-test.yml chạy như một giai đoạn thủ công tuỳ chọn trong GitHub Actions. Kích hoạt qua workflow_dispatch với bộ chọn suite.

Cấu trúc thư mục

load-tests/
├── lib/
│   └── config.js              # Cấu hình dùng chung, helper, ngưỡng SLA
├── scripts/
│   ├── auth.js                # Load test luồng xác thực
│   ├── listings.js            # Tìm kiếm + chi tiết listings
│   ├── search.js              # Tìm kiếm full-text + geo (cơ bản)
│   ├── search-advanced.js     # Tìm kiếm kết hợp geo + text + bộ lọc
│   ├── admin.js               # Kiểm duyệt admin, bảng điều khiển, audit
│   ├── mcp.js                 # Endpoint MCP server (property-search, valuation)
│   └── payments.js            # Tạo và liệt kê thanh toán
├── results/
│   └── BASELINE-REPORT.md     # Báo cáo hiệu năng baseline
└── README.md