You can use ReadyAPI to create and manage virtual services. This topic provides an overview of the process.
ReadyAPI has the functionality that allows creating, running, and managing virtual services. These virtual services work similarly to the real API you are creating. You may know virtual services as virtual APIs, virtualized environments, virts or mock services.
Service virtualization helps you quickly create working mocks of a web service and streamline client code development and test creation:
You can start working on client code and tests before developers finish implementing the API operations and before they deploy the API to a server.
Developers and QA engineers can work in parallel.
You can create client code and tests even if some operation (resource) of your API is not available yet.
See Why Creating Virtual Services? to learn more about advantages and disadvantages of service virtualization.
Virtual services imitate real APIs: they define operations that clients of a real API will call, receive client requests and simulate responses.
With ReadyAPI, you can create virtual services emulating behavior of REST, SOAP, JMS, and TCP APIs as well as JDBC databases. You can see virtual services existing in your project in the Navigator panel under the APIs (Virtual) node:
In the editor on the right, you can see the properties of the virtual service:
REST, SOAP, JMS, TCP, and JDBC services have different properties for customization.
A virtual service emulates a real web service: it runs on some server, receives requests and sends responses to clients. To implement this functionality, you add virtual operations (or actions) to your virtual service. They specify the requests this service will receive. For each request, you can define one or more possible responses. The virtual service will return this or that response depending on test conditions. To determine which response to return, it uses dispatch settings:
You can add operations manually. If your virtual service is based on an OpenAPI, Swagger, WADL, or WSDL specification, ReadyAPI can load the operation list from this specification. One more way to create operations is to record your interaction with some existing API and to extract requests from the recorded traffic.
You can also configure your virtual service to route incoming requests: the service will forward them to some existing web service, receive responses from this API and transfer these responses to the client. This approach is helpful when you need to create a new API based on some existing real API, when you need to create virtual operations from operations of a real web service and in some other cases. For complete information on routing, see Request Routing and Recording.
For complete information on configuring service properties and behavior, see Configuring Virtual Services.
You can run virtual services on the computer, where you have ReadyAPI installed, or on some remote machine.
To run the virtual service on a remote machine, you need to install VirtServer there. This is an application for running ReadyAPI virtual services on computers, where ReadyAPI is not installed. You can deploy a virtual service to the VirtServer and run it there from ReadyAPI (see Running Virtual Services on Remote Computers):
See also Running Virtual Services.
Basic virtualization functionality is available for users that have any ReadyAPI license (ReadyAPI Test or ReadyAPI Performance). You are able to create, edit and run virtual services of various supported types.
ReadyAPI Virtualization licenses enable enhanced features that make your work easier and more effective: support for data sources, discovering APIs, routing requests, and some others. For complete information on differences, see ReadyAPI Virtualization Licenses.
We recommend that you start with the Your First Virtual Service tutorial.
One more tutorial – Data-Driven Virtual Service – describes how to include Excel sheet data into responses.
For information on JDBC database virtual services, see the JDBC Virtual Services tutorial.
You can also check our sample projects.