Said
7 years agoContributor
How to do lookup of related data (from script)
Hi
I have the following teststeps in my testcase:
- GetBulkData (SOAP) that receives >3000 repeating elements
- VerifyInDb (groovy): loop through all the repeating elements and check if correctly transformed / stored in db
example of repeating elements
<ns0:EMPDATA> <ns0:EMPNO>1</ns0:EMPNO> <ns0:LASTNAME>Last Name Emp 1</ns0:LASTNAME> <ns0:CREWCODE>AAA</ns0:CREWCODE> <ns0:EMP_TYPE>COP</ns0:CREWTYPE> <ns0:AD_INDICATOR>D</ns0:AD_INDICATOR> <ns0:DATATIME>2018-09-24T02:00:00</ns0:ACTUALTIME> <ns0:POS_CODE>WJV</ns0:POSITIONING_CODE> </ns0:EMPDATA> <ns0:EMPDATA> <ns0:EMPNO>2</ns0:EMPNO> <ns0:LASTNAME>Last Name Emp 2</ns0:LASTNAME> <ns0:CREWCODE>BBB</ns0:CREWCODE> <ns0:EMP_TYPE>COP</ns0:CREWTYPE> <ns0:AD_INDICATOR>D</ns0:AD_INDICATOR> <ns0:DATATIME>2018-09-24T02:00:00</ns0:ACTUALTIME> <ns0:POS_CODE>ABC</ns0:POSITIONING_CODE> </ns0:EMPDATA>
For each <ns0:EMPNO> I need to make a call to "GetEmpData" SOAP call so that I can verify if <ns0:LASTNAME>, <ns0:CREWCODE> and <ns0:EMP_TYPE> are correct. I guess I need to manipulte the request (put employee Number in the request of "GetEmpData") and I need to have access to the response, so that I can verify elements <ns0:LASTNAME>, <ns0:CREWCODE> and <ns0:EMP_TYPE>.
I have found pages where you can set properties for other testcases / test steps and then run the test case.
import groovy.sql.Sql; import com.eviware.soapui.support.XmlHolder; def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ); def source = groovyUtils.getXmlHolder ( "GetBulkData#Response" ); def testCase = testRunner.testCase.getTestSuite().getTestCaseByName("support"); def testStep = testCase.getTestStepByName("GetEmpData"); holder = groovyUtils.getXmlHolder(testStep); // This gives ERROR
The last statement (holder = groovyUtiles...) gives error below:
groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.support.GroovyUtils.getXmlHolder() is applicable for argument types: (com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep) values: [com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep@68d5f584] Possible solutions: getXmlHolder(java.lang.String) error at line: 16
This is where I am stuck now. My questions:
- What is the best way to do a lookup call from script? The call needs to be done for each EMPDATA node.
- Can I get an example code to do this?
- If above is relevant, what do I need to do to resolve above error?