How to Test a Magento Store
Test a Magento store across code, customer journeys, staging, performance, security, and production so launch issues surface before customers do.
To test a Magento store, first turn signed-off requirements into repeatable customer scenarios, then verify code and application behavior locally and in integration, validate the release candidate in staging, and repeat controlled operational checks after production deployment. Test the store’s actual configuration and integrations: a home page that loads does not prove search, cart, checkout, order handling, or email works.
“Magento” remains a familiar name; Adobe’s current documentation generally refers to the product as Adobe Commerce. Commands, frameworks, and infrastructure vary with the exact Commerce version, deployment model, enabled services, and custom integrations. Confirm those before adopting a CI matrix or commands. Adobe’s cited framework recommendations for Cloud environments are specifically scoped to Adobe Commerce on Cloud.
1. Define what “working” means
Start with approved technical specifications, user stories or use cases, and test cases. Turn each relevant requirement into an observable result: given a known setup, what action should a shopper or administrator take, and what should happen? Adobe’s development guidance recommends signed-off requirements and test cases, a development and QA environment, and functional testing before changes are submitted. It also says to match the technology stack’s major and minor versions to the intended production stack. Adobe: General development best practices
Build a test matrix from the store’s enabled features. These are practical examples, not a universal Adobe checklist; remove journeys that do not apply and add the store’s actual payment, shipping, tax, catalog, account, multi-store, and third-party behavior.
| Area | Example scenario | Useful assertion |
|---|---|---|
| Catalog and navigation | Open a category and a product | Expected products, price, availability, images, and links appear. |
| Search and filters | Search a known term and narrow results | Relevant products appear; filters and result counts behave as expected. |
| Cart | Add, update, and remove a product | Quantities, prices, discounts, and totals update correctly. |
| Promotion | Apply an eligible and an ineligible code | The eligible rule applies; invalid or out-of-scope codes produce a clear result. |
| Tax and shipping | Calculate totals for representative destinations | Displayed totals agree with the store’s configured rules. |
| Checkout and payment | Complete the configured test payment path | Validation, payment result, order state, and confirmation are correct. |
| Accounts | Register, sign in, and view order history if enabled | Access controls and account data match expected behavior. |
| Operations | Trigger the intended order email and external integration | Messages and downstream updates arrive once with correct data. |
For every case record its prerequisites, test data, steps, expected result, environment, code revision, and outcome. Include failure paths as well as successful ones. Avoid using real customer data in test workflows unless the organization’s privacy and data-handling rules explicitly permit it.
2. Test changes during development
Run checks as close as practical to the code change, then run the broader suite before review and QA. A useful layered set is:
- Static and code checks: the project’s configured style, static analysis, and dependency checks.
- Unit tests: isolated behavior in changed classes and modules.
- Integration tests: behavior involving databases, services, and module boundaries.
- Functional or browser workflows: complete application paths that reflect shopper or admin behavior.
- Manual review and QA: usability, visual differences, and scenarios not covered by automation.
Use the framework and dependencies compatible with the precise Commerce release. Adobe Commerce 2.4.8 release notes, for example, recommend that customers with customizations and Marketplace vendors verify unit and integration tests on PHPUnit 10 rather than 9. That is release-specific guidance, not a version rule for every Magento store; consult the compatibility requirements for the installed release. Adobe Commerce 2.4.8 release notes
For functional testing in a Docker environment for Adobe Commerce on Cloud, Adobe identifies the Magento Functional Testing Framework (MFTF) for application testing. It identifies Codeception for PHP code intended for contribution to Cloud package repositories. These are distinct roles; the Cloud guidance should not be read as a general recommendation to replace every storefront end-to-end suite with Codeception, nor does it automatically fit Open Source or self-hosted installations. Check the scope and setup for the deployment you run. Adobe: Testing guidance
3. Promote the release through environments
Test locally, then in integration, staging, and production. Passing locally or in integration does not guarantee the release will behave the same later. Environments may have different services, configuration, permissions, and data. Adobe notes that integration may lack services such as Fastly or New Relic, while staging more closely resembles production; it strongly recommends testing across Integration, Staging, and Production because custom code, themes, extensions, and third-party integrations interact. Adobe: Testing guidance · Adobe: Site launch
| Environment | What to emphasize | What can differ |
|---|---|---|
| Local | Fast feedback on changed code and reproducible developer scenarios. | Services, configuration, data volume, and network access. |
| Integration | Combined changes, module interactions, and automated checks. | May not include production-connected services or realistic data. |
| Staging | Release-candidate acceptance, production-like configuration, and workflows involving external services. | Still may not match production data, load, credentials, or every service setting. |
| Production | Careful smoke checks and operational monitoring after release. | Real customers, orders, and live integrations make test effects consequential. |
Use staging for user acceptance testing (UAT) and cases that depend on production-like configuration. Keep test data representative but controlled, and record the environment and revision with each result. Do not assume the same command, service endpoint, secrets, or fixtures should be used in every environment.
4. Validate performance with a representative workload
Performance checks answer different questions. A load test asks how the store behaves under expected concurrent use and business transactions; Adobe says it can expose bottlenecks and response behavior in components such as the database or application server. A stress test pushes above expected maximum load to understand capacity limits. Plan them separately and only against an environment and traffic target you are authorized to use. Adobe: Testing guidance
- Choose journeys that matter to the business: catalog browsing, search, cart, checkout, and relevant APIs.
- Use test data and cache behavior that reflect the intended workload. Document assumptions such as logged-in versus guest traffic.
- Ramp traffic in controlled steps. Record latency distributions, error rates, throughput, and resource saturation at each step.
- Correlate slow transactions with application, database, cache, search, and infrastructure telemetry.
- Repeat after changes to code, configuration, catalog scale, or infrastructure that could affect results.
Adobe’s launch guidance names Performance Toolkit options and Siege and JMeter for simulated traffic/load testing, and New Relic for locating slow actions or processes. Compare tools by how realistically they can model your journeys, control concurrency, report results, fit the deployment, and expose server-side bottlenecks. A test that skips expensive journeys or uses unrealistic data and caching can be reassuring but uninformative. Adobe does not publish a universal Magento user count or acceptable response-time target in the cited guidance; set thresholds from the store’s own requirements and baseline. Adobe: Launch checklist
5. Check security within an authorized scope
Adobe describes its Security Scan Tool as a way to monitor store sites for known security risks, malware, and outdated software. It supports scheduled or on-demand scans and labels findings Failed or Unidentified. Adobe says teams commonly begin using it during UAT; investigate findings and apply fixes through development before moving them into production. A scan result is one input to security work, not proof that every risk has been addressed. Adobe: Site launch
Penetration testing is an authorized simulated attack intended to identify weaknesses. Obtain authorization and follow the applicable host and provider rules. Adobe specifically prohibits customers using Commerce on Cloud from conducting security assessments of AWS infrastructure or AWS services. Keep testing confined to approved application scope; do not probe shared infrastructure. Adobe: Testing guidance
6. Run launch checks and a production smoke test
Before launch, work through the release candidate’s UAT and performance checks, then review production-specific configuration. Adobe’s launch checklist calls out outgoing email, secure Admin credentials and base Admin URL, image optimization, HTML/JavaScript/CSS minification, and Fastly cache behavior. Confirm secure storefront and Admin URLs against the installed topology and configuration. Adobe: Launch checklist · Adobe: Installation parameters
After deployment, use a short, controlled checklist from outside the deployment environment:
- Confirm DNS resolution and the expected TLS certificate on the storefront and intended Admin route.
- Load representative storefront pages and confirm scripts, styles, and product assets load.
- Verify cache behavior and any relevant CDN rules after the release.
- Run a low-risk customer journey using a safe payment or test path where available.
- Confirm transactional email and essential external integrations.
- Watch application and infrastructure telemetry and logs for errors or unusual resource use.
Keep live payment and order checks controlled: avoid unintended charges, fulfillment, inventory changes, or customer communications. The precise post-deployment checklist depends on the store’s topology and enabled services.
7. Capture storefront evidence during QA
Screenshots can make visual regressions and cross-page review easier to share. Capture the same representative URLs and viewport sizes before and after a release, and compare areas that matter: product imagery, responsive navigation, banners, and checkout layouts. A screenshot only shows rendered appearance; it does not establish that a button works, an order was created, or server-side behavior is correct. Pair visual evidence with functional assertions and logs.
For repeatable captures, document the target URL, viewport, device scale, wait condition, and relevant authentication or cookie state. Test pages that require a session in a safe environment, and avoid including personal or payment data in images shared outside the team.
Or skip the browser setup
For repeatable storefront screenshots, ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. It returns a PNG, JPEG, WebP, or PDF from one GET request. See the ScreenshotNeo API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res); // In Node.js, use: await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer())))
ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, failed loads, and cache hits are never billed; response headers say which page verdict was returned and whether the request was billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Create a free ScreenshotNeo account.
Troubleshooting common failures
| Symptom | Likely cause | What to check or change |
|---|---|---|
| Works locally but fails in integration or staging | Different service availability, configuration, secrets, permissions, or data. | Compare environment configuration and service dependencies; reproduce with the target environment’s versions and safe test data. |
| Functional suite cannot reach a service | Endpoint, credentials, network access, or service differs by environment. | Check the environment-specific service configuration and test connectivity using approved access; do not copy production secrets into local fixtures. |
| Unit or integration tests fail after a platform upgrade | Testing framework or dependency compatibility changed. | Check the installed release’s compatibility documentation. For Commerce 2.4.8, Adobe’s release notes call for verifying tests on PHPUnit 10 rather than 9. |
| Checkout totals or promotions differ from expectations | Scenario assumptions do not match configured tax, shipping, currency, customer group, catalog, or promotion rules. | Record those inputs in the test case and use known fixtures; compare each calculation stage to the approved requirement. |
| Load test looks fast but customers still report slowness | The workload may omit search, checkout, realistic data, external services, or cache misses. | Model actual business journeys and correlate transaction timings with server-side telemetry. Validate that the test environment resembles the issue environment. |
| Security scan reports Failed or Unidentified | A known risk, outdated software, or an inconclusive finding needs investigation. | Review the finding and report, fix through development, and rescan before production as appropriate. |
| Post-deployment page looks incomplete | Asset, minification, CDN, cache, or configuration issue. | Inspect browser network errors and logs; verify production asset settings and cache behavior in the launch checklist. |
| Test order sends a real email or charge | The workflow is connected to live payment or messaging services. | Use an approved test integration or carefully controlled test account and confirm side effects before running. Stop if the path can fulfill a real order. |
Reliability, performance, and cost considerations
- Reliability: Keep tests deterministic with explicit fixtures, prerequisites, and cleanup. Separate a flaky external dependency from an application failure, but still track the dependency because customers rely on it.
- Coverage: Prioritize journeys by business impact and change risk. Unit coverage alone cannot establish that a complete storefront journey succeeds.
- Environment cost: Integration, staging, monitoring, and load generation consume infrastructure and team time. Run expensive load or stress tests deliberately and coordinate them with hosting providers.
- Data safety: Minimize personal data, reset test state where possible, and prevent test notifications or orders from reaching real customers.
- Tool fit: Frameworks and load tools solve different problems. Select based on exact platform compatibility, deployment scope, realism, observability, maintainability, and operating cost.
- Screenshot evidence: Automated captures reduce manual repetition, but they incur API usage according to the chosen service’s pricing and should be reviewed alongside functional results.
Frequently asked questions
How do I test a Magento store before launch?
Use signed-off scenarios, run code and functional checks in local and integration environments, repeat UAT in production-like staging, then perform a controlled production smoke test after deployment. Include the store’s real integrations and configuration in the plan.
Is a home page check enough?
No. It confirms only that one page rendered at that moment. Test representative catalog, search, cart, checkout, payment, order, email, and integration paths that the store actually enables.
Can I run penetration tests against Adobe Commerce on Cloud?
Security testing must be authorized and follow provider rules. Adobe specifically prohibits customer security assessments of AWS infrastructure and AWS services for Commerce on Cloud; consult the current Adobe guidance to establish permitted application scope.
Which load test target should I use?
Derive it from the store’s expected workload and requirements. Adobe’s cited guidance does not establish one universal concurrency or response-time threshold for every Magento store.


