ContributionsMost RecentMost LikesSolutionsRe: Groovy Datasource fails after several runs I would prefer to use a JSON datasource. The problem was I had three separate teststep responses that I wanted to aggregate into one datasource. Is there a way to do this other than a groovy datasource? Groovy Datasource fails after several runs I have a Groovy Datasource that combines the responses from several previous http requests into a single datasource. It works great the first few times that the test is run but after a few times it starts failing and generates a NullPointerException. If I restart SoapUI it starts working again for a few runs. The error log: Thu Sep 29 10:42:41 MDT 2016:ERROR:java.lang.NullPointerException java.lang.NullPointerException at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.setVariable(SoapUIGroovyScriptEngine.java:146) at com.eviware.soapui.impl.wsdl.teststeps.datasource.GroovyDataSource.next(GroovyDataSource.java:73) at com.eviware.soapui.impl.wsdl.teststeps.WsdlDataSourceTestStep.c(WsdlDataSourceTestStep.java:586) at com.eviware.soapui.impl.wsdl.teststeps.WsdlDataSourceTestStep.b(WsdlDataSourceTestStep.java:565) at com.eviware.soapui.impl.wsdl.teststeps.WsdlDataSourceTestStep.a(WsdlDataSourceTestStep.java:752) at com.eviware.soapui.impl.wsdl.teststeps.WsdlDataSourceTestStep.next(WsdlDataSourceTestStep.java:762) at com.eviware.soapui.impl.wsdl.panels.teststeps.DataSourceDesktopPanel$TestAction.actionPerformed(DataSourceDesktopPanel.java:520) at com.eviware.soapui.impl.wsdl.panels.teststeps.DataSourceDesktopPanel$TestAction.actionPerformed(DataSourceDesktopPanel.java:1) at com.eviware.soapui.impl.wsdl.actions.iface.AbstractSwingAction.actionPerformed(AbstractSwingAction.java:62) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$500(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) My Datasource code: import groovy.json.JsonSlurper def responseOne = context.expand( '${Request One#Response}' ) def responseOneJson = new JsonSlurper().parseText(responseOne) def responseTwo = context.expand( '${Request Two#Response}' ) def responseTwoJson = new JsonSlurper().parseText(responseTwo) def responseThree = context.expand( '${Request Three#Response}' ) def responseThreeJson = new JsonSlurper().parseText(responseThree) //verify the slurper isn't empty assert !(responseOneJson.isEmpty()) && !(responseTwoJson.isEmpty()) && !(responseThreeJson.isEmpty()) def row = testRunner.testCase.testSteps["Data Source"].currentRow def numOfRows = 5 def responseOneSize = responseOneJson.value.size() def responseTwoSize = responseTwoJson.value.size() def responseThreeSize = responseThreeJson.value.size() if((row + 1) <= numOfRows){ // output to the test step property in the result map result["Id One"] = responseOneJson.value[row % responseOneSize].id result["Id Two"] = responseTwoJson.value[row % responseTwoSize].id result["Id Three"] = responseThreeJson.value[row % responseThreeSize].id } Find a way to allow execution of Soapui tests containing manual test steps via QAC I'm not sure the best way to do this but it would sure be nice to execute my SoapUI tests that contain manual testSteps via QAC so that I can more easily track results. Allow adding Test Sets to Test Sets This would allow creation of a super Test Set, made up of other test sets without having to add each test to it individually, and prevent having to update multiple test sets when one test is added. Re: Simplify method for adding multiple automated tests to the test library. Any way to import lots of ReadyAPI or TestComplete tests into QAComplete would be very helpful. Re: Generic assertion. Being able to apply a single assertion over mutliple steps, cases, suites would be helpful especially if it changes so you only have to update one spot instead of each test step. Re: QAComplete sync with JIRA, how can we sync the folders? I've tried all sorts of combinations. I would also like to be able to do this, so far I have been unsuccessful. I am using the latest version of the Jira Connector.