Open-source alternative to ReadyAPI Virtualization

Teams replacing ReadyAPI's virtualization module can self-host Microcks or WireMock, keep their SoapUI projects and API definitions, and run virtual services in CI. This page maps capabilities, gaps, costs and migration steps.

On this page

Open-source alternative to ReadyAPI Virtualization: the short answer

If your ReadyAPI renewal or scope review puts only the virtualization module in question, the main self-hosted replacements are Microcks and WireMock. Microcks is the better fit for contract-driven mocks, since it turns OpenAPI, AsyncAPI, gRPC (protobuf) and SoapUI project definitions into mocks and contract tests. WireMock covers HTTP stubbing, where you define request matching and responses yourself, either as an embedded Java library, a standalone process or a container. Neither is a one-to-one clone of the ReadyAPI virtualization module, so expect to rebuild some virtual services rather than import them unchanged.

The rest of the suite does not have to move with it. Functional testing, data-driven tests and performance runs can stay in ReadyAPI while the mocks are replaced, which keeps the change small and lets you test the new mocks against the same test cases. Microcks can read existing SoapUI projects, so SOAP virtual services are a natural first candidate. Before you commit, confirm with your team which protocols, mock behaviors (such as stateful responses, dynamic templates or fault injection) and environments the current virtual services use, and check each one against the open-source option's documentation.

Plan for two costs that differ from a license renewal. The first is one-time: exporting virtual services, rebuilding those that do not map cleanly, and wiring mocks into CI. The second recurs: hosting the Microcks or WireMock instances, upgrading them and maintaining the definitions as APIs change. Ask any implementation partner for a written scope listing the services to migrate, the environments to cover and the handover of documentation, so you can compare that work against the module's annual cost. Your own engineers should confirm the current Microcks release line and WireMock licensing terms before the scope is signed.

Which virtualization capabilities map to Microcks and WireMock

This table maps the main ReadyAPI virtualization capabilities to Microcks and WireMock and flags where the supplied facts stop short of a clear answer. Use the check and cross marks as a starting point, then confirm each unclear row against the current project documentation before you commit to a design.

CapabilityMicrocksWireMock
Virtual services from API specificationsGenerates mocks from OpenAPI, AsyncAPI, gRPC (protobuf), GraphQL schemas, Postman collections and SoapUI projectsStubs are defined by hand or through its APIs, not generated from specification files in the facts; confirm any import tooling in the docs
SOAP and REST mocksImports SoapUI projects, so existing SOAP test assets can seed virtual services; REST covered through OpenAPIHTTP stubbing suits REST and SOAP over HTTP when requests are matched by method, URL and body; confirm SOAP-specific helpers
Recorded traffic and captureConfirm whether recording live traffic into mocks is supported in the current release (1.15.0 line)Confirm whether its record and playback mode fits your traffic and redaction rules before relying on it
Response simulation and matchingReturns examples from specifications and supports contract tests; confirm delay and fault injection optionsRich request matching and response templating; confirm fault and delay features for your version
Stateful or sequenced behaviorConfirm support for scenarios that change responses across callsScenarios support state transitions between stubs; verify the exact syntax in the documentation
Deployment modelSelf-hosted service that runs in containers under the Apache-2.0 license (CNCF incubating project)Embedded Java library, standalone process or container under Apache-2.0; its README notes the commercial WireMock Cloud backs the project
Shared test environmentsHosted mocks can serve several teams from one instance; confirm multi-user access controlsRuns as a shared standalone service; access control and multi-team setup are your responsibility to design
CI pipeline integrationRun mocks and contract tests in pipelines alongside the service under test; confirm the CI commands for your runnerStarts in a test run or a container, so it fits pipeline steps well; confirm the configuration approach for your framework
Gaps to confirm before migrationCompare every ReadyAPI virtualization feature in use against the Microcks docs and a proof of conceptCompare every ReadyAPI virtualization feature in use against the WireMock docs and a proof of concept

Microcks or WireMock: which self-hosted mock fits which team

