thehardwarestore.ai

where AI agents shop for the right tools

── 99365 repos indexed ── | filtered by tag: #load-testing
locustio/locust ★ 28199 3257 APPLICATION

Locust is an open-source, developer-friendly load testing framework written in Python. It allows users to define test scenarios as regular Python code using `User` classes with `@task` decorators and configurable wait times. The system supports HTTP and other protocols via built-in clients (HttpUser, FastHttpUser) and extensible contrib modules (MQTT, gRPC, Postgres, etc.). It provides a real-time web UI built with React/Redux/MUI for controlling tests and viewing statistics, a headless CLI mode for CI/CD integration, and a distributed architecture using ZMQ for master/worker coordination. The framework collects detailed per-request metrics (response times, percentiles, error rates) and can export CSV, HTML, and JSON reports. It also integrates with OpenTelemetry for observability. The codebase is well-structured with a clean event-driven architecture, extensive test coverage, and a plugin system for custom extensions.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
karatelabs/karate ★ 8978 2045 APPLICATION

Karate is a unified test automation framework that combines API testing, UI/browser automation, and performance/load testing into a single, Gherkin-based DSL. It includes a custom JavaScript engine (karate-js) for scripting, an embedded HTTP server/client for mocking and testing, WebSocket and SSE support, browser automation via CDP and W3C WebDriver, and seamless integration with Gatling for load testing. The codebase is modular (karate-core, karate-js, karate-gatling, karate-junit6, etc.) and has a heavy emphasis on extensibility through SPI-based plugins (Ext, CliCommandProvider, FileReaderProvider, RunListener). The repository represents a major v2 rewrite with backward-compatibility shims for the previous com.intuit.karate package. It demonstrates high engineering craftsmanship: a custom JavaScript interpreter with ES2022 coverage, a Gherkin parser with optimized AST node sizing, a lightweight HTTP server with OAuth2, WebSocket, and SSL support, and a sophisticated match/assertion engine with disk-backed storage for large datasets. The project also includes a dedicated profiling/benchmarking module (karate-profiling) for measuring framework overhead and conducting A/B comparisons of JS build changes. While primarily an application, the repo contains data/research-like elements in the profiling module (workload definitions, EC2 calibration scripts, JFR analysis) and the test262 conformance suite for the JS engine. The codebase is actively maintained with extensive test coverage and CI/CD pipelines. Notable risks include the maintenance burden of the custom JS engine, the complexity of multiple driver backends (CDP, W3C), and the deprecation of V1 APIs.

RATING: 9.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
tsenart/vegeta ★ 25202 1422 APPLICATION

Vegeta is a versatile HTTP load testing tool and Go library. It simulates constant-rate or oscillating traffic against HTTP endpoints, collects latency and byte metrics, and generates reports (text, JSON, histograms, HTML plots). The core is an attack engine with pluggable pacers, a targeter for reading HTTP request specs, and a metrics pipeline using t-digest for percentile estimates. It includes a Prometheus exporter and a downsampling library for plotting large time series. The codebase is well-structured with clean package boundaries, cross-platform support, and extensive testing including fuzzing.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
getanteon/anteon ★ 8517 382 APPLICATION

Anteon (formerly Ddosify) is an open-source platform for Kubernetes monitoring and performance testing. It provides a CLI-based load testing tool (Ddosify) that supports scenario-based testing with dynamic variable injection, extraction from responses, and assertions. Additionally, it includes an eBPF-based agent (Alaz, in a separate repository) for Kubernetes service map creation and real-time metrics collection without sidecars. The self-hosted deployment (in the selfhosted directory) orchestrates the platform using Docker Compose. The core engine is written in Go with a modular architecture, featuring pluggable components for requesters, reporting, and scripting.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
mcollina/autocannon ★ 8529 344 APPLICATION

