Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

SoapUI Cookbook
SoapUI Cookbook
SoapUI Cookbook
Ebook837 pages7 hours

SoapUI Cookbook

Rating: 0 out of 5 stars

()

Read preview

About this ebook

About This Book
  • Quickly gain simple-to-use building blocks to power up your SoapUI toolkit
  • Use Groovy scripting and open source technologies to add the SoapUI functionality you need to successfully test RESTFul and SOAP APIs
  • Access reusable step-by-step technical solutions to common and more advanced real-world test scenarios
Who This Book Is For

This book is aimed at developers and technical testers who are looking for a quick way to take their SoapUI skills and understanding to the next level. Even if you are new to SoapUI but have basic Java skills and a reasonable grasp of RESTFul and Soap web services, then you should have no problem making use of this book.

LanguageEnglish
Release dateFeb 27, 2015
ISBN9781784398712
SoapUI Cookbook

Related to SoapUI Cookbook

Related ebooks

Databases For You

View More

Related articles

Reviews for SoapUI Cookbook

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    SoapUI Cookbook - Rupert Anderson

    Table of Contents

    SoapUI Cookbook

    Credits

    About the Author

    Acknowledgments

    About the Reviewers

    www.PacktPub.com

    Support files, eBooks, discount offers, and more

    Why Subscribe?

    Free Access for Packt account holders

    Preface

    What this book covers

    What you need for this book

    Who this book is for

    Sections

    Getting ready

    How to do it…

    How it works…

    There's more…

    See also

    Conventions

    Reader feedback

    Customer support

    Downloading the example code

    Errata

    Piracy

    Questions

    1. Testing and Developing Web Service Stubs With SoapUI

    Introduction

    What you'll learn

    What you'll need

    Generating a WSDL-first web service using SoapUI tool integration

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Developing a SOAP web service test-first

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Updating a SOAP project using a WSDL

    Getting ready

    How to do it...

    How it works...

    There's more...

    Updating SOAP projects using WSDL refactoring (Pro)

    Getting ready

    How to do it...

    There's more...

    Generating and developing a RESTful web service stub test-first

    Getting ready

    How to do it...

    How it works...

    There's more...

    Code-first REST services

    See also

    Generating SoapUI tests with REST discovery (Pro)

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    2. Data-driven Testing and Using External Datasources

    Introduction

    What you'll learn

    What you'll need

    Creating and checking data with the JDBC Request TestStep

    Getting ready

    How to do it...

    How it works...

    See also

    Parameterizing SQL queries with the JDBC Request TestStep

    How to do it...

    How it works...

    There's more...

    See also

    Setting properties from an external file

    Getting ready

    How to do it...

    How it work...

    See also

    Importing CSV file data into an in-memory H2 database with Groovy

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Looping over CSV file data and driving tests with Groovy

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Querying MongoDB with Groovy

    Getting ready

    How to do it…

    How it works...

    There's more...

    See also

    Publishing, browsing, and consuming ActiveMQ JMS messages via the REST API

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    3. Developing and Deploying Dynamic REST and SOAP Mocks

    Introduction

    What you'll learn

    What you'll need

    Selecting mock responses using Groovy

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Developing dynamic database-driven SOAP mocks

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Developing dynamic database-driven REST mocks

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Building mock responses dynamically

    How to do it...

    How it works...

    There's more...

    Deploying mocks as WAR files

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    4. Web Service Test Scenarios

    Introduction

    What you'll learn

    What you'll need

    Testing WSDL and response WS-I compliance

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing SOAP response schema compliance

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing REST response XML schema compliance

    Getting ready

    How to do it...

    How it works...

    There's more...

    Testing response compliance using JSON schemas

    Getting ready

    How to do it...

    How it works...

    There's more...

    Need XML schema validation?

    See also

    Testing and mocking SOAP (MTOM+XOP) attachments

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing HATEOAS links

    Getting ready

    How to do it...

    How it works...

    There's more...

    Testing polling style asynchronous REST services

    Getting ready

    How to do it...

    How it works...

    There's more...

    Testing asynchronous SOAP service callbacks

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing for e-mails with Groovy

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing files with Groovy

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    5. Automation and Scripting

    Introduction

    What you'll learn

    What you'll need

    Running mocks from the command line

    Getting ready

    How to do it...

    How it works...

    There's more...

    Running tests from the command line

    Getting ready

    How to do it…

    How it works...

    There's more...

    Providing environment-specific properties

    How to do it...

    How it works...

    See also

    Generating mock WAR files from the command line

    Getting ready

    How to do it...

    How it works...

    Running mocks and tests using Maven

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Running mocks and tests using Java and JUnit

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Running mocks and tests using Groovy scripts

    Getting ready

    How to do it...

    How it works...

    See also

    Running mocks and tests using Gradle

    Getting ready...

    How to do it...

    How it works...

    There's more...

    See also

    6. Reporting

    Introduction

    What you'll learn

    Generating reports from test runners

    Getting ready

    How to do it...

    Standard reports

    Summary reports

    JUnit Reports

    AlertSite Reports

    How it works...

    There's more...

    Pro test runner options

    Publishing JUnit reports using Jenkins

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Exporting custom reports using Groovy

    Getting ready

    How to do it…

    How it works...

    There's more...

    Analyzing test, HTTP, and mock coverage (Pro)

    Getting Ready

    How to do it...

    How it works...

    Contract coverage

    Assertion coverage

    There's more…

    HTTP coverage reporting

    Mock coverage reporting

    REST coverage reporting

    See also

    7. Testing Secured Web Services

    Introduction

    What you'll learn

    Testing basic HTTP-authenticated RESTful web services

    Getting ready

    How to do it...

    Smoke test

    Tomcat HTTP Basic authentication setup

    SoapUI HTTP Basic authentication testing

    How it works...

    There's more...

    See also

    Testing HTTP Digest-authenticated RESTful web services

    Getting ready

    How to do it...

    Tomcat HTTP Digest authentication setup

    SoapUI HTTP Digest authentication

    How it works...

    There's more...

    See also

    Testing HTTP form-authenticated RESTful web services

    Getting ready

    How to do it...

    Setting up Tomcat form authentication

    Adding the login pages to helloworld-webapp

    Testing with SoapUI

    How it works...

    Creating and using X.509 certificates to test web services over HTTPS

    Getting ready

    How to do it...

    Enabling HTTPS in Tomcat

    Testing the service over HTTPS

    How it works...

    There's more...

    See also

    Testing client certificate authenticated web services

    Getting ready

    How to do it...

    Client certificate creation and keystore setup

    Tomcat configuration

    Enabling client certificate authentication in SoapUI

    How it works...

    There's more...

    Securing mock services using X.509 certificates

    Getting ready

    How to do it...

    How it works...

    Testing WS-Security UsernameToken, Timestamp, and TransportBinding

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Scanning web service security vulnerabilities

    Getting ready

    How to do it...

    How it works...

    There's more...

    8. Testing AWS and OAuth 2 Secured Cloud Services

    Introduction

    What you'll learn

    What you'll need

    Testing Dropbox using a pregenerated OAuth 2 Access Token

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing Dropbox using OAuth 2 Authorization Code Grant flow

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Testing Dropbox using OAuth 2 Implicit Grant flow

    Getting ready

    How to do it...

    How it works...

    There's more...

    Testing the Gmail API using OAuth2

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Automating OAuth 2 authentication and consent

    Getting ready

    How to do it...

    How it works...

    Testing AWS services using Access Key authentication

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    9. Data-driven Load Testing With Custom Datasources

    Introduction

    What you'll learn

    What you'll need

    Load testing data-driven TestCases concurrently with separate Groovy datasources

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Load testing data-driven TestCases concurrently with a shared Groovy datasource

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Load testing data-driven TestCases concurrently with a shared distributed datasource

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Running load tests using Maven, command line, Java, Groovy, and Gradle scripts

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    10. Using Plugins

    Introduction

    What you'll learn

    Using old-style (open source) plugins

    Why are they called old-style?

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Sending e-mails with the Email TestStep plugin

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Using plugins via the plugin manager (Pro)

    How to do it...

    How it works...

    See also

    Using the Groovy Console plugin to create and run a new TestStep

    Getting ready

    How to do it...

    How it works...

    See also

    Packaging old-style plugins when running tests with Maven

    Getting ready

    How to do it...

    How it works...

    There's more...

    11. Taking SoapUI Further

    Introduction

    What you'll learn

    Building, packaging, and running SoapUI from the source code

    Getting ready

    How to do it...

    There's more...

    See also

    Importing, building, running, and debugging SoapUI in Eclipse

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Developing a Groovy plugin with custom Action using Gradle

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Logging from extensions and scripts

    Getting ready

    How to do it...

    How it works...

    See also

    Prompting for user input with the UISupport class

    Getting ready

    How to do it...

    How it works...

    See also

    Creating a custom RequestFilter (Listener) plugin

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Creating a custom TestStep (Factory) plugin to check whether a file exists

    Getting ready

    How to do it...

    How it works...

    There's more...

    See also

    Index

    SoapUI Cookbook


    SoapUI Cookbook

    Copyright © 2015 Packt Publishing

    All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

    Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

    Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

    First published: February 2015

    Production reference: 1190215

    Published by Packt Publishing Ltd.

    Livery Place

    35 Livery Street

    Birmingham B3 2PB, UK.

    ISBN 978-1-78439-421-9

    www.packtpub.com

    Credits

    Author

    Rupert Anderson

    Reviewers

    Wilkołek Damian

    Shalabh Dixit

    Mykola Makhin

    Ambesh Thakur

    Commissioning Editor

    Kartikey Pandey

    Acquisition Editor

    Richard Brookes-Bland

    Content Development Editor

    Adrian Raposo

    Technical Editor

    Tanvi Bhatt

    Copy Editors

    Puja Lalwani

    Nithya P.

    Alfida Paiva

    Project Coordinator

    Sanchita Mandal

    Proofreaders

    Paul Hindle

    Clyde Jenkins

    Elinor Perry-Smith

    Indexer

    Mariammal Chettiyar

    Graphics

    Abhinash Sahu

    Production Coordinator

    Melwyn D'sa

    Cover Work

    Melwyn D'sa

    About the Author

    Rupert Anderson holds an M.Maths (Hons) degree, and contributed his dissertation in the field of computational fluid dynamics. He works as a freelance architect, software engineer, and integrator with over 17 years of software development experience. He has designed, developed, or tested RESTful and SOAP APIs during large and successful Agile projects. He also specializes in designing and developing Java e-commerce solutions using ATG, Hybris, and Spring technologies. He is an open source enthusiast and aims to contribute more when he finds the time, energy, and drive after the demands of family life are finished for the day!

    If you would like to know more about him and what he is up to, take a look at uk.linkedin.com/in/rupertanderson/.

    Acknowledgments

    Sincere and special thanks to the following people:

    The editors Richard Brookes-Bland, Adrian Raposo, and Tanvi Bhatt. Richard for getting me started, making me feel positive about the book, and showing me the way forward. Adrian for his corrections, helping me develop my writing skills, giving me encouragement when I needed it, and staying the distance. Lastly, to Tanvi for all her hard work knocking my draft chapters into shape and her great attention to detail when editing technical content.

    The reviewers Ambesh, Mykola, and Damian and others,for all your helpful comments and constructive criticism. Thanks for all your efforts; it was a major help and I am very grateful for it.

    My girlfriend, Nicola, for being there to balance my life and helping me make the head space to write this book by doing such a great job of looking after our two lovely kids! I'd better thank the kids too, Cole and Maisy, for giving me natural breaks in my work with their chirpy but adorable ways!

    My friend and colleague Ben Wilcock, for introducing me to Packt Publishing, encouraging me to write this book, and all those pub lunches where I got to offload all my ideas to someone passionate about modern integration techniques and API testing!

    The SoapUI Creators, particularly Ole Lensmar, whom I have never met but have great respect for. Without your skill, passion, and drive to make SoapUI so open and extensible, this book would have been far less fun to write!

    About the Reviewers

    Wilkołek Damian gained all the experience while being a freelancer. After graduation, he started to work on a polish eHealth project. He is enthusiastic about new technologies and adrenaline.

    He has also previously worked on a book about Spring framework by Packt Publishing.

    I'd like to thank my dear love for providing me with beer and good words!

    Shalabh Dixit (https://www.linkedin.com/profile/view?id=23517594) is a full stack quality assurance engineer living in Hyderabad, India. He is currently associated with the world's third largest software testing company, Cigniti Technologies Ltd, and has the designation of a Project Lead.

    He has significant and diversified experience in various types of automation and performance testing tools, such as UFT, LoadRunner, SoapUI, and so on.

    He started his career as a test engineer at NIIT Technologies to explore new technologies, and then moved to HCL Technologies as a senior test engineer.

    He is passionate about technology and start-ups, and enjoys exploring new tools.

    Apart from the professional pursuits, he is a team person and likes to help others. He also loves to spend time with friends and family.

    I dedicate all the success in my career so far to my parents and my wife, Pallavi, and also thank them for their support.

    Mykola Makhin is a Java programmer hailing from Lviv, Ukraine. A graduate of Lviv Polytechnic University, Mykola is a Java- and JVM-based languages enthusiast, and has almost a decade of experience in the field of Java EE solutions development.

    Ambesh Thakur (https://www.linkedin.com/in/ambeshthakur) is a full stack quality assurance engineer living in New Delhi, India. He is currently associated with one of the most successful e-commerce companies in India, Snapdeal.com, as a quality assurance engineer (individual contributor).

    He has significant experience in providing end-to-end solutions to a few start-ups. He started his career as a test engineer at Cropin Technologies (an Agro ERP start-up), and to explore new technologies, moved to Xenon (an automotive start-up) as a quality assurance lead.

    He is passionate about technology and start-ups, and enjoys exploring new tools and technology.

    Apart from the professional pursuits, he is a team person and likes to help others. He also loves to spend time with friends and family.

    I would like to thank Packt Publishing for providing me with such a great opportunity.

    www.PacktPub.com

    Support files, eBooks, discount offers, and more

    For support files and downloads related to your book, please visit www.PacktPub.com.

    Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at for more details.

    At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.

    https://www2.packtpub.com/books/subscription/packtlib

    Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.

    Why Subscribe?

    Fully searchable across every book published by Packt

    Copy and paste, print, and bookmark content

    On demand and accessible via a web browser

    Free Access for Packt account holders

    If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.

    Preface

    This cookbook aims to complement the online SoapUI documentation and the wealth of excellent blogs out there. To do this, this book tries to put you in control of SoapUI by building your skills and understanding, so that if a solution isn't there already, you have what it takes to add it. To support this journey are 70 recipes, which are often in the form of hands-on worked examples, to build SoapUI framework knowledge, scripting skills, integration of open source libraries, and understanding of the technologies at play. In general, this book is not a beginner's guide, and tries not to repeat commonly available material or basic topics. Having said that, if you are new to SoapUI, but have basic Java skills and web service knowledge, then you shouldn't have too much trouble using this book.

    Another aim of this book is to demonstrate SoapUI's API testing flexibility. To support this, RESTful web services and related technologies are given plenty of coverage. Also, with the plugin framework and scripting skills that you'll gain, there's no reason why SoapUI can't test most things!

    As a cookbook, the way you read it is somewhat up to you and how experienced you are. The recipe format potentially allows experienced users to dip in and out of chapters, although some recipes are made easier by having completed others, which is normally indicated in their introduction or the Getting ready section. If you are new to SoapUI, then going through chapters 1 to 4 in order, may help give you a good foundation before skipping to more specialized topics.

    What this book covers

    Chapter 1, Testing and Developing Web Service Stubs With SoapUI, provides a view on how to support early application development. The main theme here is how SoapUI can be used to generate, develop, and test basic RESTful and SOAP web service stubs using Apache CXF. Discovering, updating, and refactoring tests are also covered here. Apart from the pro-only WSDL refactoring and REST discovery recipe, this chapter is fairly basic in terms of SoapUI testing concepts. Although some readers may prefer not to start with this chapter, for example, if they already have basic SoapUI skills or no interest in developing Java web service stubs.

    Chapter 2, Data-driven Testing and Using External Datasources, introduces the theme of data-driven testing and Groovy scripting as a key enabler. This chapter also introduces the building blocks of SoapUI properties, simple database handling, file handling, and how to use open source libraries in Groovy TestSteps. This chapter is fairly fundamental going forward, especially if you do not already know these concepts.

    Chapter 3, Developing and Deploying Dynamic REST and SOAP Mocks, builds directly on the Groovy scripting and database and property handling from the previous chapter to show how to develop dynamic mock services. We also see how to deploy the mocks as WAR files to potentially support early application development. Mock services will be used to support recipe samples across several chapters.

    Chapter 4, Web Service Test Scenarios, uses the fundamentals of the first three chapters to demonstrate how SoapUI can be used to solve some more high-level, scenario-based REST and SOAP web service testing problems. This is probably the most balanced chapter in terms of general SoapUI testing, as the subsequent chapters are more specialized.

    Chapter 5, Automation and Scripting, is all about how SoapUI tests and mocks can be run from scripts with a view to continuous integration. Examples include command-line, Maven, Java, JUnit, Groovy, and Gradle scripts. Scripting of security and load tests will be looked at in chapters 7 and 9 respectively.

    Chapter 6, Reporting, looks at the reporting features that are available to the scripts of the previous chapter, custom reporting with Groovy, and how Jenkins or similar CI tools can run the scripts and publish test results as JUnit style reports. Pro version only coverage reporting is also explored.

    Chapter 7, Testing Secured Web Services, is all about using SoapUI to test APIs that feature HTTP Basic, Digest and Form, transport layer security (TLS), client certificate, and WSS security. A core learning is the X.509 certificate creation and handling within SoapUI. The security-scanning functionality of SoapUI is also explored.

    Chapter 8, Testing AWS and OAuth 2 Secured Cloud Services, mainly explores how OAuth 2 code and implicit grant flows work and how SoapUI supports them. Amazon AWS Access Key Authentication is also explained and demonstrated using Groovy. All examples use popular cloud service providers such as Dropbox, Google, Gmail, and AWS, and involve RESTful web services.

    Chapter 9, Data-driven Load Testing With Custom Datasources, discusses how to understand and deal with datasource concurrency issues when running multithreaded data-driven load tests. Distributed datasources and scripting of load tests are also covered.

    Chapter 10, Using Plugins, focuses on using, rather than developing, some of the example plugins that are currently available for SoapUI. The basics of how plugins work is also briefly covered, as well as how to provide them in scripts such as Gradle and Maven, where a SoapUI installation is not normally present. While this chapter is near the end, it's actually quite easy to do, even though the understanding of how plugins work might seem more advanced.

    Chapter 11, Taking SoapUI Further, is mostly about using SoapUI from its source code and how to develop SoapUI extensions and plugins using Groovy and Gradle. Even though developing extensions is advanced and beyond many people's needs, the examples should be quite doable, especially if you've read the other chapters. Also, building SoapUI from scratch is not hard at all and can be very useful, even in some of the earlier chapters.

    What you need for this book

    The main software requirements for all or most recipes are as follows:

    SoapUI Open Source Version: Version 5.0 was used for this book. You can use the latest version for example, which is built from the source code.

    The secondary but important software requirements for several recipes are as follows:

    SoapUI Pro Version: For the 4 pro only recipes and pro functionality tips recipes marked with (pro), version 5.1.1 was used. SoapUI NG Pro should also work, but it has not been officially tested.

    Java JDK 1.6+: Version 1.7 was used for the recipes.

    IDE (Optional): Eclipse, IntelliJ IDEA, or NetBeans

    Apache CXF: Version 3+ was used

    Apache Tomcat: Version 7 was used or you can use the latest version

    Apache Maven: Version 3+ was used

    Gradle: A Gradle wrapper was used in all examples, which indicates that Gradle installation is unnecessary but can be done (version 2.2 was used).

    Browsers: Any browser should work; the main testing was done using either Google Chrome or Mozilla Firefox.

    During many recipes, there will be a need to download and use various open source libraries and dependencies, so download and version advice will be provided there.

    Who this book is for

    This book is aimed at developers and technical testers, who are looking for a quick way to take their SoapUI skills and understanding to the next level. It is not designed as a SoapUI beginner's guide; rather, it can be used more

    Enjoying the preview?
    Page 1 of 1