Microcks is an Apache-2.0 project in the Cloud Native Computing Foundation incubation stage, and its current stable line is 1.15.0. It turns OpenAPI, AsyncAPI, gRPC (protobuf), GraphQL schemas, Postman collections and SoapUI projects into mocks and contract tests, so it fits teams whose starting point is a specification rather than a line of test code. Platform and architecture teams that publish APIs to other departments often use it as a shared mock service that consumers can call before the real backend exists.

  • Multi-protocol coverage: One deployment can serve REST, event-driven and gRPC definitions, which matters if your ReadyAPI virtual services cover SOAP and messaging alongside HTTP.
  • Specification-first workflow: Mocks follow the contract files in your repository, so a changed schema changes the mock behavior.
  • SoapUI project import: Existing SoapUI projects can seed mocks, which eases the first migration step for SOAP-heavy suites.
  • Operational footprint: Microcks runs as a service you host, so ask your vendor or implementation partner which deployment model, database and upgrade path your team must maintain.
  • Governance: Confirm the project's current governance, release cadence and contributor base directly on its GitHub repository before committing to it.

Before choosing Microcks, check that every service you need to mock is covered by an import format it supports and that your operations team can run it inside your network.

Running Microcks or WireMock alongside the rest of ReadyAPI

Most teams do not switch every ReadyAPI module at once. The decisions below cover which functional tests keep calling virtual endpoints, which SOAP suites point at Microcks, and where data-driven runs move to CI. Each one determines how much of the existing suite survives the move.

Keep functional tests calling virtual endpoints

Existing ReadyAPI functional tests can keep running while their downstream dependencies move to self-hosted mocks. The mock must answer the same paths, methods and status codes the tests assert on, so the change happens at the endpoint address rather than in the test logic. Check that every assertion depends only on the stubbed responses, and confirm which ReadyAPI features your tests use before assuming a straight swap.

Point SoapUI suites at Microcks mocks

Microcks can import SoapUI projects, so SOAP-heavy teams can reuse existing definitions to generate mocks instead of rebuilding them by hand. Confirm that the imported project covers the operations your tests call, and verify the generated responses against the WSDL and sample messages your consuming services expect. SOAP fidelity is the most common gap to test first.

Move data-driven runs into CI

Data-driven test runs that depend on ReadyAPI's own execution engine need a different home. Bruno's bru run and the Hoppscotch CLI's hopp test can execute request collections in pipelines and produce reports, but the data sources, loops and assertions must be rebuilt and checked against the original results. Plan this migration per suite, not as a single cutover.

Decide where SoapUI Open Source fits

SoapUI Open Source, the EUPL-licensed sibling of ReadyAPI, can keep basic functional and performance checks for SOAP services. Use it for suites that need no data-driven testing, coverage or virtualization, and confirm with your own test inventory which tests fall into that group. Treat it as a bridge for SOAP work rather than a complete replacement for the paid suite.

Assign REST collections to Bruno

REST collections that only exercise services can move to Bruno, which stores them as files in Git and supports OpenAPI and Postman import. This keeps request definitions reviewable alongside code while mocks handle the dependencies. Confirm that your team accepts file-based collections and that the CLI run covers the assertions you rely on.

Keep mock ownership and versions in sync

Once mocks run beside ReadyAPI, each virtual service needs an owner, a source definition and a version that matches the service it imitates. Without this, stubs drift from production contracts and tests pass against outdated behavior. Ask who updates Microcks or WireMock definitions when an API changes and how that update is reviewed.

How to migrate virtual services without breaking test suites

