Forum Discussion

Wilco_Schreurs's avatar
Wilco_Schreurs
New Contributor
18 years ago

Saving attachments automatically

I am testing a webservice that returns an attachment (MIME).
Is there a way to automatically save the retrieved attachment, preferably to a filename and folder that I can specify.
I know I can manually save attachments, but I would like to do that automatically, as part of a testsuite>testcase>teststep.
Maybe by using a particular assertion script?
  • omatzura's avatar
    omatzura
    Super Contributor
    Hi!

    sure.. create a groovy script step after your request and use something like the following:

    def testStep = testRunner.testCase.getTestStepByName( "request.." )
    def response = testStep.testRequest.response

    def outFile = new java.io.FileOutputStream( "myfile..")
    def in = response.attachments[0].inputStream

    com.eviware.soapui.support.Tools.writeAll( outFile,  in )


    Hope I got that right.. :-)

    regards!

    /Ole
    eviware.com
    • nmrao's avatar
      nmrao
      Champion Level 3

      Thank you for the code snippet. Found that few changes needed though :

       

      1. 'in' is a groovy keyword

      2. both in and out streams to be closed, otherwise content is not save and not allowed to open file.

       

      Here is the updated script, using it as script assertion:

      def response = messageExchange.response
      assert null != response, "response is null"
      def outFile = new FileOutputStream(new File(System.getProperty('java.io.tmpdir')+'/test.zip'))
      def ins = messageExchange.responseAttachments[0].inputStream
      if (ins) {
         com.eviware.soapui.support.Tools.writeAll( outFile,  ins )
      }
      ins.close()
      outFile.close()

       

      • bkbn16's avatar
        bkbn16
        Contributor

        Hi guys,

         

        I am complete newbie to this SOAPui. I am trying to get the same response MIME image/jpeg file as attachment. I have attached the jpeg file in the request area. Can you give me a detailed step on how to do this ?