A professional, accessible, and modern HTTP load testing tool with real-time monitoring and comprehensive analytics.
- Request-based testing - Send a specific number of requests (1-50,000)
- Concurrent users - Simulate 1-1,000 concurrent users
- HTTP methods - Support for GET, POST, PUT, PATCH, DELETE
- Custom headers - Add any custom headers with JSON format
- Request body - Send JSON or text data
- Configurable delays - Add delays between requests (0-10 seconds)
- Real-time monitoring - Live statistics and progress tracking
- Response time metrics - Average, min, max response times
- Percentiles - TP90 (90th percentile) and TP95 (95th percentile)
- Success rate tracking - Only HTTP 200 responses count as success
- Status code breakdown - Detailed count of all HTTP status codes
- Request rate - Real-time requests per second
- Interactive charts - Response time and request rate visualization
- Live logging - Color-coded real-time logs with response data
- Responsive design - Works on desktop, tablet, and mobile
- Accessibility compliant - WCAG 2.1 AA standards
- Form validation - Real-time validation with helpful error messages
- Loading states - Visual feedback during operations
- Dark mode support - High contrast mode compatibility
- Touch-friendly - Optimized for touch devices
- cURL import - Import cURL commands directly from browser dev tools
- Test history - Auto-save and manage test configurations
- One-click rerun - Easily repeat previous tests
- Export results - Download test results and configurations
- Error handling - Comprehensive error messages and debugging info
- Screen reader support - Full ARIA labels and landmarks
- Keyboard navigation - Complete keyboard accessibility
- Skip links - Quick navigation for assistive technologies
- Focus management - Proper focus indicators and management
- Semantic HTML - Proper HTML5 semantic structure
- Live regions - Dynamic content announcements
- Node.js v18+
- npm or yarn
-
Clone the repository
git clone https://github.com/yourusername/load-test-ui.git cd load-test-ui -
Install dependencies
npm install
-
Start the server
npm start
-
Open your browser
Navigate to
http://localhost:3000
-
Configure your test:
- Enter the target URL
- Set number of concurrent users (1-1,000)
- Set total requests to send (1-50,000)
- Add custom headers if needed (JSON format)
- Add request body for POST/PUT requests
-
Start the test:
- Click "Start Test" button
- Monitor real-time statistics
- View live logs and response data
-
Analyze results:
- Check success rate and response times
- Review TP90/TP95 percentiles
- Examine status code breakdown
- Export results for further analysis
# Example: Import a cURL command from browser dev tools
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token" \
-d '{"key": "value"}' \
https://api.example.com/endpoint- Copy cURL command from browser dev tools
- Click "π₯ Import cURL" button
- Paste the command and click "Parse & Import"
- Configuration is automatically filled
- All tests are automatically saved
- View test history with "Test History" button
- One-click rerun of previous configurations
- Delete individual tests or clear all history
- Backend: Node.js, Express.js, Socket.IO
- Frontend: HTML5, CSS3, Vanilla JavaScript
- Charts: Chart.js
- Real-time: WebSocket communication
- Storage: JSON file-based test history
βββ server.js # Express server with WebSocket handling
βββ public/
β βββ index.html # Main UI with accessibility features
β βββ app.js # Frontend logic and real-time updates
β βββ styles.css # Modern CSS with responsive design
βββ package.json # Dependencies and scripts
βββ test-history.json # Auto-generated test history storage
PORT=3000 # Server port (default: 3000)- Concurrent Users: 1-1,000
- Total Requests: 1-50,000
- Request Delay: 0-10 seconds
- Test History: Last 50 tests (auto-cleanup)
- Average: Mean response time across all requests
- Min/Max: Fastest and slowest response times
- TP90: 90% of requests completed within this time
- TP95: 95% of requests completed within this time
- Success: Only HTTP 200 responses count as successful
- Failure: All other status codes (201, 404, 500, etc.) are failures
- Network Errors: Timeouts and connection failures are tracked
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Add tests if applicable
- Commit your changes:
git commit -m 'Add feature' - Push to the branch:
git push origin feature-name - Submit a pull request
- Use meaningful variable names
- Add comments for complex logic
- Follow existing code formatting
- Ensure accessibility compliance
- Test on multiple browsers
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Issues
- Questions: GitHub Discussions
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with modern web technologies
- Designed with accessibility in mind
- Inspired by professional load testing tools
- Community-driven development
- API rate limiting detection
- Custom success criteria configuration
- Test result export (CSV, JSON)
- Distributed load testing
- Performance regression testing
- Docker containerization
- CI/CD integration examples