This sequence moves each ReadyAPI virtual service to a self-hosted mock only after its replacement answers the same way the original did, so test suites keep passing and rollback stays possible at every stage.

  1. Inventory every virtual service and its source

    List each ReadyAPI virtual service, the SoapUI project or WSDL it was built from, any OpenAPI definitions behind it, and the test suites that call it. Record the owning team, the environments that depend on it and whether it is used in CI. Confirm this list with the teams that run the suites, because mocks often serve tests nobody remembers writing. The step is done when every service has one row with its source file, its consumers and its environments.

  2. Choose Microcks or WireMock for each service

    Decide per service. Microcks suits teams that already hold OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections or SoapUI projects and want contract tests alongside mocks. WireMock suits HTTP stubbing driven by code or configuration files, especially inside Java test suites. Some services may need both, for example a mock for a unit test and a contract check in a shared environment. Record the choice and the reason in the inventory. Confirm that each candidate supports the protocol the service actually uses, since SOAP and message-based interfaces may need different handling.

  3. Import definitions into the chosen mock tool

    Load the SoapUI project, WSDL, OpenAPI or other definition into Microcks, or create WireMock mappings from the same contract. Start from the source your team already maintains, not from a copy of the ReadyAPI mock. Check that every operation and resource in the inventory appears in the new tool. The output is a mock that exposes the same endpoints, and a short list of anything the import did not carry over, such as scripted logic or custom response rules that need manual rebuilding.

  4. Reproduce success, error and edge responses

    Compare the ReadyAPI virtual service with its replacement for each operation. Capture the status codes, headers, response bodies and timing that consumers depend on, including faults, timeouts, empty results and validation errors. Rebuild each case in the new tool and record a pass or fail for each one. Ask a consumer team to review any response they parse field by field. The step is done when the replacement matches the original for every case in the list.

  5. Run both mocks in parallel and compare test results

    Point a copy of the test suite at the new mock while the ReadyAPI virtual service keeps serving the original runs. Compare pass and fail results, logs and any assertion that depends on response detail, and investigate every difference before accepting it. Keep the ReadyAPI service available for this whole period. The check is complete when results match across the agreed runs and no difference is left unexplained. The length of this period is a decision for your team, not a fixed figure.

  6. Wire mocks into CI and shared test environments

    Start the replacement mocks from your CI pipeline, either as containers or as processes, and point test jobs at them through configuration rather than hard-coded addresses. Store mock definitions in version control so changes go through review. For shared environments, decide who owns each mock and how updates are rolled out. The output is a pipeline run that starts the mocks, executes the suites and reports results without any ReadyAPI component. Confirm that the pipeline can run without network access to a commercial licence server if that matters to your environment.

  7. Retire ReadyAPI virtual services with a rollback path

    Once the parallel results match and CI runs are stable, switch each consumer to the new mock and keep the ReadyAPI definition archived, not deleted, for a period your change process sets. Define a rollback step for each service that repoints the suite to the ReadyAPI virtual service, and test that step once before retiring anything. Remove the service only after the owner signs off that no consumer still depends on it. The sequence is complete when every inventoried service has a named replacement, a tested rollback and a documented owner.

What running self-hosted mocks on Kubernetes requires

Microcks is commonly deployed on Kubernetes, and that choice makes your team the owner of a cluster, not just a mock server. Before you commit, decide who runs upgrades. Kubernetes releases come roughly three times a year on a cycle of about 14 weeks, and the project maintains only the three most recent minor releases. As of September 2026 those were 1.37 (end of life October 28, 2027), 1.36 (June 28, 2027) and 1.35 (February 28, 2027). Confirm that your platform team can follow that cadence. The version skew policy requires kube-apiserver to be upgraded one minor version at a time, ahead of the controller manager, scheduler and kubelets, which is a sequence you must schedule and test.

Control plane availability is the next decision. The kubeadm high availability guide describes a stacked topology, with etcd on the control plane nodes, and an external etcd topology. Either way, plan for at least three control plane nodes behind a TCP load balancer in front of kube-apiserver on port 6443. Etcd needs an odd number of members, and Kubernetes recommends five in production. Write down who restores etcd if a node fails. Backups use etcdctl snapshot save, and restores use etcdutl. Rehearse a restore into a separate cluster before you rely on the backup, since a snapshot you have never restored is not yet a tested control.

Access and secrets need the same attention. Kubernetes does not create user objects, so you must choose certificates, OpenID Connect tokens or another supported authentication method and map identities to RBAC roles. Confirm with your identity team how mock maintainers authenticate. Also confirm that encryption at rest is configured for etcd. Secrets are stored unencrypted in etcd by default, and Microcks configuration may contain credentials for downstream services. Restrict list and watch permissions on Secrets, and review the Kubernetes Secrets good practices guidance with your security team before the mocks reach shared environments.

Questions teams ask before replacing ReadyAPI Virtualization

Do Microcks or WireMock cover every ReadyAPI virtual service?

Not necessarily, and the answer depends on which virtual services you run today. Microcks turns OpenAPI, AsyncAPI, gRPC (protobuf), GraphQL schemas, Postman collections and SoapUI projects into mocks and contract tests, so it fits teams whose services are described by specifications. WireMock is a strong choice for HTTP stubbing with request matching and response templating, and it runs as an embedded library, a standalone process or a container. Inventory each virtual service, including SOAP behavior, stateful flows, custom scripts and protocols, then test those cases against both tools before you commit. Confirm the exact feature set against the current release notes.

What does a ReadyAPI virtualization replacement cost in effort?

