Master each test step in SoapUI
SoapUI, a versatile testing tool, empowers you to thoroughly test and validate a wide range of web services and APIs. SoapUI offers an array of test steps tailored to diverse testing requirements. This comprehensive guide will thoroughly explore each test step in SoapUI, providing step-by-step instructions and critical insights for practical usage.
Please refer to the SoapUI installation instructions if you still need to install SoapUI. It’s important to note that SoapUI requires Java to run, so ensure you install Java on your system before proceeding.
Table of contents
- What is a Test Step in SoapUI?
- Navigating the test step tab
- The importance of test steps
- Types of test steps in SoapUI
- Best practices for test step configuration
- Conclusion
What is a Test Step in SoapUI?

In SoapUI, a test step is a fundamental unit of a test case. It represents a single action or operation you want to perform while testing a web service or API. Each test step corresponds to a task or interaction with the target system, such as sending a request, validating a response, or executing a script.
Test steps are the building blocks that allow you to create structured and comprehensive test cases. They provide a way to define the sequence of actions that should be executed during a test, enabling you to simulate real-world scenarios, validate the system’s behavior under test, and capture data for verification.
Navigating the test step tab

Before we delve into the specifics of each test step, let’s understand how to access and navigate the Test Step tab within SoapUI. Here’s how:
Create a new project
- Launch SoapUI.

- Click on File > New SOAP Project if you’re working with a SOAP-based service. Select the corresponding project type for REST, GraphQL, or other types.

- Name your project and click OK to create it.
Create a test suite
- Right-click your project’s name in the Navigator or Project Explorer on the left.
- Choose New TestSuite and give it a name.

- Click OK to create the test suite.
Add a test case
- Right-click the test suite you just created.
- Select New TestCase and name it.

- Click OK to create the test case.
Add test steps
- With your test case selected, go to the Test Steps tab in the main workspace area.
- Right-click in the Test Steps area and choose Add Step.

Now that you’ve accessed the Test Step tab, let’s explore the importance of test steps in your testing workflow.
The importance of test steps in SoapUI

Test steps are the building blocks of your testing scenarios in SoapUI. They allow you to:
- Construct Test Cases: Test steps help you organize your testing logic within test cases.
- Send Requests: With various test steps like SOAP Request, REST Request, and HTTP Request, you can send requests to your API or web service.
- Validate Responses: Assertions and property transfers within test steps enable you to validate response data.
- Perform Complex Operations: Groovy Script test steps allow you to execute custom scripts for more advanced testing scenarios.
- Simulate Real-World Scenarios: Delay test steps help you mimic real-world conditions like timeouts.
- Mock Services: SOAP Mock Response test steps enable you to simulate external services’ behavior.
By mastering test steps, you can create comprehensive and practical test cases that cover various aspects of your APIs and services.
Types of test steps in SoapUI
Now, let’s dive into each test step in detail, highlighting the essential elements to configure within the context of each step.
SOAP Request
The SOAP Request test step is designed for testing SOAP-based web services. It allows you to send SOAP messages and inspect the responses to a service.
How to use:
- Create a new test case or add a test step to an existing one.
- Select SOAP Request from the list of test steps.

- Configure the request:


- Service Endpoint: Define the service’s endpoint URL.
- Operation: Specify the operation to be called.
- Request Message: Construct the SOAP request message.
- Headers: Set any required headers.
- Authentication: Add authentication credentials if necessary.
- Execute the test step by clicking the Green Play button at the tool bar’s top and examining the response.
Note: Implement meaningful assertions within the step to validate the response.
REST Request
The REST Request test step is designed for testing RESTful APIs. It lets you send HTTP requests (GET, POST, PUT, DELETE) and analyze the responses.
How to use:
- Create a new test case or add a test step to an existing one.
- Select REST Request from the list of test steps.

- Configure the request:

