- Artillery: Modern load testing toolkit for HTTP, WebSocket, and Socket.io
- k6: Developer-centric load testing tool with scripting capabilities
- JMeter: Mature load testing tool with extensive reporting features
- Locust: Python-based load testing framework
For this implementation, we'll use k6 due to its:
- JavaScript/TypeScript support (aligns with NestJS)
- Cloud execution capabilities
- Built-in metrics and reporting
- Easy integration with CI/CD pipelines
Objective: Test login, registration, and session management under load.
Scenarios:
- Concurrent user logins
- Registration bursts
- Session validation under high traffic
- Rate limiting effectiveness
Objective: Test property CRUD operations under various load conditions.
Scenarios:
- Bulk property creation
- Concurrent property searches
- Property updates during peak usage
- Image upload handling
Objective: Test user-related operations including avatar uploads and preferences.
Scenarios:
- Avatar upload concurrency
- User preference updates
- Activity logging under load
- User import processes
Objective: Test dashboard performance and data aggregation.
Scenarios:
- Dashboard data loading
- Trust score calculations
- Analytics queries under load
# Install k6
npm install -g k6
# Or using package managers
# Ubuntu/Debian
sudo apt update
sudo apt install k6
# macOS
brew install k6