oro-k6-testing
Oro Commerce k6 Performance Testing
Overview
Oro ships a stock k6 test harness (from oro/performance-tests) that exercises the storefront from the outside — unauthenticated browsing, login, product listing/search/detail, shopping list creation, and checkout. Scripts are plain JavaScript, k6 is a single Go binary (or grafana/k6 Docker image), and every run emits named custom metrics you can gate with per-metric thresholds.
The Three-Script Pipeline
Scripts live in performance/scripts/ and run in this fixed order against a fresh or cleared cache. The order matters because step 1 primes caches that steps 2 and 3 measure — running them out of order inflates the numbers.
warmingUpTheApp.js— 1 VU for 60s,THRESHOLD_95=3000. Primes OPcache, Doctrine metadata, layout cache, and search index warm-up paths. Skipping this makes the load runs look slower than reality.storefrontTests.js— full browse flow (home, listing, search, product detail, login). Typical 1 VU / 600s /THRESHOLD_95=850.checkoutTest.js— authenticated checkout from an existing shopping list. RequiresSL_ID,SHIPPING_METHOD,PAYMENT_METHOD.
Do not reuse the load-run threshold (850 ms) for the warm-up — first-touch is always slower and the run will fail on cold caches.
Environment Variables
All passed with -e KEY=VALUE: