Tests — create and configure
What this is
Section titled “What this is”The Tests surface is where you define, configure, and launch load tests. A test is a reusable definition. It holds the scenario files, load profile, runner locations, failure criteria, and secret bindings that every run inherits. You create a test once and run it many times. Editing it does not affect the runs it already produced, because each run keeps an immutable snapshot of the configuration that was active when it started. A single-engine test drives one scenario file; a VarioTest chains multiple single tests into one coordinated multi-scenario run.
A test lives inside one project, which lives inside one workspace. See Account overview & active runs for the full hierarchy. The unit you create is a test; the unit you execute is a run (see Runs — read results). They are separate on purpose, so you can re-run the same test as often as you need and compare results side by side.
Where to find it
Section titled “Where to find it”Select Tests in the left navigation sidebar. The group expands to show:
- All tests: the test catalog for the active workspace.
- New test: the single-test authoring wizard.
A New VarioTest button also appears in the catalog page header when your account has the VarioTest entitlement.
All tests (test list)
Section titled “All tests (test list)”The test list shows every test in the active workspace as a compact table. Columns are Test (name, inline-editable), Engine / kind (for VarioTests the kind shows “Vario” with a scenario count), Last run (timestamp in your local timezone), and an Open action link.
Filters
Section titled “Filters”Four filter controls appear above the table:
| Filter | What it narrows |
|---|---|
| Search | Test name or id (substring, case-insensitive) |
| Test kind | All kinds · Single tests · VarioTest only |
| Engine | All engines or a specific Taurus executor (JMeter, k6, Selenium, Apiritif, …) |
| Project | All projects or a single project in the workspace |
How to use the test list
Section titled “How to use the test list”- Select a workspace in the scope switcher in the top bar. The list is blank without one.
- Type in Search to narrow by name or paste a test id.
- Use Test kind to isolate VarioTests from single tests.
- Use Engine to find all JMeter or k6 tests at once.
- Use Project to scope the catalog to a single project.
- Click Open in any row to go to that test’s detail page.
- Click a test name to rename it inline without leaving the list. Press Enter to save.
- Use the pagination bar at the bottom to page through large catalogs.
New test
Section titled “New test”The New test wizard creates a single-engine load test. Go to Tests → New test in the sidebar, or click the New test button in the catalog page header.
The wizard is a single scrolling page with four sections. Use the jump-to links at the top to scroll to any section:
1. Test details
Section titled “1. Test details”| Field | Required | What it sets |
|---|---|---|
| Test name | Yes (≥ 2 characters) | The display name for this test |
| Project | Yes | Which project the test belongs to |
2. Scenario and files
Section titled “2. Scenario and files”Drag and drop your scenario files into the drop zone, or click to open a file picker. MaxoPerf detects supported file types automatically (Taurus YAML, JMX, k6 JS/TS, Apiritif Python, and supporting assets). When it recognises the files, a File roles list appears where you set each file’s role (primary scenario vs. test asset).
3. Load configuration
Section titled “3. Load configuration”| Setting | What it controls |
|---|---|
| Total virtual users | Concurrent VUs spread across all locations according to weights |
| Max VUs per runner | Cap per individual runner; MaxoPerf computes the minimum runner count from this |
| Ramp-up (seconds) | Time to linearly increase load from 0 to target VU count |
| Stop mode | Duration (run for N seconds) or Iterations (run for N request iterations) |
| Duration / Iterations | The corresponding stop value |
4. Locations and capacity
Section titled “4. Locations and capacity”Add one or more rows to the location plan using Add row. Each row is either a managed region (cloud provider + region) or a BYOC private datacenter. Set a runner count and weight per row. The weight controls how virtual users are distributed across locations. Click Auto-balance to set runner counts automatically based on the total VU target and the max VUs per runner cap.
How to create a new test
Section titled “How to create a new test”- Go to Tests → New test in the sidebar.
- Fill in Test name and select a Project in the Test details section.
- Drop your scenario file(s) into the Scenario and files drop zone. Wait for the engine to be detected (a badge appears showing the detected engine).
- Set file roles if more than one file was uploaded.
- Adjust Total virtual users, Max VUs per runner, Ramp-up, and Stop mode in Load configuration.
- Add at least one row to the location plan and set a runner count.
- Click Create test in the sticky footer. You land on the new test’s detail page.
New VarioTest
Section titled “New VarioTest”A VarioTest combines multiple single tests (scenarios) from a single project into one coordinated run. It is available on accounts with the VarioTest entitlement. Click New VarioTest in the catalog page header, or go to Tests → New VarioTest directly.
The wizard has three steps:
Step 1: Name and project. Give the VarioTest a name (≥ 2 characters) and select the project that contains the single tests you want to use. A VarioTest only takes scenarios from one project.
Step 2: Scenarios. A checklist of all single tests in the selected project appears. Check up to 20 tests in the order you want them to run. The selection order becomes the scenario order. You can reorder in the Review step.
Step 3: Review. A summary shows name, project id, and the ordered scenario list. Click Create VarioTest to submit. You land on the new VarioTest’s detail page.
How to create a VarioTest
Section titled “How to create a VarioTest”- Click New VarioTest in the catalog page header. (If the button is missing, the entitlement is not enabled. Ask your admin.)
- Enter a name and select the project that holds your scenario tests. Click Next.
- Check the scenario tests in the order you want them to run (up to 20). Click Review.
- Confirm the scenario list and click Create VarioTest.
Test detail: Overview
Section titled “Test detail: Overview”After opening a test, the Overview tab (the default view) shows aggregated run history for this test definition.
The Overview tab shows four charts:
| Chart | What it shows |
|---|---|
| Duration trend | Run duration (seconds) over time, as a time-series line per recent run |
| Status breakdown | Count of passed, failed, and other statuses across runs |
| Last run — RPS trend | Requests-per-second sample from the most recent run |
| Health snapshot | Health indicator bars from the most recent run |
The test name appears at the top of the page as an inline-editable title. Click it to rename the test. The Run test / Run VarioTest button at the top right launches a new run from this definition.
How to use the Overview tab
Section titled “How to use the Overview tab”- Open a test from the list, or go directly to
/tests/<testId>/overview. - Read the Duration trend chart to spot runs that took much longer than usual.
- Read the Status breakdown chart to see the proportion of passing vs. failing runs.
- Click Run test to start a new run. A confirmation dialog asks whether to open the run detail now or stay on the test.
Test detail: Configuration
Section titled “Test detail: Configuration”On the Configuration tab you edit the test’s project assignment, load profile, location plan, failure criteria, and verdict mode. Changes apply to future runs; existing run configuration snapshots stay immutable.
Sections on this tab:
Test details: change the project this test belongs to. The detected engine is read-only (the files control it). For a single test, this section also has Capture error bodies (on by default): it keeps redacted request and response samples of failing requests, up to 64 KiB each. The switch saves immediately and applies to the next run. Not every engine exposes bodies: JMeter, k6, Gatling, Locust, Apiritif and Playwright do, Selenium does on Chrome while browser recording is on, and other engines report error messages only. A VarioTest uses the setting of each member’s source test. Anyone the run is shared with sees the samples. See Inspect error response bodies.
Scenario and files: (single tests only) upload new files, change file roles, revalidate, or delete files using the same drag-and-drop panel as the New test wizard.
Scenarios: (VarioTests only) a read-only table of the scenario tests in position order.
Load configuration: edit total virtual users, max VUs per runner, ramp-up duration, stop mode, and duration / iterations, with the same sliders and inputs as New test.
Locations and capacity: add, edit, or remove location rows. The auto-balance button works here too.
Failure criteria: define SLA gates. Select a metric (e.g. p95 latency, error rate), a comparator, and a threshold value. If a run breaches a criterion, MaxoPerf marks the run failed. You can add several criteria.
Verdict mode: choose how a multi-runner run is judged when failure criteria are defined: either (any runner breach fails the run), all (all runners must breach), or combined with an early-stop option.
How to update a test configuration
Section titled “How to update a test configuration”- Open the Configuration tab on the test detail page.
- Edit any section. Changes stay local until you save.
- Click Save configuration in the sticky footer bar.
Test detail: Dependencies
Section titled “Test detail: Dependencies”The Dependencies tab is where you declare everything this test needs to run — secrets, virtual services, tunnels, and browser fleets — so the run can bring them up and inject their environment variables. See Test dependencies for the full guide to what each dependency kind does, the environment variables it injects, and how the run’s prepare/release lifecycle works.
Pick an entity from the picker (grouped by kind, with a Create new… shortcut), set the environment-variable name, and MaxoPerf shows the exact variable name it will inject. A URL-shaped builder field (an HTTP request’s URL, a browser step’s target) also offers the same picker inline as a chip, so you can point the field directly at a virtual service or tunnel instead of hand-typing the variable reference.
How to bind a dependency
Section titled “How to bind a dependency”- Open the Dependencies tab on the test detail page.
- Click the picker and choose an entity, or Create new… if you don’t have one yet.
- Set the environment-variable name (a short stem like
APPorPAYMENTS). - The binding saves immediately — there is no separate save step.
Test detail: Runs
Section titled “Test detail: Runs”The Runs tab shows the recent run history for this test definition.
The table has columns: Run (name, clickable link to run detail), Status (badge), Duration (seconds), and Started (your local timezone).
How to use the Runs tab
Section titled “How to use the Runs tab”- Open the Runs tab on any test.
- Click a run name to go to that run’s detail page.
- If the table is empty, this test has no runs yet. Click Run test on any tab to start one.
Test detail: Schedules
Section titled “Test detail: Schedules”The Schedules tab manages recurring scheduled runs for this test.
Schedules are defined with a cron expression and an optional display name. Each schedule shows its status (active / paused), the cron expression, and the next scheduled run time in UTC.
How to add a schedule
Section titled “How to add a schedule”- Open the Schedules tab on a test.
- Click Add schedule.
- Enter a cron expression (e.g.
0 8 * * 1-5for 08:00 Monday–Friday UTC). - Optionally give it a display name.
- Click Save. The schedule appears in the list and the next run time is shown.
For a full walkthrough, see Schedule recurring tests.
Test detail: Files
Section titled “Test detail: Files”The Files tab is a separate view for managing the test’s scenario and supporting files outside the full Configuration form.
The Files tab shows the same drag-and-drop authoring panel as the Configuration tab’s Scenario and files section, on its own. For each file you can:
- Download: download the original file without exposing a presigned URL.
- Set as entrypoint: mark a file as the primary scenario entrypoint.
- Revalidate: run engine detection on the file again.
- Delete: remove the file from the test.
For a full walkthrough of file management, see Upload test files.
Test detail: Data
Section titled “Test detail: Data”The Data tab controls which shared datasets and parameters feed this test’s virtual users. Binding a secret to a test — injecting a credential as an environment variable — moved to the Dependencies tab; see Test detail: Dependencies above and Test dependencies.
Test data: parameters and shared datasets
Section titled “Test data: parameters and shared datasets”Realistic load tests need realistic input data: users, products, search terms, or feature flags. MaxoPerf gives you two building blocks for that, in addition to the Data tab’s secret bindings above.
Data entities are workspace-shared datasets. A data entity lives next to your projects, so any test in the workspace can reuse it. For example, a users entity with email, password, and tier columns, or a products entity loaded from a CSV your team curates. Each entity has a schema and one or more variants: a CSV variant uploaded from your team’s source of truth, or a synthetic variant generated so every runner gets unique rows without giving every virtual user the same record.
Parameters are per-test values (a base URL, an account id, a feature flag) that you change without editing the underlying data entity or scenario file. Parameters appear in the test settings and are recorded with each run, so the result page shows the exact values that run used.
| You want | Use |
|---|---|
| A fixed, small dataset that everyone shares | CSV variant |
| Per-runner unique rows so accounts do not collide | Synthetic variant |
| The same dataset with a few values tweaked per test | Parameter |
Do not put sensitive values such as API tokens or passwords into a data entity or parameter. Bind a workspace secret on the test’s Data tab instead. For the variant and weighting model used when you combine multiple scenarios, see VarioTest.
Tips & gotchas
Section titled “Tips & gotchas”- Engine is read-only after creation. The scenario file format determines the engine, and you cannot change it by hand. To switch engines, upload a file of the new type and delete the old one. MaxoPerf detects the engine again automatically.
- Load profile edits apply to future runs only. Changing total VUs or duration on the Configuration tab does not affect runs that have already started. Each run captures an immutable configuration snapshot.
- Failure criteria trigger early stop. When a criterion is breached, the run can stop all runners early (controlled by the Verdict mode → Combined early stop toggle on Configuration).
- Renaming a test is safe. The test
idis permanent and never changes. You can edit the display name inline on the list or through the inline title on the detail page. - VarioTest scenario order matters. Scenarios run in listed order by default. Reorder in the New VarioTest Review step. After creation, you can only reorder by recreating the VarioTest.
- Workspace secrets must exist before binding. If the Data tab shows “No secrets in this workspace yet”, go to the Secrets section and create them first.
Related docs
Section titled “Related docs”- Describe with AI: fill requests, load, locations, criteria and schedules from a sentence.
- Executors: supported test engines and file formats.
- VarioTest: VarioTest composite runs, scenarios, and variant weighting in detail.
- Run your first test: end-to-end walkthrough that creates a test, runs it, and checks the results.
- Upload test files: file roles, engine detection, revalidation.
- Manage test secrets: create secrets and bind them to tests.
- Schedule recurring tests: cron-based scheduling for automated runs.
- Runs — read results: read run results after a test completes.