我正在通过SoapUI(而非Pro)中的WSDL定义接口执行一系列文件上传和下载。验证这些附件的内置断言是不够的。我发现了一些Groovy代码,可以让我获得上传附件的大小。
import com.eviware.soapui.impl.wsdl.support.RequestFileAttachment
def uploadsize = testRunner.testCase.getTestStepByName("Upload File (200KB)").testRequest.getAttachmentAt(0).getSize()
我正在寻找可比较的代码来获取下载附件的大小。 HTTP标头指定内容类型是“multipart / related”和UTF-8。附件本身是“Content-Type:application / octet-stream \ n Content-Transfer-Encoding:binary”
我已经尝试了以下代码片段,但它没有给我附件的大小,只是响应的大小。
def downloadsize = testRunner.testCase.getTestStepByName("Download File (200KB) (Logged)").testRequest.response.contentAsString.size()
答案 0 :(得分:4)
由于SoapUI Groovy类的文档充其量是迷宫式的,我使用内省来找出我正在使用的类:
log.info testRunner.testCase.getTestStepByName("Download File (200KB) (Logged)").testRequest.class.name
log.info testRunner.testCase.getTestStepByName("Download File (200KB) (Logged)").testRequest.response.class.name
产生:
com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequest
com.eviware.soapui.impl.wsdl.submit.transports.http.support.attachments.WsdlMimeMessageResponse
现在不需要猜测要查找哪个类。
附件大小的结果代码为:
def downloadsize = testRunner.testCase.getTestStepByName("Download File (200KB) (Logged)").testRequest.response.getAttachments()[0].getSize()