I am switching my team's automation tests to ReadyAPI 1.6.0 from SoapUI 5.2.1. We only have licenses for SoapUI NG Pro. The tests are run nightly on Jenkins running on a CentOS 6 box using a simple ant task that calls testrunner.sh. Unfortunately the time to run the tests is significantly worse with ReadyAPI (5 hours) compared to using SoapUI (50 minutes).
By analysing log files I have managed to find the culprit, and extract a minimal test suite demonstrating the issue. The minimal version takes 6 seconds in SoapUI and around 2 minutes in ReadyAPI. I would like to know what could be making it slow and what I can do about it.
Fundamentally I have
testCaseA (2 properties as inputs, 1 as output)
testStepB (disabled) set properties and run testCaseA
testStepC groovy method that calls testStepB using testRunner.runTestStepByName
testStepA has logging when it finishes
testStepC has logging as soon as its call has finished
snippet of log:
[exec] 09:14:24,942 INFO [SoapUIProTestCaseRunner] running step [Generate String] [exec] 09:14:24,959 INFO [SoapUIProTestCaseRunner] Running TestCase [Generate Randomised String] [exec] 09:14:24,959 INFO [SoapUIProTestCaseRunner] running step [Generate String] [exec] 09:14:24,960 INFO [log] Setting test case property [exec] 09:14:24,960 INFO [log] Finished setting test case property [exec] 09:14:27,890 INFO [SoapUIProTestCaseRunner] Finished running TestCase [Generate Randomised String], time taken: 0ms, status: FINISHED [exec] 09:14:28,366 INFO [log] finished call [exec] 09:14:28,367 INFO [log] 2932; newString: fixedString
As you can see from the highlighted times there is a significant delay before and after SoapUIProTestCaseRunner says the call has finished and the calling groovy script regains control.