Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Mastering SoapUI
Mastering SoapUI

Mastering SoapUI: Experience SOA Test and Test Automation from an expert view

eBook
€15.99 €23.99
Paperback
€29.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Mastering SoapUI

Chapter 1. Introduction to SOA Testing

With the increase in implementation of service-oriented architecture (SOA), architecture across applications leads to various technological and business advantages to the organizations implementing it.

But as it's said; There are two sides to every coin, with SOA architecture came advantages such as the following:

  • Reusability
  • Better scalability
  • Platform independency
  • Business agility
  • Enhanced security

But there are also disadvantages:

  • Increased response time
  • Service management effort is high
  • Implementation cost is high

In this chapter we will study the following topics:

  • Introduction to SOA
  • SoapUI architecture
  • Test levels in SOA testing
  • SOA testing approach
  • Introduction to functional, performance and security testing using SoapUI
  • Is SOA really advantageous?

Well, let's talk about a few of the advantages of SOA architecture:

  • Reusability: If we want to reuse the same piece of functionality exposed via a web service we should be absolutely sure that the functionality of the service is working as expected; security of the service is reliable and has no performance bottlenecks.
  • Business Agility: With more functional changes being easily adopted in a web service, we make the web service prone to functional bugs.
  • Enhanced Security: Web services are usually wrapped around systems that are being protected by several layers of security like SSL and usage of security tokens. Use of the business layer to protect the technical services to be directly exposed is usually handled by these layers. If the security of these layers is removed, the web service is highly vulnerable. Also the use of XML as a communication protocol opens the service to XML based attacks. So to mitigate risks we have SOA testing, and to help you test SOA architecture we have multiple testing tools on the market for example; SoapUI, SoapUI Pro, HP Service Test, ITKO LISA and SOA Parasoft.

But the most widely used and open source tool in the SOA testing arena is SoapUI. Following is a comparative analysis of the most famous tools in the Web service testing & test automation arena.

Comparative Analysis:

S.No

Factors

SoapUI

SaopUI PRO

ITKO LISA

SOA Parasoft

1

Cost

Open source

400 $/License

Highly Costly

Highly Costly

2

Multilayer testing

Yes

Yes

Yes

Yes

3

Scripting support

Yes

Yes

Yes

Yes

4

Protocol support

Yes

Yes

Yes

Yes

5

CI support

Yes

Yes

Yes

Yes

6

Ease of use

8/10

9/10

9/10

9/10

7

Learning curve

8/10

8/10

6/10

6/10

As we can see by the preceding comparison metrics, Ease of use, Learning curve, and Cost play a major role in selection of a tool for any project. So to learn ITKO LISA or SOA Parasoft, there is very limited, or no, material available on the Internet. To get resources trained you need to go to the owners of these tools and pay extra and then pay more if you need the training a second time.

This gives additional advantages to SoapUI and SoapUI Pro to be the first choice for Test Architects and Test Managers for their projects.

Now let's talk about the closely related brothers in this subset; SoapUI & SoapUI Pro are from the same family, Eviware, which is now SmartBear. However, SoapUI Pro has an enriched functionality and GUI which have additional functionalities to help reduce the time for testing, justifying its cost as compared to SoapUI open source.

Here is a quick comparison:

Criteria

SoapUI

SoapUI Pro

Reporting

Very limited, no rich reporting

Reports are available in different formats

XPath Builder

Not Available

Available

Data source

Not Available

Multiple options for data sources available

Data sink

Not Available

Available

XQuery Builder

Not Available

Available

The additional functionality that is available in SoapUI Pro can be achieved by SoapUI using Groovy script. To sum up everything that is given as UI functionality in SoapUI PRO is achievable with little effort in SoapUI which finally makes SoapUI open source the preferred choice for tool pickers.

SoapUI architecture

Before we move onto the architecture let's take a look the capabilities of SoapUI and how can we use it for the benefit of our projects.

SoapUI provides the following testing features to the test team:

  • Functional testing [manual]
  • Function test automation
  • Performance testing
  • Security testing
  • Web service interoperability testing

