A couple of years ago, I took my first steps in the world of service virtualization when I took on a project where I developed stubs (virtual assets) to speed up the testing efforts and to enable automated testing for a telecommunications service provider. I started looking for the tools available in the industry. I found few Service Virtualization solutions from few leading companies like CA, HP, IBM. Here is the list of few leading Service Virtualization tools.
CA Service Virtualization, formerly known as LISA
CA Service Virtualization lets you virtualize software service behavior and model a virtual service to stand in for the actual service during development and testing.
CA Service Virtualization, formerly known as LISA, captures and simulates the behavior, data and performance characteristics of complete composite application environments, making them available for development and test teams throughout the software lifecycle, for faster time-to-market with quality software functionality at lower infrastructure cost.
CA Service Virtualization has two product configurations:
- CA Service Virtualization
CA Service Virtualization is intended for use cases in development, integration, testing, and user acceptance. Instances of these products service up to ten parallel transactions simultaneously, or approximately ten transactions a second.
- CA Service Virtualization for Performance
CA Service Virtualization for Performance is specifically for performance testing applications, and is more scalable, limited only by the underlying hardware and network.
HPE Service Virtualization
LISA Virtual Service Environment (VSE) represents a sea change in services-based design, testing and development, enabling distributed teams to deliver complex, interdependent enteprise applications in an agile, test-driven way. LISA’s VSE delivers significant cost and agility benefits, by virtualizing test beds for developers, regression and functional testers, allowing testing and development scenarios to be conducted in parallel, for maximum productivity throughout the software lifecycle.
HPE Service Virtualization provides a framework for creating virtual services for use in testing your applications under development, allowing developers and testers access to limited or unavailable services in a simulated environment.
Service Virtualization places a virtual service between the client application (application under test) and the real service to which you require access. Once you create virtual services to simulate the real services that you require, you reconfigure your client applications to use the virtual services, instead of the real services.
Service Virtualization Components
Service Virtualization consists of the following applications:
Designer A client application enabling you to create virtual services, and run simulations of real service behavior. The Service Virtualization Designer is used for design and validation of virtual services within the same desktop environment, and includes an embedded server for hosting virtual services.
A standalone server application which hosts the running of virtual services. The Service Virtualization Server is optimized for performance, can contain many more services than the Designer, and can be accessed by multiple Designers.
Management Interface (Optional)
A web application enabling you to view and manage all services from Service Virtualization configured servers, without opening the Designer or individual projects. The Service Virtualization Management is installed by default when you install the Service Virtualization Server.
Find more about HPE Service Virtualization at: Service Virtualization Help Center
IBM Service Virtualization
What is IBM Service Virtualization?
IBM service virtualization is a set of products that fits into the interfaces between components of IT systems, for example between an application server and a database, or an application server and an external system. The product can reproduce the network traffic between components and simulate an absent component. The product can simulate traffic in a wide range of network protocols including HTTP, middleware protocols such as TIBCO and database protocols such as JDBC. During setup it can record network traffic and can be programmed to respond to particular input in particular ways. IBM service virtualization comprises two primary products:
- IBM Rational Integration Tester (IBM Green Hat)– a tool for setting up interfaces and configuring their behaviour; and
- IBM Rational Test Virtualization Server– a component which allows defined interfaces to run at high volumes and extended periods.
IBM Service Virtualization was originally developed by Green Hat a software company bought by IBM in 2012. Green Hat is sometimes used as a convenient label for this suite of products.
Why is it useful?
Corporate IT systems typically consist of collections of distributed components communicating with each other by interfaces. If the interface(s) to a component (e.g. a database, or external system) can be simulated, the system can run without that component. This is useful in several ways.
- It is possible to build more and cheaper test environments. Only the components which must be tested need be included. The other components can be simulated by service virtualization. This raises quality and reduces costs.
- The use of certain external interfaces (e.g. Bloomberg price feeds) costs money. Service virtualization can simulate them for test purposes, which avoids expenditure during testing or training.
- During development, service virtualization can simulate the presence of components which have not yet been developed. This allows development and unit testing of components independently of each other, resulting in faster development.
- In training, service virtualization can be used to simulate certain scenarios like declined or accepted credit card authorizations.
Web services: IBM service virtualization can record web services traffic and replay any traffic previously recorded. It can also load a WSDL file and respond in the correct format to any request.
Middleware: IBM service virtualization can simulate a wide range of middleware protocols including TIBCO, WebMethods, Websphere and JMS.
Databases: Database protocols can be simulated, and by recording database traffic, the tool can build up a picture of the data and structure contained inside a database. Once the database is removed, it can intelligently simulate it. The tool can connect to any database compatible with JDBC, which includes Oracle and SQL Server databases.
SAP: IBM service virtualization supports the communication between different SAP components. ECC and PI components are supported across ABAP (the SAP programming language) and Java.
Use as a Client or a Server: IBM service virtualization can act either as a client or as a server. When used as a client, it sends a sequence of traffic to another component and the responses of the component can be tested. When used as a server it waits for incoming traffic and responds to the traffic as programmed.
Use at Volume: IBM service virtualization can run tests at high volume, allowing it to simulate live systems and to be used in performance tests. This functionality is implemented by IBM Rational Test Virtualization Server, which is licensed by volume capability.
SOAPUI (SmartBear) ServiceV Pro
Service Virtualization does not need to be complex, with ServiceV Pro you can create and use virtual APIs and databases right on your desktop. ServiceV Pro helps you:
- Speed release cycles by developing and testing in parallel
- Overcome 3rd party downtime, rate limits, overage fees
- Perform integration and isolated testing safely
- Minimize impact of developers on your production APIs
- Reduce dependencies on relational databases through JDBC virtualization
Virtualization in ServiceV Pro helps you deliver great applications on time and under budget, and does so for a fraction of the cost typically associated with traditional enterprise service virtualization suites.
ServiceV Pro supports many popular services and protocols including HTTP, REST, SOAP, JMS and JDBC.
Today’s applications depend heavily on services like APIs and databases, which means testing those applications also depends heavily on those services. With ServiceV Pro, you can keep your project moving on time and on budget by using virtual services as stand-ins for those services when they are unavailable.
- Add throttling and server settings to test the application’s response to an overwhelmed APIs.
- Set error conditions to validate your application’s ability to handle unavailable APIs and databases.
- Provide virtual services for your partners and external developers to build and test against
Virtual APIs are a great tool to reduce dependencies and delays during a delivery cycle, but is a fantastic companion to functional, load, and security testing for your SOAP and REST APIs as well.
ServiceV Pro compliments:
- Creating test suites before a version of the actual API is implemented.
- Overcoming downtime in other services while developing or testing.
- Isolating third parties that are poor targets for load testing.
- Building more robust tests to handle positive and negative conditions.
- Simulating conditions that depend on dynamic data.
Underlying ServiceV Pro is a common core based on a decade of open-source testing experience, including SoapUI Pro, LoadUI Pro, Secure Pro, and ServiceV Pro. The ReadyAPI framework is the most complete SOAP and REST API testing tool, ensuring quality from functional to performance and security testing to service virtualization.
Parasoft Virtualize is a service virtualization product that can create, deploy, and manage simulated test environments for software development and software testing purposes. These environments simulate the behavior of dependent resources that are unavailable, difficult to access, or difficult to configure for development or testing. It simulates the behavior of dependent resources such as mainframes, ERP systems, databases, web services, third-party information systems, or other systems that are out of direct developer/tester control. The product is used in conjunction with hardware/OS virtualization to provide developers and testers with the resources they need to execute their development and testing tasks earlier, faster, or more completely. Its technologies for automating continuous testing are used as part of continuous delivery, continuous integration, and continuous release.
Parasoft Service Virtualization allows you to capture and virtualize transaction behavior and the data transmitted between all these systems. This records live transactions in the client environment by analyzing transaction logs or by modeling behavior from a simple interface. In other words, instead of having to virtualize applications and settings, Parasoft Service Virtualization allows you to capture and virtualize data and the data between all these systems.
Let us say you are testing a web application, you can easily perform load testing using actual data recorded from the client site. And I know what you are going to ask next…. all the data can be obfuscated. So none of the recorded data can be compromised. This is probably the biggest single most important feature of the product. Imagine the possibilities.
Another fantastic feature is that you can modify recorded data. Let us assume for example that a 3rd party application is used by your client ERP. This 3rd party application generates an average of 50 Sales Orders per day. Each Sales Order is a single line order with a quantity of 1 for a specific stock code. The 3rd party generated Sales Orders are posted to the client ERP. Your application needs to check stock levels and if there is no stock, place the Sales Order on back order.
You can then easily test this by changing the recorded data to make each Sales Order contain line quantities of 1000 instead of 1. This will allow the system to reach the minimum stock level earlier and forcing your application into placing the order on back order. Imagine being able to test your application with large volumes of high quantity Sales Orders. Will it stand up to the onslaught of several sales orders per second? With Parasoft Service Virtualization, you don’t need to wonder any more. You control the data, so you can modify it to suit your test requirement.
Recently Parasoft launched the community edition. Here are a couple of the most important features that Virtualize CE offers:
- Support for HTTP and HTTPS
- Support for literal, XML and JSON requests and responses and SOAP-based and RESTful API simulation
- Ability to create data driven responders (more on that later)
- Recording traffic by acting as a proxy and replaying the recorded traffic for quick and easy virtual asset creation
Of course, there are also limitations when compared to the paid version of Virtualize, some of which are:
- Traffic is limited to 11.000 hits per day
- No support for protocols such as JMS and MQ, nor for other traffic types such as SQL queries or EDI messages
- No ability to run Virtualize through the command line interface or configure virtual asset behavior through the Virtualize API
- Support is limited to the online resources
In upcoming lessons I’ll be covering the Prasoft Virtualize.