The software itself is open source, so the cost sits in people and infrastructure. Expect one-time costs for inventory, converting virtual services, writing tests and integrating with CI. Recurring costs include hosting the mock servers, applying upgrades, maintaining mock definitions as APIs change, and support time for your own engineers or an outside partner. Cost rises with the number of virtual services, the amount of custom scripting and the number of environments. Ask any provider for a fixed-scope written quote that lists deliverables, environments, handover and what is excluded, and compare it with the ReadyAPI license terms your SmartBear agreement sets out.

How long does a migration from ReadyAPI Virtualization take?

Duration depends on the number of virtual services, how much of their behavior is defined in specifications versus custom scripts, and how many environments must be rebuilt. Teams with well-maintained OpenAPI or SoapUI projects usually convert faster than teams with hand-built, script-heavy virtual services. Plan a parallel run in which the old and new mocks serve the same test suites until results match. A realistic schedule is best set only after the inventory is complete, so ask any provider to base the timeline on a written scope rather than a generic estimate.

What must our team provide before a migration starts?

Gather four inputs early. First, current API specifications in OpenAPI, AsyncAPI, protobuf or WSDL form. Second, the SoapUI projects and virtual service definitions exported from ReadyAPI. Third, CI access, including the pipeline system, runner capacity and secrets handling, so mocks can run in automated test stages. Fourth, a named cluster owner who can approve Kubernetes changes, storage, network rules and access control. Also list the test suites that depend on each virtual service, since they define acceptance criteria.

Can our engineers do the migration without outside help?

Yes, if your team already runs containers, maintains API specifications and understands the mocked services well enough to reproduce their behavior. Self-delivery shifts cost from a fixed external fee to internal time, and that time is often the largest hidden cost. Outside help is most useful when the inventory is large, when mock behavior is stateful or script-heavy, or when the mocks must run on a cluster your team has not operated before. Whichever route you pick, decide who owns the mocks after go-live and how upgrades will be tested.

What recurring work comes after Microcks or WireMock is in place?

Recurring work includes hosting and upgrading the mock runtime, keeping specifications current as services change, reviewing mock responses against production contracts, and supporting the test pipelines that call them. If Microcks runs on Kubernetes, the platform itself needs upgrades on a schedule. The Kubernetes project maintains only the three most recent minor releases, and kubelets may be up to three minor versions older than kube-apiserver, so plan a regular upgrade rhythm. Ask any provider which of these tasks it covers under a retainer and which stay with your team.

Where should Microcks or WireMock run, and what must we secure?

Run them inside your own network, either on a Kubernetes cluster you control or on hosts that meet your standards. Mock services often contain sample credentials, tokens and personal data, so treat their definitions as sensitive. Kubernetes stores Secrets unencrypted in etcd by default, so configure encryption at rest, restrict list and watch access with least-privilege RBAC, and consider an external secret store. Confirm how each tool handles authentication for its management interface before exposing it to shared test environments.

Where the open-source mock approach falls short

Expect some ReadyAPI virtualization behavior to need custom code or a different tool. Virtual services in ReadyAPI are configured in a graphical environment, and teams that rely on scripted responses, stateful sequences or dispatch rules built in that interface will need to rebuild them. Microcks covers OpenAPI, AsyncAPI, gRPC, GraphQL, Postman collections and SoapUI projects, but the mapping of each ReadyAPI construct to a Microcks or WireMock equivalent is not one-to-one. WireMock expresses behavior through stub mappings and extensions, so some logic may move into Java or a small custom extension. Before committing, list every virtual service in use, classify each behavior, and confirm in the current Microcks and WireMock documentation whether the behavior exists natively or needs code you will maintain.

Plan for community governance instead of a single vendor. Microcks is an Apache-2.0 project incubating at the Cloud Native Computing Foundation, and WireMock is Apache-2.0 with its README noting that the project is backed by the commercial WireMock Cloud. Neither is governed like a single commercial product with a contractual support queue. Release cadence, roadmap priorities, and the depth of security fixes depend on the maintainer community and on the vendors that fund it. Ask who will own upgrades and patch decisions inside your organization, check the release history and issue activity of each project, and decide in advance whether you will buy support from a third party or accept best-effort response from the community.

Test SOAP-heavy services against real traffic before retiring anything. A mock that matches a WSDL or SoapUI project can still differ from the live service in fault messages, WS-Security headers, MTOM attachments, timing and namespace edge cases. Those differences tend to surface only in integration runs against the real back end. Keep a recorded set of production-like requests and responses, replay them against each virtual service, and run a contract check in your pipeline before the mock is trusted as a stand-in. Treat this as a gap to verify with your own traffic, not a guarantee the mock is equivalent.

