A Node.js load testing tool for HTTP and WebSocket URLs with configurable requests, concurrency, and rate limiting.
Loadtest is a Node.js command-line tool and API for load testing HTTP and WebSocket servers. It simulates concurrent user traffic with configurable request rates, concurrency levels, and custom headers to measure server performance under stress. It helps developers identify bottlenecks and ensure their applications can handle expected loads.
Backend developers, DevOps engineers, and QA testers who need to performance-test web servers, APIs, or WebSocket services during development or before deployment.
Loadtest offers a balance of Apache ab compatibility and advanced features like requests-per-second control, multi-core support, and programmatic API integration. Its ability to simulate sustained traffic patterns and provide detailed latency percentiles makes it a practical choice for continuous performance validation.
Runs a load test on the selected URL. Fast and easy to use. Can be integrated in your own workflow using the API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Loadtest supports command-line parameters compatible with Apache ab, making migration easy for users familiar with ab, as stated in the Basic Usage section.
It allows setting a fixed rate of requests per second with the --rps option, enabling more realistic sustained load simulation compared to concurrency-only tools, highlighted in Usage Dos.
Uses the Node.js cluster module via the --cores option to leverage multiple CPU cores, improving performance for high-load scenarios, as explained in the Advanced Usage.
Provides a Node.js API that allows load tests to be easily integrated into custom tests and CI/CD pipelines, demonstrated in the API section with examples.
The README admits that loadtest saturates a single CPU quickly, with a maximum of around 4000-7000 rps per core and up to 40 krps on eight cores, which may not suffice for extreme throughput needs.
Critical features like requests-per-second control (--rps) are not supported for WebSocket endpoints, limiting its utility for comprehensive WebSocket performance testing.
The --tcp option is marked as experimental and may not work reliably with all test cases, as noted in the Advanced Usage section, adding uncertainty for production use.
loadtest is an open-source alternative to the following products:
wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU, used for performance testing web services.
weighttp is a lightweight HTTP benchmarking tool designed for measuring web server performance with a focus on simplicity and low resource usage.
Apache ab (Apache HTTP server benchmarking tool) is a command-line utility for benchmarking HTTP web servers. It measures performance by simulating multiple concurrent requests to a server.