Load Testing
Định nghĩa
Load Testing là việc mô phỏng traffic và workflow gần thực tế để đo latency, throughput, bottleneck, failure point và khả năng chịu tải của toàn hệ thống.
Cách hiểu bằng lời của tôi
Load test tốt không phải là bắn thật nhiều request vào một endpoint. Nó phải mô phỏng user behavior, data distribution, network condition, database/cache/message queue/background job và traffic pattern. Nếu staging không giống production scale, nhiều failure mode sẽ chỉ xuất hiện khi đã rollout thật.
Các kiểu test
- Smoke test: tải rất nhỏ để lấy baseline và kiểm tra health.
- Average-load test: tải ngày thường.
- Stress test: tăng tải vượt peak để tìm điểm yếu.
- Spike test: tăng tải đột ngột như flash sale/viral event.
- Breakpoint test: tìm ngưỡng hệ bắt đầu degrade hoặc fail.
- Soak test: chạy lâu để lộ memory leak, resource exhaustion, database slowdown.
Pitfall
- Reuse data quá nhiều làm cache skew kết quả.
- Chỉ test API mà bỏ database, cache, queue và job nền.
- Không test cold start, packet loss, jitter hoặc mobile network chậm.
- Không có success criteria rõ như p95 latency, error rate, max throughput.