SoapUI is a great tool for functional testing, web services testing, security testing and load testing. In this tutorial, we are going to discuss the important features of SoapUI and SoapUI Pro.
This is the 2nd tutorial in our SoapUI web service testing tutorial series.
For more advanced and enterprise users SmartBear also released the latest SoapUI NG Pro version which includes all the features of SoapUI and SoapUI Pro along with some really cool new features. SoapUI NG pro is embedded in SmartBear “Ready! API Platform”.
For all our tutorials the focus will be on core features of the original SoapUI and Pro version.
#1. User-Friendly GUI
Even without prior familiarity, SoapUI is very comfortable for new users to work with. For example, if we wish to create a SoapUI project, just click on the File menu and then click New SOAP Project option and then provide valid WSDL file path. That’s it. Similarly, if you take any assignment in SoapUI tool, we can do it as easily as Microsoft suites.
#2. Easy for Functional Testing
SoapUI provides drag and drops options for creating test suites, test steps and test requests to build complex test scenarios without writing any background scripts. Once a project is created, then we can add test suites under it. Test suite includes test steps and test requests based on the services.
A project can be used several times for smoke testing and functional testing. If we need any test suites for other projects, SoapUI offers the feature called cloning which enables us to duplicate existing test suites and put them into other projects.
SoapUI also provides options for test debugging that lets us watch the test execution step by step. With the help of SoapUI, we can also perform data driven testing within a short period of time. All of these are going to be addressed in greater detail later.
#3. Vulnerability Testing
SoapUI and SoapUI Pro tools provide options to protect the websites from hackers and viral software applications. Vulnerability testing is a type of testing that helps us to identify the weak areas of web applications.
With the SoapUI family tools, we can protect applications by executing Test Generator, SQL Injection and XML Bomb methods. Test Generator is a SoapUI Pro feature. It helps to create complete vulnerability test suites.
Similarly, SQL Injection feature allows us to provide some standard SQL queries and methods to identify the weak areas of the application and database side.
For example, see the below SQL query:
Select *from Customers where CustomerId = “C2014” or 1=1
The above query will return all the customers since the 1=1 condition is always true. This way hacker can get all the username and passwords easily with this sample query. SoapUI tool can simulate these queries so we can understand the hack-proof-ness of the site.
XML bomb is in SoapUI that allows us to test services by passing huge XML data and examines the overflow of the application.
In addition to these, SoapUI tool has many more features like cross-site scripting, passing random string data to identify the string vulnerabilities, boundary level testing, etc.
#4. Load Testing using LoadUI
SoapUI can also estimate a web application’s load balancing capacity. To do so, SoapUI includes an option called LoadUI that is available on the toolbar. After creating a project with proper test suites we can move to load testing by just clicking on the LoadUI option. SoapUI then navigates to the LoadUI tool (it should have pre-installed on your computer for this to work) and then to the tests can be configured based on the need.
After executing the load test, LoadUI will generate a report that helps determine whether the application can run with a heavy load or not.
#5. Automation with Groovy
As discussed before, we can use SOAP and REST based services to validate in SOAPUI. SoapUI user interface is designed as a simple and comfortable interface for all the users.
To write automation scripts in SoapUI, we need to add Groovy Test step under the test suite. The groovy script has built-in libraries and allows us to integrate java based libraries too. So, it will be very helpful if you are familiar with Core Java. We can write complex scenarios using Groovy script and java.
For example, consider a situation where you need a response from one test request and then pass it as an input to another request. To accomplish this, we could store the response data in global properties and then reuse them through the scripts.
See the sample screenshot which shows Groovy script test step and a sample script:
(Click on image for enlarged view)
#6. Data Driven Testing
SoapUI Pro supports data driven testing. It lets us perform bulk insert, delete and update related testing. We could upload Excel/CSV format test data to perform bulk testing.
In order to perform data driven testing in SoapUI, we will have to add DataSource and DataSourceLoop test steps under the test suite. DataSource test step deals with the external data source configuration and DataSourceLoop fetches the data row by row from the external data source. More information on this is coming up in the future articles.
Assertions are another key feature in SoapUI. It basically validates the response message while executing the test steps by comparing it to any part of the response message or entire message.
For example, if we have an authentication web service which should authenticate the login credentials given by the user. Let’s assume the web service response is in JSON format. So if the authentication is done successfully means, service will return successful message to the user.
Here’s a sample response:
“Message”: “Successfully Authenticated”,
“Message”: “Authenticate Failed”,
In the above responses, we have “Message” and “Status” elements. So, it is easy to validate these responses using either “Message” or “Status” value. For that, we need to configure in the respective assertions appropriately as XPath Match assertion, XQuery, Contains and Not Contains etc.
SoapUI recently released the latest version of SoapUI Pro. It is basically developed on core SoapUI so you can continue using SoapUI existing projects with this version as well.
You can compare features of SoapUI and SoapUI NG Pro on this page: Feature comparison of SoapUI and SoapUI NG Pro.
SoapUI NG Pro Important Features:
1. SoapUI NG Pro gives the complete functional testing capability for SOAP API, REST and other protocols
2. SoapUI NG Pro is introduced in “Ready! API platform” which determines the actual functionality of the API service and its expected behaviour.
3. Ready! API platform provides the skeleton that determines our service inputs to generate the test coverage report which evaluates the functionality coverage implicitly.
4. It allows ad-hoc testing or command line interface to test our APIs effectively.
5. All the REST, SOAP API and other service components can be used by simply drag and drop method
6. In SoapUI NG Pro, a data driven feature is little enhanced in retrieving information from external data sources, for example, Excel, XML, JDBC data sources and file/directories etc. Then these retrieved data will be converted into SoapUI NG Properties test step.
7. We can transfer the property test step values to XPath-queries, scripts and so forth.
8. SoapUI NG Pro offers the feature called point-and-click to generate test scenarios quickly
9. SoapUI NG Pro allows the end user to customize their services easily even they are new to SoapUI Pro or development experience.
10. Few more important features available in SoapUI NG Pro:
SoapUI and SoapUI Pro features are helpful to build and deliver web services with fewer defects. SoapUI and SoapUI Pro also support other features like service mock testing, multiple environments, generating quick reports, SQL builder/editor and so on.
Next Tutorial: So far in this tutorial, we discussed the major features of SoapUI, SoapUI Pro (and SoapUI NG Pro) tools. In next tutorial, we will learn installation of SoapUI and SoapUI Pro. Also, we will see the major differences between SoapUI, SoapUI Pro and their plugins.
Keep reading and don’t forget to post your queries in comments below.