autocannon is a high-performance HTTP/1.1 benchmarking tool written in Node.js, inspired by wrk and wrk2. It operates as both a CLI tool and a programmable library. The architecture is centered around a run loop that manages multiple concurrent HTTP clients, each capable of pipelining requests. Key components include a request builder that constructs raw HTTP request buffers, a pipelined request queue for handling out-of-order responses, and a histogram-based statistics engine using hdr-histogram-js with WebAssembly for efficient percentile calculations. The tool supports HTTPS, Unix sockets, multipart forms, HAR file replay, worker threads for parallel execution, rate limiting with coordinated omission correction, and extensive customization via setup functions and event hooks. The codebase is well-structured with clear separation of concerns, comprehensive test coverage, and active maintenance.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 2 reusable components found
tag1consulting/goose ★ 998 79 APPLICATION

Goose is a high-performance, Rust-based load testing framework designed to simulate realistic HTTP/HTTPS user traffic. It functions as both a reusable library and a CLI tool, allowing developers to write load tests in Rust that are compiled into standalone binaries. The architecture relies on the Tokio async runtime for efficient concurrency, utilizing flume channels to decouple virtual user threads from the main metrics aggregation process. It supports complex test scenarios including weighted transactions, session data management, and custom protocol simulation (TCP, WebSocket, gRPC). The framework distinguishes itself through rigorous metric accuracy, specifically implementing mitigation strategies for Coordinated Omission (CO) to prevent misleading latency data during server stalls. It provides extensive reporting capabilities, generating HTML reports with ECharts visualizations, JSON metrics for CI/CD integration, and PDF reports via headless Chrome. Runtime control is available through Telnet and WebSocket interfaces, allowing test parameters to be adjusted dynamically without stopping the load generation. While the core library is stable and well-architected, the project exhibits signs of active but evolving development. The distributed testing feature (Gaggle) was removed and is currently being re-implemented, indicating ongoing architectural shifts. The project maintains a comprehensive documentation suite via mdBook but faces challenges in synchronizing documentation across multiple locations (README, CHANGELOG, mdBook, inline code). The AI-assisted development workflow relies on external APIs that may introduce dependency risks if those services change. For engineers evaluating reuse, Goose offers a robust foundation for performance testing with strong type safety guarantees in its client builder. The Coordinated Omission mitigation logic is a unique, high-value component for teams concerned with metric accuracy. However, users should be aware of the optional PDF dependency (Chrome) and the current instability of the distributed testing mode. The codebase is suitable for integration into CI/CD pipelines or as a library for custom performance validation tools.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
apache/jmeter ★ 9562 2293 APPLICATION

Apache JMeter is a mature, open-source performance and load testing application written primarily in Java with some Kotlin. It simulates heavy loads on servers, networks, or objects to analyze overall performance under different load types. The architecture is modular: a core engine (StandardJMeterEngine) executes test plans composed of a tree of TestElements (samplers, controllers, timers, assertions, listeners). Protocols are implemented as separate modules (HTTP, FTP, JDBC, JMS, LDAP, TCP, etc.), each providing samplers and GUI components. The system supports both GUI (Swing) and non-GUI (command-line) modes, distributed testing via RMI, and real-time metrics export to InfluxDB or Graphite. Key entry points include the NewDriver launcher, the JMeterEngine interface, and the TestPlan tree. Data flows involve sample generation by samplers, processing by assertions and extractors, and collection by listeners/visualizers, with results written to CSV/XML files or streamed to backends. External dependencies include Apache HttpClient, Jodd, jsoup, XStream, Apache Commons Math, and various protocol-specific libraries.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
artilleryio/artillery ★ 9093 571 APPLICATION

