Load Testing an Ecommerce Staging Site on a VPS
Measure how a store behaves under concurrent shopping without confusing cached browsing with correct order processing.
A useful ecommerce load test models shoppers performing meaningful actions. Repeatedly requesting the homepage mostly measures that page and its cache. A store also needs product searches, cart updates, checkout, database writes, and background order handling to work together. Use an isolated staging environment and a bounded workload to discover the limiting layer before a promotion or major application change. Keep the goal specific enough that the results can guide an actual decision.
Prepare a controlled environment
Use representative catalog size and configuration with customer data removed or replaced. Route payment, shipping, email, and other external actions to suitable test systems or controlled substitutes. Only test infrastructure you own or have authorization to exercise, and respect the limits of any external sandbox. Document differences from production so the results are not overstated. A staging store with fewer plugins or a much smaller database may be useful for functional checks while providing a weak estimate of production capacity.
Model a shopping journey
Define a realistic mixture of browsing, searching, cart changes, and checkout attempts. Maintain separate sessions so virtual shoppers do not accidentally share one cart. Use enough product and customer variation to avoid testing only a single cached response. Verify that the script handles application tokens and state transitions correctly before increasing traffic. The Grafana k6 test type guide explains why smoke, ordinary load, spike, and longer duration tests answer different questions.
Begin small and set stop conditions
Run the journey with minimal traffic first and inspect the resulting test orders. Increase gradually toward a defined expected workload, with thresholds for errors, latency, memory pressure, and database saturation. Stop when the agreed boundary is reached instead of continuing until every component fails. Record the load generator's own resources as well, since an overloaded generator can produce misleading throughput numbers. Use a separate machine for generation when sharing the target VPS would distort the measurement.
Measure business correctness
Count successful test orders, rejected submissions, duplicate attempts, inventory changes, and deferred work completion. A fast response with the wrong order state is a failure. Trace slow phases to PHP or application workers, database queries, connection waiting, or external integrations. Keep request identifiers and safe timing information, avoiding sensitive payloads. For WooCommerce, the checkout performance guide offers a focused investigation path after the test identifies which purchasing step is slow.
Compare changes with the same workload
Repeat the baseline after one tuning or resource change and compare high percentile duration, error rate, correct order throughput, and recovery after traffic falls. Preserve the script revision, dataset description, configuration, and test duration with the results. Compare measured resource demand with LayerOne VPS plans without presenting a staging result as a universal capacity guarantee. A useful report states what the tested store handled, under which conditions, and which bottleneck appeared first. That evidence supports a more defensible launch decision than a single requests-per-second figure.