Apart from these, SoapUI is also capable of integration with the following:

  • LoadUI for advanced performance testing
  • Selenium for multilayer testing
  • Jenkins for continuous integration
  • HP QC for end-to-end test automation management and execution

Note

SoapUI has a comparatively simple architecture as compared to other tools in the SOA testing world.

The following image, shows the architecture of SoapUI at an overview level:

SoapUI architecture

Let's talk about the architecture in detail:

  • Test config files: Files which require power to test this includes test data, expected results, database connection variables and any other environmental or test specific details.
  • Third-party API: Third-party API helps create an optimized test automation framework example. JExcel API to help integrate with Microsoft Excel to create a data driven framework.
  • Selenium: Selenium JARs to be used for UI automation.
  • SoapUI Runner: This is used to run the SoapUI project and is a very useful utility for test automation as it allows you to run the test from the command line and acts as a trigger for test automation.
  • Groovy: This library is used to enable SoapUI to provide its users with groovy as a scripting language.
  • Properties: Test request properties to hold any dynamically generated data. We also have Test properties to configure SSL and other security configurations for test requests.
  • Test Report: SoapUI provides a Junit style report and user Jasper reporting utility for reporting of test results.

Test architecture in detail

SoapUI Architecture is composed of many key components which help provide the users of SoapUI with advanced functionality like virtualization, XPath, invoking services with JMS endpoints, logging, and debugging.

Let's discuss these key components in detail:

  • Jetty: Service virtualization/mock services
    • We can create replicas of services in cases where the service is not ready or buggy to test. In the meantime, we want to create our test cases, for that we can use service virtualization or mocking and use that service.
    • Jetty is used for hosting virtual services.
    • Provided by Eclipse, Java based web server.
    • Works for both SOAP and Rest.
  • Jasper:
    • Is used to generate reports
    • Open source reporting tool
  • Saxon XSLT and XQuery processor:
    • We can use Path and XQuery to process service results
    • The Saxon platform provides us with the option to process results using Path and XQuery
  • Log4J:
    • Used for logging
    • Provides SoapUI, error, HTTP, Jetty, and memory logs
  • JDBC driver:
    • To interact with different databases we would need the respective drivers
  • Hermes MS:
    • Is used in applications where high volume of transactions take place
    • It is used to send messages to the JMS Queue
    • Receiver results from the JMS Queue
    • We can incorporate Java JMS using Hermes JMS
  • Scripting language:
    • We can choose with Groovy or JavaScript
    • We can select language for each project
    • We can set language at project property level
  • Monitoring:
    • To check what is sent to the service and what is received from the service
  • Runners:
    • Execution can be run without using SoapUI
    • Run from the command line
    • Test runner
    • LoadTestRunner
    • SecurityTestRunner
    • MockServiceRunner
    • Can also be executed from build tools such as Jenkins

Test approaches in SOA testing

Approaches to test SOA architecture are usually based on the scope of the project and requirements to test. Let's look at an example.

Following is a diagram of a three-tier architecture based on SOA architecture:

Test approaches in SOA testing
  • Validation1 or V1: Validation of integration between Presentation Layer to the Services Layer
  • Validation2 or V2: Validation of integration between Services Layer to the Service Catalogue Layer
  • Validation3 or V3: Validation of integration between Product catalogue layer and the database or backend Layer

So we have three integration points which makes us understand that we need integration testing also with functional, performance and security testing. So let's sum up the types of testing that are required to test end-to-end Greenfield projects.

  • Functional testing
  • Integration testing
  • Performance testing
  • Security testing
  • Automation testing

Functional testing

A web service may expose single or multiple functionalities via operations and sometimes we need to test a business flow which requires calling multiple services in sequence which is known as orchestration testing in which we validate that a particular business flow meets the requirement.