Artillery is a cloud-scale load testing and functional testing framework for backend services and APIs. It supports multiple protocols (HTTP, WebSocket, Socket.IO, Playwright, PostHog) through a plugin-based engine architecture. The system is primarily a CLI tool (built on oclif) that executes YAML/JSON test scripts defining virtual user flows with configurable arrival phases, payloads, and assertions. It provides distributed execution across local worker threads, AWS Lambda, AWS ECS/Fargate, and Azure ACI, with a bill-of-materials (BOM) system that bundles test dependencies for cloud workers. Metrics are aggregated via a custom Simple Statistics Measurement System (SSMS) supporting counters, histograms (DDSketch), and rates, and can be published to Datadog, CloudWatch, Prometheus, OpenTelemetry, Splunk, New Relic, and other observability platforms. The codebase is a monorepo managed with Turborepo, containing the core runner, platform integrations, first-party plugins (expect, ensure, apdex, slack, fake-data, metrics-by-endpoint, publish-metrics, memory-inspector), and shared type definitions. Key entry points include the `artillery` binary (`packages/artillery/bin/run`), the core runner (`packages/artillery/lib/core/runner.ts`), and platform launchers (`packages/artillery/lib/launch-platform.ts`). External dependencies include AWS SDK, Azure SDK, Playwright, got (HTTP client), and various metric publishing SDKs. The architecture is event-driven, using EventEmitter for lifecycle events and plugin hooks, with a global `global.artillery` object for shared state.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
six-ddc/plow ★ 4517 152 APPLICATION

Plow is a high-performance HTTP(S) benchmarking CLI tool written in Go. It uses fasthttp for efficient HTTP client operations and provides real-time metrics including latency statistics, percentiles, histograms, and throughput. The tool supports configurable concurrency, request rate limiting, ramp-up, duration-based or request-count-based runs, and custom headers, body, TLS, and proxy settings. It outputs results to the terminal with live updating tables and also serves a web UI with interactive charts (latency, RPS, status codes, concurrency) using go-echarts. The architecture is a single binary with three main components: a requester that spawns concurrent workers, a stream-based report aggregator that computes streaming quantiles and histograms, and a printer/chart server for output. The code is well-structured, thoroughly tested, and follows Go best practices. It is not a library but a standalone application, though some internal components (e.g., the streaming stats engine and throughput interceptor) are cleanly isolated and could be reused in other projects.

RATING: 8.0/10 MAINT: active DRIFT: low
▸ 2 reusable components found
kubernetes/perf-tests ★ 989 654 APPLICATION

This repository is the official Kubernetes performance testing suite, housing multiple tools for benchmarking, load testing, and monitoring Kubernetes clusters. The core tool is clusterloader2 (CL2), a powerful framework that deploys scalable workloads, measures key performance indicators (API responsiveness, pod startup latency, scheduling throughput), and validates SLOs. It uses a pluggable measurement system, tuning sets for load patterns, and a provider abstraction layer supporting various environments (GKE, EKS, AKS, Kind, Kubemark). Other tools include a metric comparison utility (benchmark), a historical performance dashboard (perfdash), a real-time SLO Prometheus exporter (slo-monitor), DNS and network performance benchmarks, and data ingestion pipelines (perflens). The codebase is predominantly Go with Python scripts for data processing and extensive Prometheus/Grafana configurations. While primarily an application, it incorporates data pipelines for metric ingestion and SLO analysis, making it a hybrid toolset for performance engineering.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
grafana-cold-storage/postman-to-k6 ★ 296 51 APPLICATION

This repository is a Node.js CLI tool that converts Postman collections into executable k6 JavaScript scripts for load testing. It reads Postman collection JSON (v1/v2) along with optional environment, globals, and data files, processes authentication methods, variables, pre-request/test scripts, and outputs a k6-compatible script. The architecture features distinct layers: input conversion (lib/convert), collection traversal and processing (lib/generate, lib/common), authentication strategies (lib/auth), and script rendering (lib/render). A shim layer (lib/shim) provides Postman API compatibility in the k6 environment using symbol-based state management and extension patterns. Despite the code demonstrating solid engineering practices, the project is explicitly unmaintained per its README, with development moved to a fork, and relies on outdated Node.js 11 in its Dockerfile.

RATING: 6.3/10 MAINT: deprecated DRIFT: high
▸ 3 reusable components found
── end of results ──
$ submit: