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 lists all 21 supported executors.

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

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 sends HTTP requests itself, with no separate engine. Use it 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 through 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 in real browsers, not HTTP-level simulation. See Selenium browser tests. Uses a lot of resources, so keep concurrency low.
apiritifApiritif (Python HTTP client).py Apiritif scriptSupported via TaurusPython HTTP client framework with a recorder. Fits teams that prefer Python over YAML or JavaScript. Not a browser, HTTP only.
siegeSiegeURL-list file or inline URLsSupported via TaurusSimple multi-threaded HTTP benchmarking tool. Good for quickly hitting a list of URLs. Expresses fewer scenario types than JMeter or k6.
abApache Benchmark (ab)No file (URLs set inline in YAML)Supported 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 TaurusHTTP load generator written 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 through Taurus. k6 is easier to use for load testing, so prefer k6 for new JavaScript load tests.
wdioWebdriverIO.js / .ts WebdriverIO specSupported via TaurusBrowser automation with WebdriverIO, run as a 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. Fits teams that already use 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, because 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 MaxoPerf tunes the runner images for them less actively. If you hit a problem with a Taurus pass-through executor, MaxoPerf support 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