MikeDally
11 years agoContributor
How do I automatically insert a REST test step into a SoapUI test using Groovy?
My team and I currently have a few hundred tests scripted which we want to start automating. Instead of manually creating test cases in SoapUI, I have written a script which generates test cases with default properties. My next task is to insert a sample request for every REST service we have defined in our SoapUI project; I'm not too sure where to start with the SoapUI Groovy API, but below is a sample of my test creation script so far:
import com.eviware.soapui.impl.wsdl.teststeps.registry.GroovyScriptStepFactory
import com.eviware.soapui.impl.rest.RestResource;
import com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory
import com.eviware.soapui.config.TestStepConfig
import com.eviware.soapui.impl.rest.RestRequest;
import com.eviware.soapui.impl.rest.RestService;
listOfTestCases = [
'Address Lookup with valid PostCode',
'Address Lookup with Valid CompanyName',
'Address Lookup with Valid Street',
'Address Lookup with Valid town',
'Address Lookup with Valid CompanyName & Postcode',
'Address Lookup with Valid Street & Postcode',
'Address Lookup with Valid Town & PostCode',
'Address Lookup with Valid CompanyName & Street',
'Address Lookup with Valid CompanyName & Town',
'Address Lookup with Valid Street & Town',
'Address Lookup with Valid Postcode, CompanyName, Street & Town']
for (String testCase : listOfTestCases) {
tc = context.testCase.testSuite.addNewTestCase(testCase)
tc.addProperty("testcycl-id")
tc.addProperty("cycle-id")
tc.addProperty("test-id")
tc.addProperty("run-id")
tc.addProperty("test-config-id")
tc.addProperty("test-step-id")
} My question is thus: For every test case I have created, how do I insert one of every REST request?
Hi guys,
Wow didn't realise this was such a thought-provoking post! :D
I have figured out what I need to do anyway, which involves numerous loops:
import com.eviware.soapui.impl.rest.RestResource; import com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory import com.eviware.soapui.config.TestStepConfig import com.eviware.soapui.impl.rest.RestRequest; import com.eviware.soapui.impl.rest.RestService; List<RestService> restServiceList = testRunner.testCase.testSuite.project.getInterfaceList() for(RestService restService : restServiceList){ operationList = restService.getOperationList() for(int indexOfOperation; indexOfOperation < operationList.size(); indexOfOperation ++){ RestResource resource = restService.getOperationAt(indexOfOperation); List<RestResource> requestList = resource.getRequestList(); for(int indexOfRequestList; indexOfRequestList < requestList.size(); indexOfRequestList++) restRequest = resource.getRequestAt(indexOfRequestList) testCaseName = resource.getName() TestStepConfig testStepConfig = RestRequestStepFactory.createConfig( restRequest, testCaseName ); testRunner.testCase.addTestStep( testStepConfig ) } }