Ask a Question

Fails to import WSDL file when running in groovy. Works in SoapUI Ui

xworker
Occasional Contributor

Fails to import WSDL file when running in groovy. Works in SoapUI Ui

Hi

 

I have a WSDL file which I am trying to import and parse from groovy. I works thru the SoapUI GUI but not thru the groovy script. The error I get is:

 

[SoapMessageBuilder] Could not find element [{http://schemas.xxx.com/service/CardServiceRequest/1.0}BlockCardsRequest] specified in part [blockCardsRequestPart]
11:26:18,694 ERROR [WsdlTestRequestStep] Could not find operation [blockCards] in interface [__soap_CardServiceESB_CardServicePT] for test request [null] in TestCase [__soap_CardServiceESB_CardServicePT TestSuite/blockCards]
11:26:18,700 ERROR [SoapUI] An error occurred [Cannot invoke method setName() on null object], see error log for details
java.lang.NullPointerException: Cannot invoke method setName() on null object

The groovy code:

 

def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def projectPath = groovyUtils.projectPath //gets the path of the project root	


	def wsdlUrl = testRunner.testCase.testSuite.project.getPropertyValue( "WSDL_url" )
	//wsdlUrl ="/CreditApplicationServicePS.wsdl"
     log.info(wsdlUrl)
	def project = context.testCase.testSuite.project

	
	WsdlProject wsdlProject = new WsdlProject(project.getPath());
	
	WsdlInterface wsdl = WsdlInterfaceFactory
                .importWsdl(wsdlProject, wsdlUrl, true)[0];  
	
	//create and add a test suite to the project
	def suiteName =wsdl.getName()+" TestSuite"
   	WsdlTestSuite testSuite = project.addNewTestSuite(suiteName);
        testSuite.setName(suiteName);

	def i

    for (i = 0; i < wsdl.getOperationCount(); i++) {
        
        //get the operation and its name
        WsdlOperation operation = wsdl.getOperationAt(i);
        def opName = operation.getName();

        //add a testcase and teststeps
        def testStepConfig =   WsdlTestRequestStepFactory.createConfig(operation, opName);
        def testCase = testSuite.addNewTestCase(opName);
        def testStep = testCase.addTestStep(testStepConfig);
        testStep.setName(opName);
        
        def inputHolder = opName + "#Request"
        def holderRawReq = groovyUtils.getXmlHolder(inputHolder)
        
  }

Is there any options to set to make the wsdl importer be less strict?

 

0 REPLIES 0
cancel
Showing results for 
Search instead for 
Did you mean: