LoadTests, especially when run over a longer period, can consume quite a lot of memory. Fortunately there are several options to minimize this behaviour, let's have a quick run-through of them.
The LoadTest Options dialog has two settings related to memory consumption;
- Disable History - turns off internal collection of historical statistics which is the data underlying the available diagrams. Selecting this option will therefore disable the diagrams in the UI, if you still need access to this data use the continuous statistics exporting functionality in the "Statistics Log" tab of the LoadTest Options dialog.
- Max Assertions in Log - sets a limit on how many assertion failures that will be saved in the LoadTest log; these can consume quite a lot of memory since the hold on to the underlying TestStep data for the corresponding TestStep execution.
In soapUI Pro, the printable reports also gather ongoing execution data, you can disable these with the Disable Reporting setting in the global Preference soapUI Pro Settings tab;
The Complete Error Logs option can also be used to minimize error data collected for assertion, uncheck this option and leave reporting enabled if basic TestStep properties are sufficient in your reports.
The underlying TestCase "Discard OK Results" option does not apply during LoadTests; OK results are always discarded during LoadTest execution since the can not be visualized in the UI.
Be sure to use the memory log at the bottom of the main window to monitor memory consumption;
Since soapUI automatically runs the Java Garbage Collector, you will (hopefully) see drops in the allocated memory during the execution of your LoadTest, you can trigger the Garbage Collector manually by right-clicking in the memory log and selecting "Run GC".
That's it! Combining the above with general increase in memory settings should keep most memory issues at bay, and if they don't please let us know so we can improve this even more!
TestStep Discard Responses
If you want to discard responses in order to bring memory usage down, you also need to configure that on the TestStep level.
Make sure that Discard Responses set to True for the involved TestSteps.