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 に答える