- HTTP Method: Choose the HTTP method (GET, POST, etc.).
- Service Endpoint URL: Specify the API endpoint.
- Request Parameters: Define any query parameters.
- Request Headers: Set headers as needed.
- Request Body: Construct the request body.
- Authentication: Add authentication credentials if required.
- Execute the test step by clicking the Green Play button at the tool bar’s top and examining the response.
Note: Utilize assertions within the step to ensure the correctness of the response.
HTTP Request
The HTTP Request test step is versatile and suitable for various HTTP-based testing scenarios. It allows you to craft custom HTTP requests.
How to use:
- Create a new test case or add a test step to an existing one.
- Select HTTP Request from the list of test steps.

- Configure the request:
- HTTP Method: Choose the appropriate HTTP method.
- URL: Specify the target URL.
- Request Headers: Set any required headers.
- Request Body: Construct the request body content.
- Authentication: Include authentication details if needed.

- Execute the test step and inspect the response.
Note: Customize the request to fit your testing needs, and use assertions within the step to validate responses.
AMF Request
The AMF (Action Message Format) Request test step is tailored for testing services that utilize the AMF protocol, commonly found in Adobe Flash applications.
How to use:
- Create a new test case or add a test step to an existing one.
- Select AMF Request from the list of test steps.

- Configure the request:
- Service Endpoint: Specify the service’s endpoint URL.
- AMF Message: Construct a valid AMF message.

- Execute the test step by clicking the Play button at the tool bar’s top and examining the response.
Note: A strong understanding of the AMF protocol and message construction is essential.
JDBC Request
The JDBC Request test step is designed for database testing. It lets you send SQL queries to a database and validate the results.
How to use:
- Create a new test case or add a test step to an existing one.
- Select JDBC Request from the list of test steps.

- Configure the database connection:

- JDBC Driver: Choose the appropriate JDBC driver.
- Connection String: Define the database connection string.
- Authentication: Provide authentication credentials.
- Specify the SQL query.
- Execute the test step by clicking the Green Play button at the tool bar’s top and inspect the query results.
Note: Handle database connections with care and use assertions within the step to validate results.
GraphQL Request
The GraphQL Request test step is designed for testing GraphQL APIs. It allows you to send GraphQL queries and mutations and examine the responses.
How to use:
- Create a new test case or add a test step to an existing one.
- Select GraphQL Request from the list of test steps.

- Configure the request:

- GraphQL Endpoint: Specify the GraphQL endpoint URL.
- GraphQL Query or Mutation: Define the GraphQL query or mutation.
- Execute the test step and scrutinize the GraphQL response.
Note: Familiarize yourself with GraphQL syntax and use assertions within the step to validate the response.
Properties
The Properties test step facilitates the management of custom properties within your test case, making data sharing between test steps more efficient.
How to use:
- Add a Properties test step to your test case.

- Define properties with names and values.

- Use these properties in other test steps by referencing them.
Property Transfer
The Property Transfer test step enables you to transfer data from one test step’s response to another’s request or property.
How to use:
- Add a Property Transfer test step to your test case.

- Configure the source and target properties. Then, specify the source and target test steps.

- Execute the test case, and data will be transferred accordingly.
Conditional Goto
The Conditional Goto test step empowers your test case with conditional branching, allowing you to execute specific test steps based on conditions.
How to use:
- Add a Conditional Goto test step to your test case.

- Set conditions and specify the target test steps.

- During execution, the test case will follow the defined requirements.
Run Test Case
The Run Test Case test step allows you to include another test case within the current one, facilitating modular testing.
How to use:
- Add a Run Test Case test step to your test case.

- Select the test case and test suite to be executed.
- Configure input properties if necessary.

- When executed, the referenced test case will run.
Groovy Script
The Groovy Script test step lets you execute custom Groovy scripts to perform complex operations within your test case.
How to use:
- Add a Groovy Script test step to your test case.

- Write the Groovy script to perform the desired actions.

- Run the test step by clicking the Green Play button at the tool bar’s top, and the script will run.
Note: Requires knowledge of Groovy scripting.
Delay
The Delay test step pauses the test case execution, allowing you to simulate various scenarios, such as timeouts.
How to use:
- Add a Delay test step to your test case.

- Specify the duration of the delay.

