In SOA-world, we have services which are tied up with the frontend. The front end is tied up with the service, which takes care of the business process and orchestration. So in order to validate the end to end flow from UI to service and then to the legacy systems or backend, we will need to test the integration between all the layers and check the connectivity from technical and functional perspectives across applications.
In this chapter we look at the following things:
Also when we go ahead testing an end to end flow in an enterprise application we often see that some of the third-party or legacy services are not exposed to us because of security concerns and we have to invoke it through the UI in order to complete the end to end flow.
Let's see an example of business flow - a sample orchestration flow:
So as we can see in the preceding example we have four calls that are to be invoked using service and two calls which are invoked using the UI.
So in order to test this flow manually we would need to run services and the UI and check the validation points.
Now how do we automate it? We know that SoapUI isn't capable of UI test automation and other tools, like Selenium or QTP, could invoke a service directly.
The preceding question makes it clear to us that we need a single tool with the capability of the UI as well as service automation.
We know that SoapUI is the most used tool for Web services so let's test automation and let's have a look at UI test automation tools.
Let's have a look at some of the famous test automation tools:
In all the preceding tools, Selenium and Ranorex are open source. Whereas the rest are paid and commercial tools.
The only one of the preceding tool above which partially supports both UI and Service automation is VSTS but it is too costly and doesn't have a variety of functionality supported when it comes to automation of web services.
So to enable SoapUI and Selenium to work under a single umbrella, we need to integrate them together to achieve Multilayer test automation.
Let's have a look at how to do this in the following section.