{"id":13562450,"url":"https://github.com/rabbitmq/rabbitmq-perf-test","last_synced_at":"2025-04-14T15:53:03.864Z","repository":{"id":37801542,"uuid":"68935891","full_name":"rabbitmq/rabbitmq-perf-test","owner":"rabbitmq","description":"A load testing tool","archived":false,"fork":false,"pushed_at":"2025-04-11T13:15:45.000Z","size":23486,"stargazers_count":383,"open_issues_count":14,"forks_count":111,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-04-11T14:45:50.788Z","etag":null,"topics":["benchmarking","load-testing","rabbitmq","tool"],"latest_commit_sha":null,"homepage":"https://www.rabbitmq.com/java-tools.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabbitmq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-22T15:38:00.000Z","updated_at":"2025-04-11T13:15:48.000Z","dependencies_parsed_at":"2023-09-26T17:45:30.940Z","dependency_job_id":"da5325b0-23c3-4b8c-a658-670c7f78e7b6","html_url":"https://github.com/rabbitmq/rabbitmq-perf-test","commit_stats":null,"previous_names":[],"tags_count":79,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-perf-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-perf-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-perf-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Frabbitmq-perf-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabbitmq","download_url":"https://codeload.github.com/rabbitmq/rabbitmq-perf-test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248911264,"owners_count":21182061,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarking","load-testing","rabbitmq","tool"],"created_at":"2024-08-01T13:01:08.782Z","updated_at":"2025-04-14T15:53:03.835Z","avatar_url":"https://github.com/rabbitmq.png","language":"Java","funding_links":[],"categories":["Java","Performance Testing"],"sub_categories":["gRPC \u0026 Protocol-Specific Testing"],"readme":"## RabbitMQ Performance Testing Tool\n\n[![Test against RabbitMQ stable](https://github.com/rabbitmq/rabbitmq-perf-test/actions/workflows/test.yml/badge.svg)](https://github.com/rabbitmq/rabbitmq-perf-test/actions/workflows/test.yml)\n\nThis repository contains source code of the RabbitMQ Performance Testing Tool.\nThe client is maintained by the [RabbitMQ team at Broadcom](https://github.com/rabbitmq/).\n\nPerfTest uses the [AMQP 0.9.1 protocol](https://www.rabbitmq.com/tutorials/amqp-concepts.html) to communicate with a RabbitMQ cluster.\nUse [Stream PerfTest](https://github.com/rabbitmq/rabbitmq-stream-perf-test) if you want to test [RabbitMQ Streams](https://rabbitmq.com/streams.html) with the [stream protocol](https://github.com/rabbitmq/rabbitmq-server/blob/main/deps/rabbitmq_stream/docs/PROTOCOL.adoc).\n\n## Installation\n\nThis is a standalone tool that is distributed in binary form using [GitHub releases](https://github.com/rabbitmq/rabbitmq-perf-test/releases) and as a JAR file on Maven Central (see below).\nPerfTest requires at least Java 8, but some features require Java 11.\nThe latest LTS Java version is recommended.\n\nA [Docker image](https://hub.docker.com/r/pivotalrabbitmq/perf-test/) is available as well.\n\nThe [latest snapshot](https://github.com/rabbitmq/rabbitmq-java-tools-binaries-dev/releases/tag/v-rabbitmq-perf-test-latest) is also available.\n\n## Documentation\n\n * [Latest stable release](https://perftest.rabbitmq.com)\n \u003c!-- * [Latest milestone release](https://rabbitmq.github.io/rabbitmq-perf-test/milestone/htmlsingle/) --\u003e\n * [Latest development build](https://perftest-dev.rabbitmq.com)\n\n## Usage\n\n### Running Performance Tests\n\nDownload the latest snapshot:\n\n```shell\nwget https://github.com/rabbitmq/rabbitmq-java-tools-binaries-dev/releases/download/v-rabbitmq-perf-test-latest/perf-test-latest.jar\n```\n\nLaunch a performance test with 1 producer and 1 consumer:\n\n```shell\njava -jar perf-test-latest.jar\n```\n\nUse\n\n```shell\njava -jar perf-test-latest.jar --help\n```\n\nto see all supported options.\n\n\n### Producing HTML Output of Runs\n\nThe HTML Performance Tools are a set of tools that can help you run \nautomated benchmarks by wrapping around the `PerfTest` benchmarking \nframework. You can provide benchmark specs, and the tool will take care\nof running the benchmark, collecting results and displaying them in an \nHTML page. Learn more [here](html/README.md).\n\n## Contributing\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md) for an overview of the development process.\n\n\n## Building from Source\n\nTo build the uber JAR:\n\n```shell\n./mvnw clean package -P uber-jar -Dgpg.skip=true -Dmaven.test.skip\n```\n\nThe generated file is `target/perf-test.jar`.\n\nTo build the JAR file:\n\n```shell\n./mvnw clean package -Dmaven.test.skip\n```\n\nThe file is then in the `target` directory.\n\n### Running tests\n\nThe test suite needs to execute `rabbitmqctl` to test connection recovery. You\ncan specify the path to `rabbitmqctl` like the following:\n\n    ./mvnw clean verify -Drabbitmqctl.bin=/path/to/rabbitmqctl\n\nYou need a local running RabbitMQ instance.\n\n### Running tests with Docker\n\nStart a RabbitMQ container:\n\n    docker run -it --rm --name rabbitmq -p 5672:5672 rabbitmq:4.0\n\nRun the test suite:\n\n    ./mvnw clean verify -Drabbitmqctl.bin=DOCKER:rabbitmq\n\nFiles are then in the `target` directory.\n\n## Maven Artifact\n\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.rabbitmq/perf-test/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.rabbitmq/perf-test)\n\n[perf-test search.maven.org](https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22perf-test%22)\n\n## Logging\n\n`PerfTest` depends transitively on SLF4J for logging (through RabbitMQ Java Client). `PerfTest` binary distribution\nships with Logback as a SLF4J binding and uses Logback default configuration (printing logs to the console). If\nfor any reason you need to use a specific Logback configuration file, you can do it this way:\n\n```shell\njava -Dlogback.configurationFile=/path/to/logback.xml -jar perf-test.jar\n```\n\nAs of PerfTest 2.11.0, it is possible to define loggers directly from the command line. This is less powerful\nthan using a configuration file, yet simpler to use and useful for quick debugging. Use the `rabbitmq.perftest.loggers`\nsystem property with `name=level` pairs, e.g.:\n\n```shell\njava -Drabbitmq.perftest.loggers=com.rabbitmq.perf=debug -jar perf-test.jar\n```\n\nIt is possible to define several loggers by separating them with commas, e.g.\n`-Drabbitmq.perftest.loggers=com.rabbitmq.perf=debug,com.rabbitmq.perf.Producer=info`.\n\nIt is also possible to use an environment variable:\n\n```\nexport RABBITMQ_PERF_TEST_LOGGERS=com.rabbitmq.perf=info\n```\n\nThe system property takes precedence over the environment variable.\n\nUse the environment variable with the Docker image:\n\n```\ndocker run -it --rm --network perf-test \\\n  --env RABBITMQ_PERF_TEST_LOGGERS=com.rabbitmq.perf=debug,com.rabbitmq.perf.Producer=debug \\\n  pivotalrabbitmq/perf-test:latest --uri amqp://rabbitmq\n```\n\nIf you use `PerfTest` as a standalone JAR in your project, please note it doesn't depend on any SLF4J binding,\nyou can use your favorite one.\n\n## Versioning\n\nThis tool uses [semantic versioning](https://semver.org/).\n\n## Support\n\nSee the [RabbitMQ Java libraries support page](https://www.rabbitmq.com/client-libraries/java-versions)\nfor the support timeline of this library.\n\n## License\n\nThis package, the RabbitMQ Performance Testing Tool library, is triple-licensed under\nthe Mozilla Public License 2.0 (\"MPL\"), the GNU General Public License\nversion 2 (\"GPL\") and the Apache License version 2 (\"ASL\").\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Frabbitmq-perf-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbitmq%2Frabbitmq-perf-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Frabbitmq-perf-test/lists"}