2013-05-10 4 views
1

У меня есть некоторые регрессионные тесты для веб-службы, чтобы убедиться, что мы возвращаем ошибки, когда требуемые поля отсутствуют. Когда отсутствуют параметры запроса (например, http://dummyurl.com?someRequiredParameter=something), все работает нормально. Когда требуемые параметры пути отсутствуют (например, http://dummyurl.com/requiredPathParameter/somethingelse), тест работает правильно в приложении SoapUI, но сбой при запуске из Maven. Я вижу ошибки в выходе, когда он пытается запросить эти плохие URL-адреса, но есть ли что-то другое в ответе (должен ли я проверять 500-е с сервера) или какую-то другую информацию, которую мне нужно настроить, чтобы тесты проходили в обоих SoapUI и Maven?Плагин Maven SoapUI, тестирование отсутствующих параметров пути

EDIT

Полная ошибка:

16:07:38,672 ERROR [WsdlSubmit] Exception in request: org.apache.commons.httpclient.URIException: escaped absolute path not valid 
16:07:38,672 ERROR [SoapUI] An error occured [escaped absolute path not valid], see error log for details 
org.apache.commons.httpclient.URIException: escaped absolute path not valid 
    at org.apache.commons.httpclient.URI.setRawPath(URI.java:2837) 
    at org.apache.commons.httpclient.URI.parseUriReference(URI.java:2023) 
    at org.apache.commons.httpclient.URI.<init>(URI.java:147) 
    at org.apache.commons.httpclient.HttpMethodBase.getURI(HttpMethodBase.java:265) 
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:383) 
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:194) 
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:123) 
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:76) 
    at com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:208) 
    at com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:753) 
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runTestStep(WsdlTestCaseRunner.java:207) 
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:138) 
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.internalRun(WsdlTestCaseRunner.java:39) 
    at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:139) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:679) 
16:07:38,673 INFO [SoapUIProTestCaseRunner] Assertion [Match content of [Fault]] has status UNKNOWN 
+0

Не могли бы вы добавить код для теста, который не прошел? – ssedano

+0

Я попытаюсь добавить код позже, VPNing отсюда в значительной степени разрушает мою способность достигать любого хоста. Но это в основном, если (requiredPathParameter == null) {throw buildInformativeExceptionHere («Отсутствует требуемый параметр», параметр). Проблема заключается в том, что данный параметр является частью вызова REST API и отсутствует. –

+0

Добавить -X в линию maven (отладить), затем посмотреть фазовый выход – ssedano

ответ

0

Мне в конечном итоге пришлось отключить тесты, о которых идет речь. Похоже, приложение SoapUI может обрабатывать отсутствующие параметры пути, но плагин maven не может.

Если появляется новый ответ, в котором объясняется, как проверить это с помощью плагина SoapUI maven, я дам ему попробовать и (надеюсь) сделать его принятым ответом.

0

Поведение должно быть одинаковым.

Проверьте файл журнала, сгенерированный плагином SOAPUI Maven. Он содержит для каждого теста код возврата. Если на стороне сервера есть ошибка, вы должны найти 500.

В вашем тестовом кейсе уже содержится подтверждение проверки кода возврата?

+0

В сообщении об ошибке нет кода, но это просто «ERROR [SoapUI] Произошла ошибка [избежал абсолютного пути недействителен], см. Журнал ошибок для получения информации org.apache.commons.httpclient.URIException: escape-путь недействителен" , Я обновил вопрос с полной трассировкой стека. И да, я уже проверяю код возврата. –