SoapUI on MacOS: slow panel/window movements, progressively slower as windows added
SoapUI on macOS is painfully slow to use, mainly in terms of window (panel) manipulation. E.g.: if I have two or three (or five) test panels open, and try to move them around, it becomes a slideshow. Even moving a single (1) window around is slow, with window movement lagging far behind the mouse. More windows makes it worse. This also applies to bring windows to the foreground or background. I've tried the 'disable the embedded browser UI features' fixes as described => here <= to no avail. I've also tried various tricks to get SoapUI to use my OS specific Java as provided on macOS, and that seemed to make zero difference as well. interestingly, windows like the preferences window that open 'outside' the SoapUI panel desktop seem to be quite performant; it is only the test panels that are herky-jerky to the point of being unusable once half a dozen or so are active I'm running on macOS Mojave (10.14.5) on a macBook Pro with 16 GB of RAM and an 500 GB SSD. I've been observing this performance issue on macOS through several versions of SoapUI and several OS updates, so this is not a new problem. I'm using the Open Source version of SoapUI, version 5.5.0. The performance problem is bad enough that I'd happily pay for the full license to resolve it. But I've seen no evidence to suggest that this investment would be worthwhile.1.8KViews1like1CommentUse groovy to run sequentialy loadtests
I use soapUI 5.2.1. I have TestSuite with 4 TestCases and each TestCase has N test steps. For each TestCase I define one loadTest. My goal it's to run loadtest on each test step to get some stats about the perf of the request. To do that, I use groovy script (run 4 TestCases) : import com.eviware.soapui.impl.wsdl.loadtest.strategy.* import com.eviware.soapui.support.xml.* import com.eviware.soapui.config.* import com.eviware.soapui.model.settings.Settings; import com.eviware.soapui.settings.HttpSettings; import com.eviware.soapui.impl.wsdl.loadtest.*; import java.util.Date; //define constants final int NB_THREADS = 20; final int NB_TIME = 300; def startDate = new Date(); final String PATH_RESULT = "result_"+startDate.format("yyyy-MM-dd-HH-mm")+".txt"; // create groovyUtils and XmlHolder for response of Request 1 request def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ); def testCases = context.testCase.testSuite.getTestCaseList(); //create burstStrategy def xmlobjBuilder = new XmlObjectConfigurationBuilder(); def xmlobj = xmlobjBuilder.add("burstDuration", "10").add("burstDelay", "0").finish(); fos = new FileOutputStream( PATH_RESULT, false ) String conf = "THREADS : " + NB_THREADS + " TIME : " + NB_TIME + "\n"; fos.write(conf.getBytes()); for (def testCase : testCases){ if (testCase.getLabel().equals("PERF-SIGDOC-RUNNER")){ break; } def loadtest = testCase.getLoadTestByName("perf"); log.info(testCase.getLabel()); fos.write(testCase.getLabel().getBytes()); fos.write("\n".getBytes()); def testSteps = testCase.getTestStepList(); //disable all teststeps for (def teststep : testSteps){ teststep.setDisabled(true); } //call loadtest int i=0; for (def teststep : testSteps){ teststep.setDisabled(false); //set loadtest strategy loadtest.setHistoryLimit(0); loadtest.setLimitType(LoadTestLimitTypesConfig.TIME); loadtest.setTestLimit(NB_TIME); loadtest.setThreadCount(NB_THREADS); Settings settings = loadtest.getSettings(); settings.setBoolean( HttpSettings.INCLUDE_REQUEST_IN_TIME_TAKEN, false ); settings.setBoolean( HttpSettings.INCLUDE_RESPONSE_IN_TIME_TAKEN,false ); def burstloadStrat = new BurstLoadStrategy(xmlobj, loadtest); loadtest.setLoadStrategy(burstloadStrat); //run loadtest WsdlLoadTestRunner loadTestRunner = new WsdlLoadTestRunner(loadtest); loadTestRunner.start(true); loadTestRunner.waitUntilFinished(); //write TPS def statisticsModel = loadtest.getStatisticsModel(); def data = "\t"+statisticsModel.getValueAt(i, 1) +";" +statisticsModel.getValueAt(i, 7) +";" +statisticsModel.getValueAt(i, 10) + "\n" log.info(data); fos.write(data.getBytes()); teststep.setDisabled(true); i++; loadTestRunner.release(); } loadtest.release(); } fos.flush(); fos.close(); With this script , I have a problem . After a moment , the performance fall to zero in terms ofTPS stats. After using the script, I raised the loadloat (without groovy) on TestSTEPS that have inconsistent values , and I get consistent values . Does anyone has any idea about that ?1.3KViews0likes0Comments