Synthetic Monitoring

Simulate real users — catch failures before they do.

A site can be "up" — returning 200 OK — while users are unable to log in, complete a checkout, or submit a form. Synthetic monitoring automates real user journeys in a browser, executing the same steps a visitor would take and verifying that every step completes successfully. If the login flow breaks at 2 AM, synthetic monitoring finds it before your customers do.

Why uptime monitoring isn't enough

Traditional uptime monitoring asks a single question: "Is this URL returning a 200 response?" For a static page or a simple content site, that might be sufficient. But for any application where users need to authenticate, interact, transact, or navigate a multi-step flow, a 200 response tells you almost nothing about whether the application is actually working.

Consider these scenarios that uptime monitoring cannot detect: A login form that renders correctly but returns an authentication error for all users due to a session store failure. A checkout flow where the cart adds items but the payment step silently fails. A signup form that submits successfully but doesn't create an account due to a database migration issue. A search feature that returns the page but hangs indefinitely on the results query.

In each case, the server is "up" and the page is reachable — but users cannot accomplish what they came to do. The only way to detect these failures reliably is to execute the same actions a real user would take and verify that each step produces the expected result. That is what synthetic monitoring does.

How synthetic monitoring works

Synthetic monitoring uses a real browser engine — Chromium-based, supporting full JavaScript execution — to automate the user interactions you define. A monitoring script specifies a sequence of actions: navigate to a URL, fill in a form field, click a button, wait for an element to appear, assert that a specific value is visible. NetTests executes this script on a schedule and reports the result of each step, the total duration, and any failures with screenshots and diagnostic information.

Because synthetic checks run in a real browser, they exercise the full application stack — the same JavaScript your users run, the same API calls, the same authentication flows. A failure in any part of the stack — backend API, JavaScript error, CSS rendering issue that obscures a form element, authentication service outage — will be detected by the check.

Synthetic checks complement, rather than replace, uptime monitoring. Use uptime monitoring for broad coverage of all your endpoints, and synthetic monitoring for your most critical user-facing flows — login, signup, purchase, key feature interactions — where a failure has the highest business impact.

Key features

Real browser execution

Runs in a full Chromium browser with JavaScript enabled — the same environment as your actual users.

Multi-step flows

Chain navigation, form interaction, button clicks, and assertions into complete user journeys.

Login flow testing

Verify that users can log in with valid credentials and access authenticated areas of your application.

Checkout and transaction testing

Walk through a purchase or transactional flow end-to-end to verify the critical revenue path is functional.

Form submission verification

Submit lead capture forms, signup flows, and contact forms and verify they process correctly.

Step-level diagnostics

When a check fails, see exactly which step failed, the error message, and a screenshot of the browser state at that moment.

Performance measurement

Record the total duration of each synthetic check and alert when flows take longer than your defined threshold.

Scheduled execution

Run synthetic checks continuously on the schedule you define — every minute, every five minutes, or every hour.

Related diagnostic tools

Check individual aspects of your site's behavior with these free tools.

Frequently asked questions

What user flows should I monitor synthetically?

Prioritize flows where a failure has the highest business impact or the lowest discoverability. Login, signup, checkout, payment, and key feature interactions are the most common candidates. Also consider flows that are less likely to be tested frequently — password reset, account deletion, email verification — which can break silently after infrastructure changes and not be discovered until a user reports an issue weeks later.

How is synthetic monitoring different from end-to-end testing?

End-to-end tests run in your CI/CD pipeline against a staging or test environment before deployment. Synthetic monitoring runs continuously in production against your live application. They serve complementary purposes: E2E tests verify that new code doesn't break flows before it ships; synthetic monitoring verifies that production continues to work correctly after it does. Production has variables — real databases, third-party services, CDN configurations — that staging doesn't always replicate.

Does synthetic monitoring interfere with real users or analytics?

Synthetic monitoring generates real browser traffic, which means it can affect analytics and create test data in databases or CRMs. NetTests sets standard bot identification headers so analytics platforms can filter synthetic traffic. For checks that create transactions or account records, you can use dedicated test accounts and filter them from your analytics by user identifier.

How do I handle authentication in a synthetic monitor?

Synthetic monitoring supports form-based authentication as part of the monitored flow — the script navigates to the login page, fills in the credentials, submits the form, and then continues to the authenticated area it needs to verify. Credentials used for monitoring should be dedicated test accounts with limited permissions, rather than real user accounts, to isolate monitoring activity from production user data.

What is the difference between synthetic monitoring and Real User Monitoring (RUM)?

Real User Monitoring (RUM) collects performance and error data from actual user sessions via browser instrumentation. It reflects what real users actually experience, but it depends on having users — if traffic is low or a flow is rarely exercised, RUM provides little data. Synthetic monitoring provides consistent, scheduled coverage regardless of traffic volume. The two approaches are complementary: synthetic for consistent baselines and proactive detection, RUM for understanding real user experience at scale.

Move beyond "is it up?" to "is it working?"

NetTests executes your critical user flows on a schedule, detects failures at the step level, and alerts your team immediately — so application failures are caught before they reach your users.

Start monitoring free →
No credit card required  ·  Free plan available