Introduction to SOAPUI

What is SOAP UI?

  • SOAP-UI is the leading open source cross-platform API Testing tool
  • SOAP-UI allows testers to execute automated functional, regression, compliance, and load tests on different Web API.
  • SOAP-UI supports all the standard protocols and technologies to test all kinds of API's.
  • SOAP UI interface is simple that enables both technical and non-technical users to use seamlessly.

Introduction to SOAPUI  

Why use SOAPUI?

SOAP-UI is not just a functional API testing tool but also lets us perform non-functional testing such as performance and security test.

Let us discuss the 5 important features of SOAP-UI 1) Functional Testing

  • A powerful tool allows testers to write Functional API Tests in SoapUI
  • Supports Drag-Drop feature which accelerates the script development
  • Supports debugging of tests and allows testers to develop data driven tests.
  • Supports Multiple Environments - Easy to switch between QA, Dev and Prod Environments
  • Allows advanced scripting (tester can develop their custom code depending on the Scenario)
 2) Security Testing
  • Has the capability to perform a complete set of vulnerability scan.
  • Prevents SQL Injection to secure the databases
  • Scans for Stack overflows that are caused by documents huge in size
  • Scans for Cross Site Scripting, which usually occurs when service parameters are exposed in messages.
  • Performs Fuzzing scan and Boundary scan to avoid erratic behavior of the services.
 3) Load Testing
  • Distribute the Load Tests across any number of loadUI Agents.
  • Simulate high volume and real-world load testing with ease.
  • Allows Advanced custom reporting to capture performance parameters.
  • Allows End-to-End System Performance Monitoring
     
4) Supported Protocols/Technologies:

SoapUI has the most comprehensive Protocol Support

Introduction to SOAPUI 5) SOAP-INTEGRATION with Other Automation Tools:

SoapUI integrated very well with popular tools

  • Maven

    Introduction to SOAPUI

    Apache Maven is a software project management tool that can manage a project's build, reporting and documentation from a central repository. Maven can also execute SOAP-UI tests within Maven Build using simple commands.

  • HUDSON

    Introduction to SOAPUI

    HUDSON, a JAVA based Continous integration tool and integrates with tools such as CVS, Subversion, Git, Perforce, Clearcase, and RTC. SOAPUI also integrates with HUDSON, which helps us to spot bugs quickly for each and every commit by the developers.

  • JUnit

    Introduction to SOAPUI

    JUnit is a unit testing framework built in Java, which can control the flow of tests from SOAP-UI as well.

  • Apache - Ant
    Introduction to SOAPUI

    Apache Ant, a Java library which is a command-line tool that helps in building software. Using SOAP-UI's Command line, we can execute tests within an ANT Automated Build.

SOAP UI Vs Selenium:

Let's compare SoapUI with Selenium

SOAP UI

Selenium

SOAP UI is NOT used for User Interface Testing. It is only used for WebAPI or WebService TestingSelenium is used for User Interface Testing.
Capability to test the data sent and received between the web browser and a web server. Can test the protocols/technologies such as REST, SOAP.Selenium cannot test protocols, but they can test the UI behavior.
Able to perform functional, load and security testing of the above-mentioned technologies.Selenium can perform only functional testing. Performance testing to some extent because we can track execution time with regards to the performance but cannot test multi user and multi tenancy. Selenium certainly cannot be used for security testing.
It is PROTOCOL Dependent and NOT browser dependent.Selenium depends on the browser capabilities.
 

SOAP UI Vs SOAP UI PRO

 

We know that there are two flavors of SOAP UI, One being SOAP UI (Open source version) while the other one is SOAP UI PRO. Let us understand the difference between these two flavors and we will also discuss when to go for use what.  

FeaturesSOAP UI (Open Source Version)SOAP UI PRO
Supported Technologies
SOAP/WSDLIntroduction to SOAPUIIntroduction to SOAPUI
RESTIntroduction to SOAPUIIntroduction to SOAPUI
JMSIntroduction to SOAPUIIntroduction to SOAPUI
AMFIntroduction to SOAPUIIntroduction to SOAPUI
JDBCIntroduction to SOAPUIIntroduction to SOAPUI
HTTPIntroduction to SOAPUIIntroduction to SOAPUI
 
Automation
Functional TestsIntroduction to SOAPUIIntroduction to SOAPUI
Load Tests    Introduction to SOAPUIIntroduction to SOAPUI
Mock ServicesIntroduction to SOAPUIIntroduction to SOAPUI
Code GenerationIntroduction to SOAPUIIntroduction to SOAPUI
Command LineIntroduction to SOAPUIIntroduction to SOAPUI
MavenIntroduction to SOAPUIIntroduction to SOAPUI
CI and Build IntegrationIntroduction to SOAPUIIntroduction to SOAPUI
General Features
Standalone ApplicationIntroduction to SOAPUIIntroduction to SOAPUI
Groovy Code TemplatesIntroduction to SOAPUIIntroduction to SOAPUI
Multi Environment SupportIntroduction to SOAPUIIntroduction to SOAPUI
Floating LicensesIntroduction to SOAPUIIntroduction to SOAPUI
 
