Figure 1 – Managing test environments in Parasoft Virtualize
Service virtualisation allows you to simulate services that are out of your control (APIs, systems owned by other teams, systems that are under development, and so on), which must be available for testing. Using Parasoft Virtualize you create virtual assets by creating proxies. These proxies are listeners that stand between your application and whatever backend resources they leverage. They monitor communication between the application and its dependencies, and analyse that traffic to understand patterns, link requests to responses, interpret schemas, abstract data, and so forth. There is support for expression-based request matching, which allows you to continue testing even if you don’t have exact data; and data reuse heuristics, that allow you to update and expand data as services change. The product also features data desensitisation during recording, message validation (to detect faulty or out of order requests), automated test case generation from recorded traffic, and automatic updating of virtual services based on changes in their real counterparts. It has extensive integration capabilities, with support for HTTP, JDBC, various messaging systems (including MQ, AMQP, RabbitMQ, and Kafka), JMS, TCP/IP and more. There is support for SOAP, WSDL, JSON, Swagger files and RAML as well as EDI and SWIFT environments. Extensions are available to support Java, JavaScript, Jython and Groovy. For Internet of Things (IoT) environments Parasoft can simulate messages over IoT specific protocols such as MQTT, XMPP and web sockets, and for devices using older technologies such as SOAP, REST, and even TCP (for industrial IoT) the company supports client emulation over these protocols as well as server (message behavior) simulation. Irrespective of the origin of these virtual services, once created you can deploy them to a virtual server and consume them just like you would regular services. Performance modelling is also included in all editions, though only basic performance modelling is provided within the Community and cloud-based editions.
Regardless of the environment, many applications require not just one virtual service, but many. For testing purposes, you need to coordinate the configuration of these virtual services, which is done through the Parasoft Continuous Testing Platform, where you can configure multiple virtual services into an environment bundle, along with test cases and test data. This platform also offers the ability to model data relationships and mask, subset or generate test data, as well as providing a shared workspace for collaboration and the management and reuse of test environments. The latter capability is shown in Figure 1.