2

我正在通过 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()
4

1 回答 1

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()
于 2013-04-30T18:07:30.800 回答