Skip to content

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.

  • 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.

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.

ExecutorUnderlying toolEntrypoint file kindMaxoPerf supportNotes
taurusTaurus native HTTP runner.yaml / .yml (no executor: key, or executor: taurus)First-classDefault when no executor: is set. Taurus handles HTTP requests directly — no separate engine required. Great for simple HTTP load without JMeter or k6.
jmeterApache JMeter.jmx (referenced by scenarios.*.script) or direct .jmx uploadFirst-classThe most widely used executor. Upload your .jmx directly or reference it from a Taurus YAML. MaxoPerf validates JMX well-formedness and thread-group presence.
k6Grafana k6.js / .ts k6 scriptFirst-classFull k6 support via Taurus or direct upload. The k6 script is your entrypoint; MaxoPerf wraps it in a Taurus execution.yaml at run time.
gatlingGatling (Scala).scala simulation fileSupported via TaurusPoint 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.
locustLocust (Python)locustfile.py or any .py with from locust importSupported via TaurusTaurus wraps Locust, managing its master/worker topology and metrics collection. Upload locustfile.py as a test asset and reference it from the YAML.
seleniumSelenium WebDriver.py Selenium script or Selenium IDE .side fileSupported via TaurusRuns browser-driven load tests — real browsers, not HTTP-level simulation. See Selenium browser tests. Resource-heavy; use low concurrency.
apiritifApiritif (Python HTTP client).py Apiritif scriptSupported via TaurusPython-native HTTP client framework with a recorder. Good for teams that prefer Python over YAML or JavaScript. Not a browser — pure HTTP.
siegeSiegeURL-list file or inline URLsSupported via TaurusSimple multi-threaded HTTP benchmarking tool. Effective for quick URL-list hammering. Limited scenario expressiveness compared to JMeter or k6.
abApache Benchmark (ab)No file — URLs specified inline in YAMLSupported via TaurusThe classic HTTP microbenchmark. Good for single-endpoint baseline measurements. Not suitable for complex multi-step flows.
vegetaVegeta (Go).txt URL-list or inline targetsSupported via TaurusHigh-performance HTTP load generator in Go. Supports constant-rate (rate:) attacks. Better rate control than ab for sustained throughput tests.
tsungTsung (Erlang)Tsung XML configSupported via TaurusDistributed load-testing tool for HTTP, WebSocket, XMPP, and more. Complex setup. Use when you need Erlang-based distributed load or XMPP protocol support.
molotovMolotov (Python asyncio).py Molotov scenarioSupported via TaurusAsync Python load-testing library. Good for Python teams testing async HTTP services. Scenarios are Python functions decorated with @scenario.
grinderThe Grinder.py Grinder script (Jython)Supported via TaurusJava-based framework with Jython scripting. Legacy tool; prefer JMeter or k6 for new work. Supported but not recommended for new tests.
junitJUnit (Java)Maven pom.xml or JARSupported via TaurusRun 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.
testngTestNG (Java)Maven pom.xml or JARSupported via TaurusLike junit but using the TestNG framework. Same considerations apply.
mochaMocha (Node.js).js Mocha test fileSupported via TaurusRun Node.js Mocha tests as load tests via Taurus. Not as ergonomic as k6 for load testing — prefer k6 for new JavaScript load tests.
wdioWebdriverIO.js / .ts WebdriverIO specSupported via TaurusBrowser automation via WebdriverIO as load test. Similar to Selenium but using the WebdriverIO JavaScript API.
robotRobot Framework.robot keyword-driven testSupported via TaurusRuns Robot Framework keyword-driven tests as load. Good for teams already invested in Robot Framework for functional testing.
pbenchPbench-fio / Pbench toolsPbench configSupported via TaurusPerformance benchmarking suite from Red Hat. Niche use case. Use when you specifically need Pbench’s tooling.
scalableScalable (Taurus internal)Taurus YAMLSupported via TaurusTaurus’s own scalable executor for distributed load generation scenarios. Rarely needed — MaxoPerf handles distribution at the runner-fleet level.
externalExternal processAny commandSupported via TaurusRuns an arbitrary external process as the load generator. MaxoPerf validates that the command: key is set. Use only when no other executor fits.

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.

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 asset