Taurus executor catalog
Taurus is an orchestration layer that runs one of many underlying load-testing engines. When you write a Taurus YAML for MaxoPerf, the executor: field in your execution: block selects which engine runs your scenario. This page is the complete catalog of all 21 supported executors.
Before you start
Section titled “Before you start”- Read Taurus fundamentals to understand the Taurus YAML structure and how MaxoPerf detects the executor.
- The executor you choose determines which entrypoint file format you need.
Executor source of truth
Section titled “Executor source of truth”The authoritative executor list in MaxoPerf is defined in packages/test-config/src/detect-taurus-executors.ts (SUPPORTED_TAURUS_EXECUTORS) and is used as the SSOT for the database engine-kind enum, the Platform API DTOs, the console engine-kind dropdown, and this page. When MaxoPerf validates your upload, it checks the executor: value against this same list.
The full executor catalog
Section titled “The full executor catalog”| Executor | Underlying tool | Entrypoint file kind | MaxoPerf support | Notes |
|---|---|---|---|---|
taurus | Taurus native HTTP runner | .yaml / .yml (no executor: key, or executor: taurus) | First-class | Default when no executor: is set. Taurus handles HTTP requests directly — no separate engine required. Great for simple HTTP load without JMeter or k6. |
jmeter | Apache JMeter | .jmx (referenced by scenarios.*.script) or direct .jmx upload | First-class | The most widely used executor. Upload your .jmx directly or reference it from a Taurus YAML. MaxoPerf validates JMX well-formedness and thread-group presence. |
k6 | Grafana k6 | .js / .ts k6 script | First-class | Full k6 support via Taurus or direct upload. The k6 script is your entrypoint; MaxoPerf wraps it in a Taurus execution.yaml at run time. |
gatling | Gatling (Scala) | .scala simulation file | Supported via Taurus | Point scenarios.*.script at a Gatling Scala simulation. MaxoPerf runs it through Taurus’s Gatling executor. No first-class MaxoPerf UI for Gatling-specific settings; configure in the YAML. |
locust | Locust (Python) | locustfile.py or any .py with from locust import | Supported via Taurus | Taurus wraps Locust, managing its master/worker topology and metrics collection. Upload locustfile.py as a test asset and reference it from the YAML. |
selenium | Selenium WebDriver | .py Selenium script or Selenium IDE .side file | Supported via Taurus | Runs browser-driven load tests — real browsers, not HTTP-level simulation. See Selenium browser tests. Resource-heavy; use low concurrency. |
apiritif | Apiritif (Python HTTP client) | .py Apiritif script | Supported via Taurus | Python-native HTTP client framework with a recorder. Good for teams that prefer Python over YAML or JavaScript. Not a browser — pure HTTP. |
siege | Siege | URL-list file or inline URLs | Supported via Taurus | Simple multi-threaded HTTP benchmarking tool. Effective for quick URL-list hammering. Limited scenario expressiveness compared to JMeter or k6. |
ab | Apache Benchmark (ab) | No file — URLs specified inline in YAML | Supported via Taurus | The classic HTTP microbenchmark. Good for single-endpoint baseline measurements. Not suitable for complex multi-step flows. |
vegeta | Vegeta (Go) | .txt URL-list or inline targets | Supported via Taurus | High-performance HTTP load generator in Go. Supports constant-rate (rate:) attacks. Better rate control than ab for sustained throughput tests. |
tsung | Tsung (Erlang) | Tsung XML config | Supported via Taurus | Distributed load-testing tool for HTTP, WebSocket, XMPP, and more. Complex setup. Use when you need Erlang-based distributed load or XMPP protocol support. |
molotov | Molotov (Python asyncio) | .py Molotov scenario | Supported via Taurus | Async Python load-testing library. Good for Python teams testing async HTTP services. Scenarios are Python functions decorated with @scenario. |
grinder | The Grinder | .py Grinder script (Jython) | Supported via Taurus | Java-based framework with Jython scripting. Legacy tool; prefer JMeter or k6 for new work. Supported but not recommended for new tests. |
junit | JUnit (Java) | Maven pom.xml or JAR | Supported via Taurus | Run Java JUnit load tests. Requires a Maven project structure. Not commonly used for pure load testing; better suited for teams with existing JUnit performance tests. |
testng | TestNG (Java) | Maven pom.xml or JAR | Supported via Taurus | Like junit but using the TestNG framework. Same considerations apply. |
mocha | Mocha (Node.js) | .js Mocha test file | Supported via Taurus | Run Node.js Mocha tests as load tests via Taurus. Not as ergonomic as k6 for load testing — prefer k6 for new JavaScript load tests. |
wdio | WebdriverIO | .js / .ts WebdriverIO spec | Supported via Taurus | Browser automation via WebdriverIO as load test. Similar to Selenium but using the WebdriverIO JavaScript API. |
robot | Robot Framework | .robot keyword-driven test | Supported via Taurus | Runs Robot Framework keyword-driven tests as load. Good for teams already invested in Robot Framework for functional testing. |
pbench | Pbench-fio / Pbench tools | Pbench config | Supported via Taurus | Performance benchmarking suite from Red Hat. Niche use case. Use when you specifically need Pbench’s tooling. |
scalable | Scalable (Taurus internal) | Taurus YAML | Supported via Taurus | Taurus’s own scalable executor for distributed load generation scenarios. Rarely needed — MaxoPerf handles distribution at the runner-fleet level. |
external | External process | Any command | Supported via Taurus | Runs an arbitrary external process as the load generator. MaxoPerf validates that the command: key is set. Use only when no other executor fits. |
Choosing between executors
Section titled “Choosing between executors”Most new MaxoPerf tests should use one of the three first-class executors:
taurus(native) — for teams that want a single declarative YAML with no external tooling.jmeter— for teams with existing JMX files, or who need JMeter’s plugin ecosystem.k6— for teams that prefer JavaScript and want fast iteration.
The “Supported via Taurus” executors work well but receive less active optimization in the MaxoPerf runner images. If you hit a problem with a Taurus-pass-through executor, the MaxoPerf support team can help.
Specifying the executor in your YAML
Section titled “Specifying the executor in your YAML”execution: - executor: locust # must be one of the 21 values listed above concurrency: 20 hold-for: 5m scenario: locust-scenario
scenarios: locust-scenario: script: locustfile.py # must be uploaded as a Test assetWhere to go next
Section titled “Where to go next”- Taurus fundamentals — YAML structure and upload workflow.
- JMeter JMX on Maxoperf — JMeter-specific tips and upload workflow.
- Gatling and Locust — when and how to use these via Taurus.
- Selenium browser tests — browser-driven load with the Selenium executor.