Let's see how to configure a SOAP service in SoapUI for functional testing

  1. Open SoapUI by clicking on the launch icon.
  2. Click on File in upper-left corner of the top navigation bar.
    Let's see how to configure a SOAP service in SoapUI for functional testing
  3. Click on New SOAP Project heading in the File menu.
    Let's see how to configure a SOAP service in SoapUI for functional testing
  4. Verify that a popup opens up which asks for the WSDL or WADL details. There are two ways you can pass a URL to the web location of the WSDL, or you can pass a link to the downloaded WSDL on your local system.
    Let's see how to configure a SOAP service in SoapUI for functional testing
  5. Enter the project name details and the WSDL location which can either be on your local machine or be called from a URL, then click on OK. You may verify that the WSDL is successfully loaded in SoapUI with all the operations.
    Let's see how to configure a SOAP service in SoapUI for functional testing
  6. Now you can see that service is successfully loaded in the workspace of SoapUI.
    Let's see how to configure a SOAP service in SoapUI for functional testing
  7. Now, the first step toward an organized test suite is to create a test suite and relevant test cases. To achieve this, click on the operation request:
    Let's see how to configure a SOAP service in SoapUI for functional testing
  8. When you click on Add to TestCase you are asked for the test suite name and then a test case name and finally you will be presented with the following popup:
    Let's see how to configure a SOAP service in SoapUI for functional testing

    Here you can create a TestCase and add validations to it at run time.

  9. After clicking OK you are ready to start your functional and integration testing:
    Let's see how to configure a SOAP service in SoapUI for functional testing

Let's take an example of how to test a simple web service functionally.

Test case: Validate that Search Customer searches for the customer from the system database using an MSISDN (Telecom Service).

Note

Please note MSISDN is a unique identifier for a user to be searched in the database and is a mandatory parameter.

API to be tested, Search Customer:

  • Request body:
    <v11:SearchCustomerRequest>
        <v11:username>TEST_Agent1</v11:username>
         <v11:orgID>COM01</v11:orgID>
         <v11:MSISDN>447830735969</v11:MSISDN>

So to test it we pass the mandatory parameters and verify the response which should get us the response parameters expected to be fetched.

By this we validate that searching for the customer using some Search criteria is successful or not, similarly, in order to test this service from a business point of view we need to validate this service with multiple scenarios. Following is a list of a few of them.

Considering it's a telecom application search customer service:

  • Verify that a prepay customer is successfully searched for using Search customer
  • Verify that a post-pay customer is successfully searched for using Search customer
  • Verify that agents are successfully searched for using search customer
  • Verify that the results retrieved in response have the right data
  • Verify that all the mandatory parameters are presenting the response of the service

Here is how the response looks:

Response Search Customer

<TBD>

Previous are some examples of Priority1 scenarios that you will require to test this service we will give it a deeper look in the following chapters.

Performance testing

So is it really possible to perform performance testing in SoapUI?

The answer is yes, if you just want to do a very simple test on your service itself, not on the orchestration.

SoapUI does have limitations when it comes to performance testing but it does provide you a functionality to generate load on your web service with different strategies.

So to start with, once you have created your SoapUI project for a service operation, you can just convert the same to a simple load test. Here is how:

  1. Right-click on the Load Test option available:
    Performance testing
  2. Now select the name of the load test; a more relevant one will help you in future runs.
    Performance testing
  3. You will now see that the load test popup appears and the load test is created:
    Performance testing
  4. There are several strategies to generate load in SoapUI. The strategies are as follows:
    • Simple
    • Burst
    • Thread
    • Variance
    Performance testing

We will learn more about performance testing using SoapUI in the following chapters.

Security testing

API and web services are highly vulnerable to security attacks and we need to be absolutely sure about the security of the exposed web service depending on the architecture of the web service and the nature of its use.

Some of the common attacks types include the following:

  • Boundary attack
  • Cross-site scripting
  • XPath injection
  • SQL injection
  • Malformed XML
  • XML bomb
  • Malicious attachment

SoapUI's security testing functionality provides scans for every attack type and also, if you want to try a custom attack on the service by writing a custom script.

So the scans provided by SoapUI are as follows:

  • Boundary scan
  • Cross-site scripting scan
  • XPath injection scan
  • SQL injection scan
  • Malformed XML scan
  • XML bomb scan
  • Malicious attachment scan
  • Fuzzing scan
  • Custom script