- During execution, the test case will pause for the defined time.
Note: Useful for testing timeout handling.
SOAP Mock Response
The SOAP Mock Response test step creates mock responses to simulate external SOAP services’ behavior.
How to use:
- Add a SOAP Mock Response test step to your test case.

- Define the response message and behavior.

- Use it in your test case as a real service.
Note: Great for testing service interactions without relying on the actual service.
Manual Test Step
The Manual Test Step allows you to insert manual testing steps into your automated test case where human interaction or judgment is required.
How to use:
- Add a Manual Test Step to your test case.

- Describe the manual test steps, expected outcomes, and any inputs required.

- Execute the test case; testers can follow the manual steps.
Receive MQTT Message
The Receive MQTT Message test step is used for testing MQTT-based communication. It allows you to subscribe to an MQTT topic and receive messages.
How to use:
- Create a new test case or add a test step to an existing one.
- Select Receive MQTT Message from the list of test steps.

- Configure the MQTT connection settings:
- Broker URL: Specify the MQTT broker’s URL.
- Topic: Set the MQTT topic to subscribe to.
- QoS Level: Choose the Quality of Service level.
- Execute the test step and capture received MQTT messages.
Note: Ensure that your MQTT broker and topic are correctly configured.
Publish using MQTT
The Publish Using MQTT test step allows you to publish MQTT messages, testing the message publishing capabilities of your application.
How to use:
- Create a new test case or add a test step to an existing one.
- Select Publish Using MQTT from the list of test steps.

- Configure the MQTT connection settings:
- Broker URL: Specify the MQTT broker’s URL.
- Topic: Define the MQTT topic to publish.
- Message: Create the MQTT message.
- QoS Level: Choose the Quality of Service level.
- Execute the test step to publish the MQTT message.
Note: Ensure that your MQTT broker is available and correctly configured.
Drop MQTT Connection
The Drop MQTT Connection test step is used to disconnect an MQTT client from the MQTT broker, simulating abrupt disconnections for testing.
How to use:
- Create a new test case or add a test step to an existing one.
- Select Drop MQTT Connection from the list of test steps.

- Specify the MQTT client connection to drop.
- Execute the test step to simulate the MQTT connection drop.
Note: Use this test step cautiously, as it forcefully disconnects an MQTT client.
By mastering these test steps and their configurations, you’ll become proficient in SoapUI testing, ensuring the reliability and robustness of your web services and APIs. Each test step serves a unique purpose in your workflow, contributing to comprehensive and effective testing practices.
Best practices for test step configuration
Configuring test steps effectively is crucial for successful testing in SoapUI. Here are some best practices to ensure your test step configuration is efficient and reliable:
- Clear and Descriptive Names – Use meaningful names to enhance readability and understanding for your test steps.
- Modularization – Break down complex test cases into smaller, reusable test steps for maintainability.
- Parameterization – Utilize properties and variables to make test steps adaptable to different scenarios.
- Assertions – Implement assertions to verify expected outcomes, ensuring the correctness of responses.
- Error Handling – Configure error handling and status codes to manage unexpected results gracefully.
Final thoughts on creating test steps in SoapUI

In this comprehensive guide, we’ve explored many test steps available in SoapUI’s new version. These test steps are fundamental building blocks for creating robust and effective test cases for web services and APIs. You can ensure your applications’ reliability, functionality, and performance by mastering these test steps and their configurations.
Whether you’re testing SOAP-based services, RESTful APIs, GraphQL endpoints, databases, MQTT communication, or custom HTTP requests, SoapUI provides a versatile set of tools to meet your testing needs.
Effective testing involves configuring test steps, designing meaningful test cases, setting appropriate assertions, and analyzing test results. By incorporating these practices into your testing workflow, you can confidently validate the quality of your software, ensuring it meets user expectations and business requirements.
Follow our blog
Be the first to know when we publish new content.
Great article thanks. I have a quick question – can i asd custom asserts in my tests?
Hey Jack,
Yes, it is possible to create custom assertions in SoapUI by using scripting languages such as Groovy and JavaScrip.