Functional Testing features
WSDL CoverageIntroduction to SOAPUIIntroduction to SOAPUI
Request/Response CoverageIntroduction to SOAPUIIntroduction to SOAPUI
Message AssertionIntroduction to SOAPUIIntroduction to SOAPUI
Test RefactoringIntroduction to SOAPUIIntroduction to SOAPUI
Running of Multiple TestsIntroduction to SOAPUIIntroduction to SOAPUI
Data Source Driven TestsIntroduction to SOAPUIIntroduction to SOAPUI
Scripting LibrariesIntroduction to SOAPUIIntroduction to SOAPUI
Unit ReportingIntroduction to SOAPUIIntroduction to SOAPUI
Manual Test StepIntroduction to SOAPUIIntroduction to SOAPUI
Security Testing features
Boundary ScanIntroduction to SOAPUIIntroduction to SOAPUI
Invalid TypeIntroduction to SOAPUIIntroduction to SOAPUI
SQL InjectionIntroduction to SOAPUIIntroduction to SOAPUI
XPath InjectionIntroduction to SOAPUIIntroduction to SOAPUI
XML BombIntroduction to SOAPUIIntroduction to SOAPUI
Fuzzing ScanIntroduction to SOAPUIIntroduction to SOAPUI
Cross Site ScriptingIntroduction to SOAPUIIntroduction to SOAPUI
Configurable ScansIntroduction to SOAPUIIntroduction to SOAPUI
ReportingIntroduction to SOAPUIIntroduction to SOAPUI
Load Testing Features
Rapid Load Tests from Functional TestsIntroduction to SOAPUIIntroduction to SOAPUI
Configurable Load StrategiesIntroduction to SOAPUIIntroduction to SOAPUI
Load Test AssertionsIntroduction to SOAPUIIntroduction to SOAPUI
Real-Time StatisticsIntroduction to SOAPUIIntroduction to SOAPUI
Performance MonitoringIntroduction to SOAPUIIntroduction to SOAPUI
Statistics ExportingIntroduction to SOAPUIIntroduction to SOAPUI
Setup/TearDown using Groovy ScriptingIntroduction to SOAPUIIntroduction to SOAPUI
loadUI IntegrationIntroduction to SOAPUIIntroduction to SOAPUI
ReportingIntroduction to SOAPUIIntroduction to SOAPUI
Reports
JUnit ReportsIntroduction to SOAPUIIntroduction to SOAPUI
Report Data ExportIntroduction to SOAPUIIntroduction to SOAPUI
WSDL HTML ReportIntroduction to SOAPUIIntroduction to SOAPUI
WSDL CoverageIntroduction to SOAPUIIntroduction to SOAPUI
TestSuite CoverageIntroduction to SOAPUIIntroduction to SOAPUI
TestCase CoverageIntroduction to SOAPUIIntroduction to SOAPUI
Assertion CoverageIntroduction to SOAPUIIntroduction to SOAPUI
Message Recording CoverageIntroduction to SOAPUIIntroduction to SOAPUI

 

When use SoapUI PRO Version?

  • Data Driven: PRO Version, helps us to work with an external data source such as text files, XML, Groovy, Excel, file, and Databases. This helps us to scale our tests with a range of inputs driven through the above-said sources.
     
  • Test Coverage: PRO Version allows testers to get a statistic report which shows the functionalities that are well tested and also the areas that are NOT thoroughly tested as well. The drill down reports even pinpoints exactly what has NOT been tested and what has NOT been asserted.
     
  • Test Debugging: You can then run the test to that breakpoint and view the current value of the SoapUI properties. The Test Debugging Interface simplifies following Test Flow, Variables, Properties, Requests, Context, and much more, making test creation and improvement more streamlined.
     
  • Multi-Environment Support: Working with multiple environments such as DEV, QA, Pre-PROD environment can be a daunting task with the open source version as testers need to change the end points to execute in different environments. PRO version helps us to switch between environments seamlessly.
     
  • Reporting: PRO version is loaded with many options to customize reports that generate detailed reports at Project, TestSuite, TestCase or LoadTest level. It also produces reports in various formats such as PDF, HTML, Word or Excel.
     
  • Security Testing: Both SOAP UI versions has capabilities to test for security vulnerabilities such as XML bombs, SQL injections, fuzzing, cross-site scripting. However, only SOAP UI PRO can perform vulnerability scans using Security Test Generator using a mouse click.
     
  • SQL Builder: For Non-Technical testers writing complex SQL Query can be cumbersome. The SOAP UI PRO's SQL Builder can help them in creating SQL Query using the SQL Builder's graphical interface. This feature helps us to accelerate the implementation of data-driven testing.

     

  • Support: As part of the license agreement SOAP UI Pro has exclusive support apart from the online forum support.
     
 

We will be using the Open Source version of SoapUI for our training purpose.

SOAP UI – Version Timelines

Introduction to SOAPUI

FAQ

What is Difference between WebService and WebAPI?

Web Service

Web API

  • Defined by W3C, all communication & data exchange is based on XML
  • Web API communication & data exchange could be XML, JSON or plain data
  • It has defined standards – WSDL
  • No defined standard
  • You cannot compress the data, but you can compress the HTML request
  • You can compress the data
  • Example: SOAP
  • Example: REST
 

SoapUI can test both Web Service and Web API. As a tester, you can forgot about these differences and focus your energies on creating an exhaustive automation suite.