Following are the steps for how we configure a security test in SoapUI:

  1. You can see an option for Security Tests just below Load Tests in SoapUI.
    Security testing
  2. To add a test, right-click on the Security Tests and select New SecurityTest:
    Security testing
  3. Now select New SecurityTest and verify that a popup asking the name of the security test opens:
    Security testing
  4. Select the name of the security test and click on OK.
  5. After that, you should see the security test configuration window opened on the screen. For the service operation of your test case, in case of multiple operation in the same test case, you can configure for multiple operations in a single security test as well.
    Security testing

    For this pane you can select and configure scans on your service operations.

  6. To add a scan, click on the selected icon in the following screenshot:
    Security testing
  7. After selecting the icon, you can now select the scan you want to generate on your operation:
    Security testing
  8. After that you can configure your scan for the relevant parameter by configuring the XPath of the parameter in the request.
    Security testing
  9. After that you can select Assertions and Strategy tabs from the below options:
    Security testing
  10. You are now ready to run you security test with Boundary Scan:
    Security testing

Now we have learnt how to configure a simple security test in SoapUI, we will learn more about it in detail in the coming chapters.

Summary

So now we have been introduced to the key features of SoapUI and by the end of this chapter the readers of this chapter will now be familiar with SOA and SOA Testing. They now will have basic understanding of functional, load, and security testing in SOA using SoapUI.

In the following chapter we will be learning about how to test web services and web service orchestration in detail with real-time examples

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Design real-time test automation frameworks for Enterprise applications using SoapUI
  • Learn how to solve test automation issues for complex systems
  • A complete guide to understanding SOA automation from quality assurance to business assurance

Description

SoapUI is an open-source cross-platform testing application that provides complete test coverage and supports all the standard protocols and technologies. This book includes real-time examples of implementing SoapUI to achieve quality and business assurance. Starting with the features and functionalities of SoapUI, the book will then focus on functional testing, load testing, and security testing of web services. Furthermore, you will learn how to automate your services and then design data-driven, keyword-driven, and hybrid-driven frameworks in SoapUI. Then the book will show you how to test UIs and services using SoapUI with the help of Selenium. You will also learn how to integrate SoapUI with Jenkins for CI and SoapUI test with QC with backward- and forward-compatibility. The final part of the book will show you how to virtualize a service response in SoapUI using Service Mocking. You will finish the journey by discovering the best practices for SoapUI test automation and preparing yourself for the online certification of SoapUI.

Who is this book for?

The book is intended for test architects, SOA test specialists, automation testers, test managers, and software developers who have a good understanding of SOA, web services, Groovy Scripting, and the SOAP UI tool.

What you will learn

  • Familiarize yourself with Test Web services from functional, nonfunctional, and security aspects
  • Learn to test real-time service orchestrations
  • Design test automation solutions for SOA-based Enterprise applications
  • Learn multilayer test automation
  • Selenium plus SoapUI under a single umbrella
  • Integrate your SoapUI framework with Jenkins

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 30, 2016
Length: 240 pages
Edition : 1st
Language : English
ISBN-13 : 9781783980802
Category :
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Aug 30, 2016
Length: 240 pages
Edition : 1st
Language : English
ISBN-13 : 9781783980802
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 108.97
Web Services Testing with soapUI
€41.99
Mastering SoapUI
€29.99
SoapUI Cookbook
€36.99
Total 108.97 Stars icon

Table of Contents

11 Chapters
1. Introduction to SOA Testing Chevron down icon Chevron up icon
2. Functional Testing In Detail Chevron down icon Chevron up icon
3. Performance Testing of SOA Applications in Detail Chevron down icon Chevron up icon
4. Security Testing in Detail Chevron down icon Chevron up icon
5. Test Automation in SOA World Chevron down icon Chevron up icon
6. Multilayer Test Automation Using SoapUI and Selenium Chevron down icon Chevron up icon
7. SoapUI Integration with Jenkins and HP QC Chevron down icon Chevron up icon
8. End-to-End Test Automation Chevron down icon Chevron up icon
9. Service Mocking Chevron down icon Chevron up icon
10. Best Practices in SOA Test Automation Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(1 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
ricky Dec 18, 2017
Full star icon Full star icon Full star icon Full star icon Full star icon 5
liked it
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.