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 lists all 21 supported executors.
Before you start
Section titled “Before you start”- Read Taurus fundamentals to learn 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 sends HTTP requests itself, with no separate engine. Use it 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 through 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 in real browsers, not HTTP-level simulation. See Selenium browser tests. Uses a lot of resources, so keep concurrency low. |
apiritif | Apiritif (Python HTTP client) | .py Apiritif script | Supported via Taurus | Python HTTP client framework with a recorder. Fits teams that prefer Python over YAML or JavaScript. Not a browser, HTTP only. |
siege | Siege | URL-list file or inline URLs | Supported via Taurus | Simple multi-threaded HTTP benchmarking tool. Good for quickly hitting a list of URLs. Expresses fewer scenario types than JMeter or k6. |
ab | Apache Benchmark (ab) | No file (URLs set 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 | HTTP load generator written 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 through Taurus. k6 is easier to use for load testing, so prefer k6 for new JavaScript load tests. |
wdio | WebdriverIO | .js / .ts WebdriverIO spec | Supported via Taurus | Browser automation with WebdriverIO, run as a 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. Fits teams that already use 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, because 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 MaxoPerf tunes the runner images for them less actively. If you hit a problem with a Taurus pass-through executor, MaxoPerf support 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 tips and upload workflow.
- Gatling and Locust: when and how to run them through Taurus.
- Selenium browser tests: browser-driven load with the Selenium executor.