SoapUI 3.6 introduced a number of LoadUI integration points for running SoapUI TestCases from inside LoadUI instead of using the Load Testing functionality in SoapUI. Before we look at these different options, lets take a quick look at the major benefits provided by LoadUI over SoapUI for Load Testing:
- Distributed Load Testing : LoadUI allows you to easily distribute your Load Tests to any desired number of LoadUI Agents by simply dragging and dropping the tests as required which makes it easy to simulate load or traffic not possible from a single machine.
- Run multiple TestCases simultaneously : in LoadUI you can run any number of SoapUI TestCases in any combination required, with different load generators, schedules and agents. For example you might want to divide load between SoapUI TestCase when triggered:een 3 TestCases, all ramping up from one load to another.
- Long-running Tests : LoadUI tests can be run for weeks without consuming your memory or CPU, allowing you to have base-line tests executing in the background with as advanced configurations as neccessary
- Interactive Load Testing : change and load-related parameters in real-time to see how your service and response times are affected.
Head straight over to the LoadUI website if you want to know more about LoadUI, now let's have a look at the integration points available in SoapUI.
Note: both LoadUI and SoapUI have artifacts named "TestCase", in SoapUI it is a functional test containing a number of TestSteps (as you probably know by now), in LoadUI it is a collection of LoadUI components that can be deployed on a LoadUI Agent (read more).
LoadUI Integration Overview
LoadUI provides a "SoapUI Runner" component that runs the configured SoapUI TestCase when triggered:
(more details on this component are at the LoadUI website)
You can add as many of these components as desired to your LoadUI Project, each for running different (or the same) SoapUI TestCase with different loads, assertions, etc. The SoapUI Runner stores a pointer to the target SoapUI project file and contained TestCase which will be read into LoadUI memory upon execution (internally LoadUI uses the same execution engine for the SoapUI TestCase as is used in SoapUI), if the project file is updated on disk while LoadUI is running it will automatically reload the project to ensure that the latest version is being used.
The integration wizards in SoapUI basically all generate pre-configured SoapUI Runner components for you, either on their own or together with other components, depending on the wizard used. All the wizards need a running LoadUI instance for communicating the actual creation of components, projects, etc, so the first thing you will need to do is configure the path to your local LoadUI installation in the global LoadUI settings tab:
Once configured you can simply launch (or switch to) LoadUI by pressing the LoadUI button in the main toolbar (SoapUI will automatically launch LoadUI if required).
Run TestCase with LoadUI
This is the simplest integration available; it adds a SoapUI Runner for the current TestCase to the selected LoadUI Project and TestCase:
- In case there is a Project opened in LoadUI that project will be pre-selected and its contained TestCases will be pre-populated in the list.
- In case there is no project opened you will be asked to confirm if that project should be closed and SoapUI runner will be possible to add only to the project level.
Also you can select existing SoapUI runner in which case it will be updated with selected SoapUI Project and TestCase.
Generate LoadUI Tests
This is an option available at TestSuite level for adding multiple TestCases contained in selected TestSuite to LoadUI.
For each of selected TestCases a SoapUI runner is added on the level you choose.
Converting a LoadTest to LoadUI
This is the basic option for converting a SoapUI LoadTest to LoadUI. Depending on LoadTest strategy additional components corresponding to the SoapUI TestCase configuration are added to LoadUI project or TestCase;
- a SoapUI runner is created or updated
- a Load Generator component is added and configured corresponding to the selected strategy
- a Statistics component is added
- assertion components are added corresponding to the assertions in SoapUI
Convert multiple LoadTest on TestCase level to LoadUI TestCases
This is an option available on TestCase level of converting selected multiple LoadTests to LoadUI TestCases
Convert multiple LoadTest on TestSuite level to LoadUI TestCases
This is an option available on TestSuite level of converting selected multiple LoadTests to LoadUI TestCases