Test Data, Mocking & Service Virtualisation
Realistic data and stand-in services so tests stop depending on other people's uptime.
What this category is really about
Most test flakiness is a data problem wearing a runner's costume. Tests that share a database, depend on a third-party sandbox, or assume yesterday's fixture still exists will fail unpredictably no matter which framework you picked.
Two families of solution. Mocking and service virtualisation replace an external dependency with a controllable stand-in, which makes tests fast and deterministic. Data generation and anonymisation produce realistic, privacy-safe datasets so your staging environment behaves like production without copying customer records into it.
What to evaluate
Fidelity vs. maintenance
A recorded mock drifts from the real service. Check for contract verification or automatic re-recording.
Referential integrity
Generated data must respect foreign keys and business rules, or your app rejects it before the test starts.
Privacy guarantees
For production-derived data, the question is whether re-identification is genuinely prevented, not merely made awkward.
Ephemeral environments
Per-branch database seeding is what actually removes shared-state flake.
Common mistakes
- Mocking so aggressively the test can pass while the integration is completely broken.
- Copying production data into staging. This is the most common serious GDPR failure in engineering organisations.
- One giant shared seed file that every test mutates.
13 tools built for this
Sorted by how widely adopted they are, not by preference. Tick the compare boxes to put two or more side by side.
Faker
Generate realistic names, addresses, dates and text for fixtures, in any language.
LocalStack
A local AWS cloud emulator so you can test infrastructure without an AWS bill.
Mock Service Worker
Intercept requests at the network layer so your app code never knows it is mocked.
Testcontainers
Real databases and services in throwaway Docker containers, per test run.
WireMock
The standard HTTP mock server for JVM and beyond: record, replay, stub, simulate faults.
Mockoon
Spin up a realistic mock API from a desktop app in under a minute.
Mockaroo
Design a realistic dataset in the browser and export it as CSV, JSON or SQL.
Prism
Turn an OpenAPI document into a mock server that validates as well as responds.
Tonic.ai
De-identify production data into safe, realistic, referentially intact test databases.
Gretel.ai
Generative synthetic data with differential-privacy guarantees.
Hoverfly
Lightweight service virtualisation: capture real traffic, then simulate it.
Neosync
Open-source data anonymisation and synthetic-data generation you can self-host.
Snaplet Seed
Generate a coherent, schema-aware seed database for local development and tests.
Tools that also cover this
These are built primarily for something else but handle this category as part of a broader platform — often a way to consolidate two subscriptions into one.
Postman
API Testing
The API platform most developers already have open: requests, collections, tests, mocks.
BlazeMeter
Load & Performance
Managed cloud execution for JMeter, Gatling, k6 and Selenium scripts.
Karate
API Testing
API testing, mocks, performance and UI automation in one Gherkin-based DSL.
SoapUI / ReadyAPI
API Testing
The long-standing tool for SOAP, JMS and enterprise protocol testing.
Tricentis Tosca
E2E & UI Testing
Model-based enterprise test automation for SAP, mainframe and packaged applications.
Apidog
API Testing
Design, mock, test and document APIs in one integrated workspace.
Specmatic
API Testing
Turn OpenAPI and AsyncAPI specs into executable contracts and smart mocks.