Forum Discussion

VijayKumarS's avatar
VijayKumarS
New Contributor
5 years ago

Displaying Log Output as null when trying to set node value using groovy script

import com.eviware.soapui.support.XmlHolder
import com.eviware.soapui.impl.wsdl.testcase.WsdlTestRunContext

 

def request1 = testRunner.testCase.testSuite.testCases["GetEmp"].testSteps["GetEmpDtls"].getPropertyValue("Request")

 

def xml1= new XmlHolder(request1)

 

def getnode1=xml1.getNodeValue("saxon:parse(//tem:GetEmp/tem:InputParameters)//USER_ID")
log.info ("GetNodeValue : " +getnode1)

 

def setnode1=xml1.setNodeValue("saxon:parse(//tem:GetEmp/tem:InputParameters)//USER_ID" , "JACK")
log.info ("SetNodeValue : " +setnode1)

 

Log Output:
Mon Mar 09 16:29:48 IST 2020:INFO:GetNodeValue : test
Mon Mar 09 16:29:48 IST 2020:INFO:SetNodeValue : null

 

Expected Logt Output is : SetNodeValue : JACK, BUT Actual Log Output is : SetNodeValue : null
I want to set the node value in above scenario, why null value is displaying?, can you provide solution for above senario.

 

In above script emoji icons are displaying, please find the attached script file.

 

  • nmrao's avatar
    nmrao
    Champion Level 3
    Edit: missed not earlier.
    The set method may not be returning any value. Please check javadoc of api
    • VijayKumarS's avatar
      VijayKumarS
      New Contributor

      Thank you Rao, can you provide any sample code for this.

       

      Regards

      Vijay

      • rajulapati's avatar
        rajulapati
        Contributor

        Hi VijayKumarS  ,

        Your code shold be something  like this

         

        def request1 = testRunner.testCase.testSuite.testCases["GetEmp"].testSteps["GetEmpDtls"].getPropertyValue("Request")

         

        def xml1= new XmlHolder(request1)

         

        def getnode1=xml1.getNodeValue("saxon: parse(//tem:GetEmp/tem:InputParameters)//USER_ID")
        log.info ("GetNodeValue : " +getnode1)

        -- In this line you are setting the node, it will not return any value

        xml1.setNodeValue("saxon: parse(//tem:GetEmp/tem:InputParameters)//USER_ID" , "JACK")

        -- Here you to have get the node value after setting it.

        def setnode1=xml1.getNodeValue("saxon: parse(//tem:GetEmp/tem:InputParameters)//USER_ID")
        log.info ("SetNodeValue : " +setnode1)

         

        -Ashwin

        Please give a Kudo and accept it as a solution if this works.