Forum Discussion

shabar's avatar
shabar
Contributor
12 years ago

[Res] Groovy script conext error

Hi

I am trying to execute following script to update headers and running this as a step in one of the test cases


import com.eviware.soapui.impl.wsdl.teststeps.*


def valueOf = { key -> testSuite.getPropertyValue( key ) }

testSuite.testCaseList.each { testCase ->
testCase.testStepList.each { testStep ->
if( testStep instanceof WsdlTestRequestStep || testStep instanceof RestTestRequestStep ) {
def headers = [ (valueOf( "name190" )) : [ valueOf( "ExampleHeaderValue" ) ] ]
log.info("Setting HTTP headers ${headers} in test case ${testCase.label}")
testStep.testRequest.requestHeaders = headers
}
}
}



But I am getting following error


Sat Feb 22 20:38:06 EST 2014:ERROR:groovy.lang.MissingPropertyException: No such property: testSuite for class: Script18
groovy.lang.MissingPropertyException: No such property: testSuite for class: Script18
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
at Script18.run(Script18.groovy:7)


To my knowledge this could be a context issue

If so please let me know how it can be fixed and if any links to understand the API design for context change


Cheers

4 Replies

  • PaulDonny's avatar
    PaulDonny
    Regular Contributor
    Your not accessing the testSuite property correctly.

    testRunner.testCase.testSuite.
    • arpit1708's avatar
      arpit1708
      Visitor

      Hi I am getting below error while trying to add header to the REST request

       

      Code used

       


      def Header = testRunner.testCase.testSteps['Properties'].getPropertyValue("X-tokenHeader")
      def value = testRunner.testCase.testSteps['Properties'].getPropertyValue("Value")
      def headers =testRunner.testCase.testSteps['RunService'].requestHeaders
      headers.put( Header, value )
      testRunner.testCase.testSteps['RunService'].requestHeaders = headers

       

       

      Error:

       

      groovy.lang.MissingPropertyException: No such property: requestHeaders for class: com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep error at line: 4  

       

      Refer Attached

      • PaulMS's avatar
        PaulMS
        Super Contributor

         

        Call testRequest before requestHeaders

         

        def Header = testRunner.testCase.testSteps['Properties'].getPropertyValue("X-tokenHeader")
        def value = testRunner.testCase.testSteps['Properties'].getPropertyValue("Value")
        def headers =testRunner.testCase.testSteps['RunService'].testRequest.requestHeaders
        headers.put( Header, value )
        testRunner.testCase.testSteps['RunService'].testRequest.requestHeaders = headers