Загрузить файл в soapUI

Я загружаю файл в нашу службу загрузки с помощью soapUI. Файл будет загружаться правильно при вызове инструмента через графический интерфейс. Однако мы вызываем версию командной строки из нашего фреймворка.

Похоже, что вызов командной строки soapUI не может правильно построить Content-Disposition в HTTP-запросе, и когда он пытается добавить параметр «имя файла», возникает исключение, поскольку это неожиданно. Вот трассировка стека:

14:33:51,358 ERROR [SoapUI] An error occured [Expected ';', got "filename"], see error log for details
javax.mail.internet.ParseException: Expected ';', got "filename"
    at javax.mail.internet.ParameterList.<init>(ParameterList.java:280)
    at javax.mail.internet.ContentDisposition.<init>(ContentDisposition.java:96)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1338)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1008)
    at javax.mail.internet.PreencodedMimeBodyPart.updateHeaders(PreencodedMimeBodyPart.java:117)
    at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:414)
    at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1285)
    at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2071)
    at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2039)
    at com.eviware.soapui.impl.wsdl.submit.filters.HttpRequestFilter.filterHttpRequest(HttpRequestFilter.java:240)
    at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterAbstractHttpRequest(AbstractRequestFilter.java:41)
    at com.eviware.soapui.impl.wsdl.submit.filters.AbstractRequestFilter.filterRequest(AbstractRequestFilter.java:31)
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:130)
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:122)
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:75)
    at com.eviware.soapui.impl.support.http.HttpRequest.submit(HttpRequest.java:258)
    at com.eviware.soapui.impl.wsdl.teststeps.HttpTestRequestStep.run(HttpTestRequestStep.java:253)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runTestStep(WsdlTestCaseRunner.java:193)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:124)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:39)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:137)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.start(AbstractTestRunner.java:80)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.run(WsdlTestCase.java:578)
    at awris.product.testengine.commands.service.SoapUICommand$BetterSoapUITestCaseRunner.runTestCase(SoapUICommand.java:303)
    at com.eviware.soapui.tools.SoapUITestCaseRunner.runRunner(SoapUITestCaseRunner.java:318)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:133)
    at awris.product.testengine.commands.service.SoapUICommand.execute(SoapUICommand.java:76)
    at awris.product.testengine.TestRunner.executeCommands(TestRunner.java:123)
    at awris.product.testengine.TestRunner.doTest(TestRunner.java:87)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:609)
    at org.testng.internal.MethodHelper$1.runTestMethod(MethodHelper.java:727)
......

Когда тест запускается, файл не загружается, потому что вложение отсутствует из-за выдувания конструкции заголовка. Почему это происходит при вызове командной строки, а не в графическом интерфейсе, и как это исправить?


person Fergal    schedule 16.03.2011    source источник


Ответы (1)


Хорошо, я нашел решение сам. Версия графического интерфейса soapUI, которую я использовал, была 3.6.1, а версия вызова командной строки была 3.0.1, в которой была ошибка, предотвращающая неправильное построение Content-Disposition для запросов на загрузку файлов. то есть он не включает параметр имени файла в Content-Disposition.

Обновление версии до 3.6.1 исправило проблему для меня.

person Fergal    schedule 17.03.2011