Which open-source alternative to Postman Mock Servers fits your team
Postman mock servers usually come under review at a renewal, after Postman's March 2026 plan change, or when a data residency rule means mock responses and the collections behind them must sit in your own infrastructure. WireMock, Microcks and Mockoon can each host mocks on infrastructure you control, so the question is less whether to self-host and more which tool fits your mock source and where the mocks need to run. Start by listing where your API definitions come from today: hand-written request and response pairs, an OpenAPI or AsyncAPI contract, or an existing Postman collection.
WireMock suits teams that stub HTTP APIs in code or in integration tests. It is Apache-2.0 licensed and runs as an embedded Java library, a standalone process or a container, so the mock lives next to the service test that uses it. Microcks fits teams whose contracts already exist as OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections or SoapUI projects and who want mocks and contract tests generated from them. It is an Apache-2.0 Cloud Native Computing Foundation incubating project, and its current stable line is 1.15.0. Mockoon fits developers who want a desktop mock and a headless @mockoon/cli run in CI, under the MIT license. Confirm with each project's documentation which deployment target and authentication options your platform team requires before you choose.
Whichever tool you pick, check three things before you commit: whether the mock definitions can live in Git next to the service code, whether the runtime can be placed inside the network zone that the tests need to reach, and whether the vendor's paid tier, such as WireMock Cloud or Mockoon Pro, is needed for any feature you depend on. Mockoon Pro and WireMock Cloud are commercial offerings from the same projects, so keep the open-source runtime as your baseline and price any paid add-on separately. Your cost will come mainly from the engineering time to migrate existing Postman mocks and to run the hosting, not from licenses, so ask any implementation partner for a written scope that covers the mock sources you have.
Mapping Postman mock capabilities to open-source options
This table maps the mock features teams usually rely on in Postman to WireMock, Microcks and Mockoon, and marks where each tool runs or where Postman's cloud sharing has no direct equivalent. Read each row against your own mock inventory, and confirm exact feature support in each project's documentation before you commit to a design.
| Capability | WireMock | Microcks | Mockoon |
|---|---|---|---|
| Hosted mock URL for teammates | Runs as a standalone process or container that you host on your own network | Runs as a self-hosted server that exposes mock endpoints you deploy | Desktop app or CLI on a developer machine; sharing the mock means sharing the file or hosting the CLI |
| Mocks from OpenAPI specs | Stubs are usually written by hand or recorded from traffic; confirm any spec import in the docs | Generates mocks from OpenAPI and AsyncAPI definitions | Mock routes are built in the app; confirm any OpenAPI import option in the current release |
| Mocks from Postman collections | Not a native input; collections need manual translation to stub mappings | Accepts Postman collections as a mock source | Confirm current import support for Postman collections in the release you use |
| Stateful request matching | Supports request matching on headers, bodies and URLs with scenario state; confirm the exact options | Matches on request parameters from the specification; confirm stateful behavior for your case | Matches on route, parameters and body rules; confirm conditional responses and state support |
| Response examples | Response bodies defined in JSON mappings or files kept in source control | Examples taken from the specification or collection | Response bodies and templates defined in the app or config file |
| CI execution | Runs in pipelines as a container or library inside tests | Runs as a service that pipelines can start and call | Headless @mockoon/cli and the mockoon/cli Docker image for CI |
| Contract testing | Not a contract test engine on its own; pair with your own test suite | Runs contract tests against the service under test | Not a contract test tool; pair with a separate test runner |
| Cloud sharing with Postman | Does not replace Postman cloud; WireMock Cloud is a separate commercial service | Does not replace Postman cloud sharing | Mockoon Pro is a paid self-hosted platform with sync and SSO; confirm its fit and cost |
When WireMock, Microcks or Mockoon fits best
Each of the three options hosts mocks on infrastructure you control, but they start from different inputs and run in different places. The right choice usually depends on whether your team is stubbing calls inside Java tests, generating mocks from a contract, or running a small mock beside a desktop client or CI job.
WireMock for stubbed HTTP in tests
WireMock is licensed under Apache-2.0 and runs as an embedded Java library, a standalone process or a container. It suits teams that want precise request matching and scripted responses inside JVM test suites or a shared mock service in their own cluster. Check whether your team needs the features of the commercial WireMock Cloud, since the project's README points to it as the company's hosted offering, and confirm which WireMock features you depend on are in the open-source edition before you rely on them.
Microcks for contract-driven mocks
Microcks is an Apache-2.0 project in the Cloud Native Computing Foundation incubating program. It turns OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections and SoapUI projects into mocks and contract tests, which helps when your API contract is the source of truth. Its current stable line is 1.15.0. Plan for a Kubernetes or container deployment and confirm that the protocols you need, including asynchronous ones, are covered by your chosen release.
Mockoon for desktop and CI
Mockoon is MIT licensed and ships as a desktop app, the @mockoon/cli npm package and the mockoon/cli Docker image. It fits developers who want to design a mock visually on a laptop and then run the same environment headless in a pipeline. Mockoon Pro is a paid, private, self-hosted platform that adds data synchronization and SSO. Ask whether your team needs those paid capabilities or can keep environment files in Git.
Matching the mock to your runtime
Choose by where the mock must execute: inside a unit test process, as a shared service in a cluster, or as a short-lived container in CI. Mismatched runtime is the most common reason a mock layer is abandoned. Document which host runs each mock, who owns its definitions and how the definitions are versioned alongside the consuming service.
Licensing and paid add-ons
All three core projects are permissively licensed, so self-hosting carries no license fee for the open-source editions. The recurring costs come from the people who maintain the mocks, the hosting for any shared service and the paid tiers you choose to adopt. Ask vendors and integrators to separate those components in a written scope before comparing totals with a hosted mock service.
Where each mock server runs: desktop, CI or shared service
A developer usually needs a mock while building a client against a service that is not finished, or against a partner API that is slow or unavailable during development. Mockoon fits this case because its desktop app lets you define endpoints, responses and rules in a graphical editor and run them on the machine that runs the code under test.
- Mockoon desktop app: Build routes and responses locally, then start the mock while you work on the client.
- Definitions in the repository: Keep the mock environment with the code it supports, and confirm the export and import steps in Mockoon's documentation before relying on them.
- Workstation-only data: Sample responses stay on the developer's device unless someone shares the file, which suits test data that should not leave a laptop.
- Separate paid option: Mockoon Pro is a private, self-hosted platform that adds data synchronization and SSO. The desktop app itself is the open-source path.
Before rollout, check whether your endpoint security policy allows local servers on developer machines and whether the mock ports clash with other local tools.
In a pipeline, a mock must start without a person clicking anything, stay available for the test stage and stop when the job ends. Mockoon's command-line tool, published as @mockoon/cli on npm and as the mockoon/cli Docker image, is built for this headless use. WireMock can also run as a standalone process or container inside the same job.
- Mockoon CLI: Install @mockoon/cli from npm in the job and point it at an environment file kept in Git.
- Docker image as a service: Run the mockoon/cli image alongside the test container so the mock is created fresh for each run.
- Standalone WireMock: Start the WireMock process or container with mapping files stored in the repository, then stop it at the end of the stage.
- Versioned responses: Store mock responses with the tests, so a failed run can be reproduced from the same commit.
- Pinned images: Pin the image tags you use and confirm whether your runners can pull them from an internal registry.
Before you standardize on this model, check that your CI platform allows service containers and that the test job can reach the mock port.
For JVM services, WireMock is the option teams most often place inside the test code. It is licensed under Apache-2.0 and runs as an embedded Java library, so a test starts the stub server in the same process and stops it afterward. Teams testing in other languages can run WireMock as a standalone process or container instead.
- Embedded library: Add WireMock as a test dependency and define stubs in code, so each test class controls its own responses.
- Standalone process: Run the same stub definitions outside the test JVM when several services or languages share one stub server.
- Container deployment: Run WireMock as a container in CI or in a cluster, without installing a Java runtime on the host.
- Request matching: Use WireMock's matching and verification features to assert which calls the service made. Confirm the matcher options in the documentation for the version you deploy.
- Commercial companion: WireMock's README states that the project is backed by WireMock Cloud, a commercial hosted service, so confirm which capabilities you need from the open-source project.
Before you choose this model, check your language stack and whether stubs need to be shared across services or kept inside one test suite.
When many teams need the same mocks, a shared service keeps the definitions in one place for everyone. Microcks is built for this model. It is an Apache-2.0 project in the Cloud Native Computing Foundation incubating stage that turns OpenAPI, AsyncAPI, gRPC, GraphQL schemas, Postman collections and SoapUI projects into mocks and contract tests. Its current stable line is 1.15.0.
- Specification-driven mocks: Load OpenAPI or AsyncAPI definitions so the mock follows the contract the team publishes.
- Postman collection input: Microcks accepts Postman collections, which helps teams that move off Postman's cloud mocks keep their existing examples.
- Contract tests: Use the same artifacts to check that a provider implementation matches its specification.
- Operating effort: The main recurring cost is staff time for upgrades, storage, access control and availability. Confirm the supported deployment options in Microcks' documentation.
- Managed alternatives: WireMock Cloud is the hosted commercial service, and Mockoon Pro is a self-hosted paid platform. Compare them with Microcks on hosting effort and total cost.
Before choosing this model, ask who will own upgrades and access grants, and whether the platform team can run a stateful service.
Keeping Bruno, Hoppscotch and the mock servers working together
Once mocks run on your own hosts, the client collections that call them need the right base URLs and a single source of truth. The cards below cover how Bruno and Hoppscotch point at mocks, how imported Postman collections fit into one workflow, and how to keep mock definitions beside the API specifications in Git.
Pointing collections at mock base URLs
Bruno and Hoppscotch both let you define environments with a base URL variable, so the same requests can target a Microcks, WireMock or Mockoon endpoint in one environment and the real service in another. Keep the mock host in a non-production environment file and confirm that no production credentials are copied into it. Check that each request resolves the variable before you run the collection in CI.
Bruno files stored in Git
Bruno keeps collections as files in a local folder, so the request files can sit in the same repository as the OpenAPI or AsyncAPI specification they describe. Commit the environment files with secret values removed and reference secrets through your secret manager. Review changes to request files in pull requests the same way you review code.
Hoppscotch workspaces on PostgreSQL
Hoppscotch Community Edition stores team workspaces in the PostgreSQL database set through DATABASE_URL, so collections and environments are not files in Git by default. Decide whether the database or an exported collection file is the record that reviewers trust. Back up the database on the same schedule as the mock definitions it references, and document how an exported collection is restored.
Importing Postman collections into one workflow
Postman collections can enter the workflow through Microcks, which generates mocks and contract tests from them, or through the Bruno and Hoppscotch importers, which create client collections. Choose one import path as the owner and regenerate the other from it, so a single Postman export does not become three diverging copies. Check the script translation notes after import, because Bruno flags Postman-specific packages as unsupported.
Avoiding two sources of mock truth
The main risk is keeping mock responses in the mock server and expected responses in the client collection, which then drift apart and make tests pass against stale data. Pick the OpenAPI, AsyncAPI or contract file as the single definition, generate mocks from it, and have client tests assert against the same schema. Schedule a periodic check that the mock and the specification still agree.
Storing mock definitions beside specifications
Keep Microcks artifacts, WireMock mapping files and Mockoon environment files in the same repository as the API specifications and client collections, in folders with stable names. Version them together so a specification change and its matching mock change land in one commit. Confirm with your Git hosting and CI setup which folder layout your pipeline reads, and document it in the repository README.
Moving Postman mocks into self-hosted servers
This sequence moves mock endpoints out of Postman's cloud and into servers you run, so that client and CI traffic goes to base URLs you control. The result is a tested set of mocks with a documented source, a known base URL for each consumer, and a retired cloud dependency.
Inventory existing Postman mock servers
Ask the API owner or the person who created each mock to list every Postman mock server, its collection, the example responses it returns, and which teams, scripts or CI jobs call its URL. Record the mock URL, the request paths and methods, and any response delays or headers that tests depend on. The inventory is complete when every mock URL that appears in a collection, environment or pipeline has a named owner and a known consumer.
Export collections as Collection v2 or v2.1 JSON
Export each collection that contains the mock requests, plus its environments, as Collection v2 or v2.1 JSON from Postman. Store the files in a restricted repository, because collections and environments can contain embedded credentials. Check each file opens and lists the expected requests. Bruno and Hoppscotch both import these formats, so the exported files are the input for the later import step.
Choose the mock source for each API
For each API, decide whether the mock will come from a specification or from recorded stubs. Microcks can generate mocks from OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections and SoapUI projects. WireMock stubs are written as mapping files or through its API, and Mockoon uses its own environment files. Confirm with the API owner which source is the authoritative contract, because a mock built from a stale example will keep returning stale data. The output is a written decision per API.
Confirm what the importers do not carry over
Bruno and Hoppscotch importers handle collections and environments, not the configuration of a Postman mock server. Confirm with a test import whether the example responses, mock server settings, delays, and any mock-specific headers reach the target tool, and list the items that do not. Also confirm which Postman script packages Bruno flags as unsupported. The output is a gap list that someone must rebuild by hand before cutover.
Load mocks into the chosen self-hosted server
Deploy the chosen server in your own infrastructure: WireMock as a container, standalone process or embedded library, Microcks as a self-hosted instance, or Mockoon through its CLI image or desktop app. Load the stubs or specification into it, then send a request to each mock path and compare the status code and body with the Postman mock's recorded examples. The step is done when every path in the inventory returns the expected response from the new host.
Point clients and CI jobs at the new base URLs
Update the base URL variable in each environment and each CI job that called a Postman mock, so consumers call the self-hosted endpoint. Keep the URL in an environment variable rather than hard-coding it in requests, so one change covers every collection. Run the affected test collections once from the command line, such as the Bruno CLI or the Hoppscotch CLI, and confirm that the JUnit or other report shows the same pass results as before.
Retire the cloud mocks after a parallel run
Run the old and new mocks side by side for a period agreed with the owners of the affected teams, comparing responses for the full set of paths. Once no consumer calls the Postman mock URLs, disable each Postman mock server and record the change, the date and the owner in the migration log. Keep the exported collections in version control as the archive. The step closes when the inventory shows zero active callers of the cloud mocks.
What the mock server move costs in people, hosting and upkeep
The licenses for WireMock, Microcks and Mockoon cost nothing to acquire, so the budget goes to the work around them. Hosting is the first recurring line. WireMock and Mockoon can run as an embedded library, a standalone process or a container, and the Mockoon CLI can run headless in a pipeline, so their hosting needs are usually small. Microcks is heavier: it is a multi-component platform that is normally deployed as containers or on a Kubernetes cluster, and that cluster carries its own compute, storage and monitoring costs. Ask your platform team to price Microcks as a service they will operate, not as a tool a developer runs on a laptop.
Engineering time is the largest one-time cost. Someone must turn the stubs your team used in Postman mock servers into WireMock mappings, Mockoon environments or Microcks artifacts, and every stub that used Postman-specific scripting needs rewriting. Plan the authoring work as a project with an owner and a list of endpoints, and confirm the scope before you start. Pipeline changes are also one-time: test jobs must point at the new mock URLs, and the CI runner must start the mock before tests run. Recurring costs follow from these choices. Mock definitions drift when the upstream API changes, so someone must keep OpenAPI, AsyncAPI or collection sources current. Each upgrade of the mock runtime needs regression testing, and security patches to the container images or base operating system fall to your team unless you contract support.
Several factors move these costs up or down. An API with few endpoints and stable contracts keeps authoring and upkeep low, while frequent schema changes raise them. Generating mocks from specifications rather than hand-writing stubs reduces the authoring effort but adds a dependency on spec quality. Running mocks in a shared cluster may spread the Microcks overhead across teams, while a single team may be better served by a container next to its tests. Before you commit, ask an implementation partner or your own staff to write a written scope covering endpoints, hosting model, CI changes, upgrade cadence and who answers for security patches. Confirm current resource requirements with each project's documentation, since they change between releases.
Questions teams ask before replacing Postman mock servers
Can a team replace Postman mock servers on its own?
Yes, a team with an engineer who knows its HTTP stack can run WireMock, Microcks or Mockoon without outside help, because all three are open-source and run on infrastructure you control. The harder part is usually not installing the tool but deciding which services need mocks, who owns each stub or mock definition, and how those definitions get reviewed when the real API changes. Teams with several services, shared contracts and a CI pipeline that depends on mocks tend to need more time for that governance work than for the setup itself. Ask whether your engineers have time to maintain mocks alongside their product work, since that time is the main recurring effort.
What drives the cost of replacing Postman mocks?
The cost has three parts: the software, which is free under the Apache-2.0 and MIT licenses of WireMock, Microcks and Mockoon, the hosting, and the people time. Hosting covers a container host or CI runners for the mock services, and the size of that host grows with the number of mocked APIs and the traffic your tests send. People time is the largest item and recurs, covering mock definition upkeep, CI wiring and support for developers. Mock tooling costs also drop when specifications already exist in OpenAPI or AsyncAPI, because the tool can generate mocks from them. Ask any implementation partner for a quote that lists these components separately, with one-time setup and recurring upkeep shown apart.
How long does it take to move mocks off Postman?
The duration depends mostly on how many APIs need mocks, how many already have a usable OpenAPI, AsyncAPI or Postman collection file, and how much CI integration you want. Teams with clean specifications can often move a small set of mocks quickly, while teams with undocumented services need time to write or recover definitions first. Each mocked API adds review and testing work, and mocks that feed contract tests take longer to validate than simple stubs. No duration is set by any supplied fact, so ask the team for a plan that breaks the work into the APIs, the hosting and the CI changes, and ask for a written timeline based on that scope.
What does the team need before starting a self-hosted mock setup?
The team needs three things: a Git repository for mock definitions, a host that can run containers or Java and Node.js processes, and the API specifications or example responses that the mocks will serve. Keeping definitions in Git lets reviewers see changes the same way they see code changes, and it gives CI a single source to load from. The container host can be a server, a Kubernetes cluster or CI runners, depending on where your tests run. Specifications are the most often missing item, because many teams only have live APIs or Postman collections. Mockoon also works from a desktop app, which is useful for local development without a shared host.
Can Microcks fully replace Postman mock servers?
Microcks covers many Postman mock use cases, since it generates mocks from OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections and SoapUI projects, and it can run contract tests against those mocks. It does not cover every Postman feature, so confirm the specific mock behavior your team relies on, such as particular response scripting or dynamic logic, before you decide. Microcks is a Cloud Native Computing Foundation incubating project under Apache-2.0, and its current stable line is 1.15.0, so check that version against your deployment plan. Teams that need simple, scripted stubs inside tests often pair Microcks with WireMock or Mockoon rather than expecting one tool to do everything.
When should a team bring in outside help for mock migration?
Bring in outside help when the migration spans many services, when mocks must run inside a regulated or air-gapped network, or when the team lacks people to maintain the new setup. DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside a client's own infrastructure, and most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ongoing support and upgrades are available as retainers. Ask for a written scope that names the APIs, the hosting target, the CI integration and the handover, and compare it with what your own team can staff.
Does Mockoon work for CI pipelines and not only desktop use?
Yes, Mockoon ships as a desktop app, as the @mockoon/cli npm package for headless and CI use, and as the mockoon/cli Docker image. That makes it useful for local development and for pipeline runs that need a predictable stub on a runner. The desktop app is MIT licensed, and the paid Mockoon Pro adds a private, self-hosted platform with data synchronization and SSO, which you only need if teams must share mock environments across machines. Confirm how your pipeline will load mock definitions and where those files are stored, because keeping them in Git is the usual way to review changes.
How DeployOpen scopes a mock server replacement
DeployOpen plans and implements self-hosted mocking inside your own infrastructure, whether that is your cloud accounts, data centers or an air-gapped network. Work usually runs under a fixed scope that is agreed in writing before anything is built, and a quote follows from that written scope. The scope is the document that decides which mock tools are needed, where they run and who signs off each piece, so it is worth settling before any vendor conversation about cost.
The first decisions are inventory and placement. List every Postman mock server in use, the collections or OpenAPI, AsyncAPI or GraphQL sources behind each one, and the consumers that call them, including CI jobs. Then decide per workload whether WireMock (for hand-written stubs and embedded Java tests), Microcks (for mocks and contract tests generated from specifications and collections) or Mockoon (for desktop use and headless runs through @mockoon/cli) fits. The scope should also name where each runs: a shared internal host, a Kubernetes cluster, a CI runner or a developer machine. Confirm each tool's license and the current release line directly with its project before the scope is final.
The scope should also state what is out of it. Ask for a written list covering who maintains the mock definitions after handover, how mocks are versioned in Git, how access to internal mock endpoints is restricted, and what is retained in logs. Confirm with your own security and procurement teams which data the mocks may contain, since recorded requests can carry credentials. Acceptance criteria, support after handover and any retainer for upgrades are separate line items, so ask for them to be listed explicitly. Expect the quote to change if the inventory grows during discovery, which is why the written scope needs a defined change process.
How DeployOpen delivers API mock replacement
DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source mock services inside your own cloud accounts, data centers or air-gapped networks. For Postman mock servers, that means moving stubs out of Postman's cloud and into WireMock, Microcks or Mockoon running where your test environments already live.
How we scope
- List every Postman mock your teams depend on, including its routes, responses and the consumers that call it.
- Decide per mock whether WireMock, Microcks or Mockoon fits, based on the source specification and where tests run.
- Agree the scope, deliverables and timelines in writing before any work starts, since engagements are fixed-scope.
- Confirm which environments need the mocks, such as developer laptops, shared test clusters or CI runners.
How we build
- Deploy the chosen mock service in your infrastructure, with its container or binary packaged for your registry.
- Convert exported Postman collections or OpenAPI and AsyncAPI definitions into mock definitions and check each response.
- Wire mocks into CI pipelines so tests call the same stub endpoints every run, using the mock's own test reporting.
- Keep mock definitions, responses and any credentials out of source control, using your approved secrets store.
How we hand over
- Document each mock's location, owner, definition files, update procedure and the consumers that depend on it.
- Provide runbooks for adding, versioning and retiring mock definitions, so teams can change stubs without the Postman account.
- Record what Postman features were not replaced, such as cloud-hosted mock URLs, so consumers can plan changes.
- Walk your engineering and platform teams through the deployed setup and the handover documentation.
How we support
- Offer ongoing support, upgrades and continuous testing of the mock services as a retainer if you want them.
- Track upgrades to WireMock, Microcks and Mockoon releases and plan them against your test schedules.
- Ask us to confirm current licensing terms and any paid editions before you rely on them in production.
- Provide the support scope, response expectations and fees in the written quote, not in general terms.

