Worked example: mixed traffic VarioTest
This example builds an e-commerce mix from three single tests you already have, with the steps in Build a VarioTest. It ends with a variant pattern that compares two API versions under the same composite load.
Problem: Production traffic on a storefront is not one request pattern. Browsing customers, checkout customers, and background jobs polling order status all compete for the same database connections, caches, and thread pools at once. Testing each one alone misses that interaction effect.
Test type: Load test, composite workload.
Prerequisites
Section titled “Prerequisites”- Three existing single tests, each validated on its own with a
smoke test:
Catalogue browse: a browsing scenario.Checkout — CRUD: an order-placement scenario.Order status polling — background: a low-rate polling scenario.
- All three tests live in the same project.
- A MaxoPerf plan with the VarioTest entitlement.
Step 1: size the mix
Section titled “Step 1: size the mix”Decide the traffic split you want to model. On a typical storefront, browsing is the largest share,
checkout is smaller, and background polling is the smallest: roughly 60 : 30 : 10.
- Open
Catalogue browse→ Configuration → set total virtual users to600. - Open
Checkout — CRUD→ Configuration → set total virtual users to300. - Open
Order status polling — background→ Configuration → set total virtual users to100. - Save each configuration. Together these three totals (600 / 300 / 100 of 1000) express the
60 / 30 / 10mix. VarioTest has no separate weight field, so each scenario’s own load profile sets the mix, as described in the scenario, weight, and variant model.
Step 2: compose the VarioTest
Section titled “Step 2: compose the VarioTest”- Go to Tests and click New VarioTest.
- Name it
E-commerce — mixed workloadand select the project containing the three tests above. Click Next. - In the Scenarios checklist, check
Catalogue browse, thenCheckout — CRUD, thenOrder status polling — background, in that order. The selection order becomes the run order. Click Review. - Confirm the ordered list and click Create VarioTest.
Step 3: run and analyze
Section titled “Step 3: run and analyze”- On the new VarioTest’s detail page, click Run VarioTest.
- Open the run detail page once it starts. The Overview tab shows aggregate throughput and latency across all three scenarios.
- Use the Scenario scope filter to isolate one scenario’s metrics. For example, filter to
Checkout — CRUDalone to see whether its latency gets worse once browsing and polling traffic share the same backend. - Clear the filter to return to the aggregate view.
Verify
Section titled “Verify”- All three constituent scenarios complete with status
Finished(orFailed, if you set failure criteria and one breached). - The relative traffic split roughly matches the
600 / 300 / 100VU split you configured on each scenario. - Aggregate p95 latency in the run overview is consistent with a weighted view across the three scenarios. A large gap suggests that one scenario dominates or is starved.
- The Scenario filter shows each scenario’s own metrics.
Variant pattern: A/B comparison
Section titled “Variant pattern: A/B comparison”A variant VarioTest compares two versions of the same workload under identical conditions instead of modeling a traffic mix. Build it the same way, with two scenarios instead of three:
- Create (or reuse) two single tests that run the same script against two different targets,
for example
Checkout — API v1andCheckout — API v2, both pointed at the same scenario file but with different endpoint configuration. - Give both the same total virtual users, ramp-up, and duration on their Configuration tabs. Equal load profiles make the comparison fair.
- Add both to one VarioTest, in either order. For a two-way variant comparison the order does not matter. Both only need to start together.
- Run it. Use the Scenario filter to flip between
Checkout — API v1andCheckout — API v2and compare their latency and error curves under identical concurrent conditions.
This answers “does the new implementation hold up under the same load as the old one?” without the noise of running the two versions at different times or under different background conditions.
Where to go next
Section titled “Where to go next”- Build a VarioTest: the full step-by-step guide.
- Runs: read results: the full guide to reading results, including the Metrics and Errors tabs.
- Tests & builders: performance, functional, and browser test builders that VarioTest composes.