Decision steps before you cancel the virtualization module

This sequence turns a renewal question into evidence: which virtual services your teams depend on, whether each one can be rebuilt from a specification or SoapUI source, and whether one of them runs in your CI pipeline before you decide. The output is a renewal decision based on tested services, not on assumptions about the module.

  1. Inventory every active virtual service

    Ask the test owners and the team that administers ReadyAPI to list each virtual service the module hosts, the consumers that call it, the environments it runs in, and who relies on it for regression or integration tests. Include services that run only on a scheduled job or on a shared test server, since they are easy to miss. The step is done when the list has one owner and one consumer group per service, and the team agrees the list is complete.

  2. Confirm each service has a usable source

    For every service on the inventory, check whether a maintained OpenAPI, AsyncAPI or gRPC (protobuf) definition exists, or whether the behavior is captured in a SoapUI project or a Postman collection that Microcks can import. Mark services that exist only as hand-built virtual responses inside ReadyAPI, since those need to be rebuilt as stubs. The step is done when each service is labeled with its source type and the services without a source are listed as a separate rebuild task.

  3. Choose one representative service for the proof of concept

    Select a service that is used often, has a clear specification, and has a stable set of consumer tests, so that a pass or fail tells you something about the migration. Avoid services with complex stateful logic as the first candidate. Record the request and response examples that the consumers expect, because they become the acceptance criteria. The step is done when the team has one service, its specification and a written list of expected responses.

  4. Load the service into Microcks or WireMock

    Import the specification into Microcks, which accepts OpenAPI, AsyncAPI, gRPC, GraphQL schemas, Postman collections and SoapUI projects, or define the same behavior as WireMock stubs if the team prefers code-based HTTP stubbing. Run it in a test environment you control and check every expected response from the previous step against the mock. The step is done when the mock returns the expected responses and any gap is logged with its cause.

  5. Run the consumer tests against the mock in CI

    Point the existing consumer tests at the self-hosted mock and run them from your continuous integration pipeline, not from a developer workstation, so the result is repeatable and visible to the pipeline owners. Keep the same test assertions as before, and record how long setup takes and which files or secrets the job needs. The step is done when the pipeline shows the same pass and fail results as the ReadyAPI run for that service, with any differences explained.

  6. Document the gaps and the rebuild effort

    Write down which ReadyAPI virtualization features the proof of concept did not need or could not reproduce, such as custom scripting, stateful sequences or data-driven responses, and estimate the rebuild work for the remaining services from the inventory. Include who maintains the mock definitions after handover and where they are stored. The step is done when the team has a short gap register and a rebuild list it can review with the budget holder.

  7. Set the renewal decision with the evidence

    Bring the inventory, the source review, the proof of concept results and the gap register to the renewal discussion. Ask SmartBear for a quote that lists the virtualization module separately from the functional and performance modules, so you can see what you would stop paying for. Decide whether to cancel, reduce scope or renew for a defined period. The step is done when the decision is recorded with the evidence attached and the migration owner is named.

How DeployOpen plans and delivers a virtualization replacement

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For a ReadyAPI virtualization replacement, that means turning your existing virtual services into mocks that run in your CI pipeline and shared test environments, under a written scope agreed before work starts.

How we scope

  • We inventory the virtual services, SoapUI projects and stubbed endpoints your teams use in ReadyAPI today.
  • We record which definitions come from OpenAPI, AsyncAPI, gRPC or SOAP sources and which need manual stubs.
  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before any work begins.

How we build

  • We deploy Microcks or WireMock in your own cloud account, data center or air-gapped network, as your policies require.
  • We import service definitions and recreate stateful behaviors and error cases that your contract tests depend on.
  • We wire mock runs into your CI pipeline and confirm results with the test reports your team actually reads.

How we hand over

  • You receive configuration, deployment steps, runbooks and a catalog of which virtual services were migrated and which were not.
  • We document how to add, version and retire mock definitions so test teams can maintain them without us.
  • We walk your engineers through the setup and record open gaps, such as unsupported ReadyAPI features, for your decision.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • Retainers can cover upgrades to new Microcks or WireMock releases, with changes tested before rollout in your environment.
  • Ask any provider to confirm which mock platform versions and security patches their support covers in writing.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.