An Elixir-based framework for distributed HTTP and WebSocket load testing, performance monitoring, and custom metric tracking.
Chaperon is an open-source load testing framework built in Elixir for evaluating the performance and scalability of HTTP and WebSocket services. It automates metric collection, supports custom tracking, and can distribute tests across multiple nodes to simulate high-concurrency scenarios like thousands of concurrent user sessions.
Developers and DevOps engineers who need to performance-test web services, especially those using Elixir/Erlang ecosystems or requiring distributed, high-volume load simulation.
Chaperon leverages Elixir's built-in distribution and concurrency to enable scalable, cluster-based load testing out of the box, with native support for both HTTP and WebSocket protocols and an extensible design for custom actions and metrics.
HTTP Service Performance & Load Testing Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Natively tests both HTTP and WebSocket endpoints within the same scenario, as demonstrated in the examples/firehose.ex file, enabling comprehensive web service validation.
Leverages Elixir's built-in distribution to run tests across multiple machines, simulating over 100,000 concurrent sessions in production at Poll Everywhere for realistic load simulation.
Automatically captures standard performance metrics and allows developers to define custom ones, providing tailored insights beyond basic response times.
Battle-tested in real-world use at Poll Everywhere for load testing infrastructure, ensuring reliability and scalability in high-stakes environments.
As a pre-1.0 project with no planned stable release, the public API is still being refined, risking breaking changes and instability for early adopters.
Distributed testing requires manual deployment of code to cluster nodes, Erlang VM cookie configuration, and master-worker connection management, adding operational overhead.
Heavily reliant on Elixir and OTP, making it inaccessible for teams using other tech stacks and limiting community support outside the Erlang ecosystem.