Добрый день!
Начал пробовать xml запросы в codeception, возникли проблемы с отправкой запроса. В тестовом классе для теста сделал $data с содержимым xml страницы
$o = new ApiTester($scenario);
$o->sendSoapRequest('search', $data);
$o->seeSoapResponseContainsXPath('//SomeField');
В файле конфигурации в endpoint указал адрес для wsdl запроса.
Тест фейлится на 2ом этапе т.к. не находит указанное поле, но тест фейлится почти мгновенно, а тестируемый сервис ответ даст только в течении 10 секунд. В логах тестируемого сервиса, нет запроса. Что я упустил? По документации не нашел.
И для отладки теста, было бы круто получить текст ответа в переменную, это возможно? В документации об этом ни слова(
Эту ошибку находил, проблема не в этом, во всяком случае я обновился до 213 и результат тотже. Но хотя бы на вскидку, я все учел? не понимаю что мог упустить. В пхп соап подключен… Где еще могут быть затупы?
Ничего не хочу сказать про Codeception, т.к. мало с ним знаком, но когда вы спрашивали совет по автоматизации в общих вопросах, то я вам “прозрачно” намекнул, что для удобства автоматизации и тестирования вам скорее всего подойдет SoapUI куда как больше. Там конечно хватает своих чудес, но если уж запрос ушел, то ушел. XML видно и легко редактировать прямо в самой среде. Причем можно менять значения как Request, так и Response, чтобы например, отладить “проверки” даже при неработающей тестовой среде, а потом когда выдадут “рабочий” билд, то на нем уже прогнать тесты с “правильными” проверками, чтобы они убедились, что исправления именно что исправили данный функционал.
Хотя выбирать конечно вам и не последнюю роль тут играет и личное восприятие инструмента. Если он по какой-то причине кажется “сложным”, “неудобным” и “непонятным”, то такая автоматизация будет идти через силу и не будет вызывать восторга ни у работника, ни у заказчика.
Ведется, но проблема как раз в том что запрос все таки не отправился, не понимаю почему. В этом как раз вопрос, что я не так настроил в кодецептионе.
Соап юи не вызывает восторга, попытки автоматизации вызывают. Проблем с заказчиками нет, я пытаюсь сам разобраться с автоматизацией в свободное время, применяя наработки к рабочему проекту.
В --debug режиме тоже ничего нет? Выложите сюда свой конфиг и лог выполнения теста
Сори, SOAP модуль давно не обвновлялся, я уже забыл что там может пойти не так. Скорее всего таки проблема с реквестом… Создайте пожалуйста Issue на гитхабе. Скорее всего помочь обнаружить что именно у вас идет не так не получится, но вот добавить какой-то инфы для отладки мы вполне сможем.
Веб сервисы SOAP являются более сложным случаем. Вам необходим PHP собранный с поддержкой SOAP. Кроме того необходимо хорошее знание XML soap.installation.php
Конфиг приложил выше, т.к. только разбираюсь с функционалом там 1 класс пока.
В дебаг режиме выяснилось, что в респонс попадает описание схемы, типо как если перейти по ссылке https://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl
В соапюи на этот адрес запроса нормально отправляются и при стандартном использовании __doRequest тоже все ок.
а почему он на один пробел съехал влево? Это ошибка в конфиге или при копировании? Если в конфиге, то могут быть проблемы )
Может ошибка из-за того, что endpoint включает в себя GET-параметр ’?wsdl’. Может без него попробовать?
EatsFullLemons
(Kirill “Eats Full Lemons” Fimchenko)
#10
Ошибка при попытке отформатировать конфиг для местного форума)
Гет нужен, т.к. в зависимости от гета будет другая схема типо domain?wsdl=search и domain?wsdl=book это разные схемы. Обычный соапклиент проглатывает такие урлы.
так и не понятно какая сборка PHP у вас используется. И еще, с не-SOAP сценариями на обычных страницах тесты работают из примеров?
если чутка привести конфиг к более хтоническому виду, то все также не работает? У скриптовых языков типа питона и php есть какая-то попаболь с пробелами и т.п.
EatsFullLemons
(Kirill “Eats Full Lemons” Fimchenko)
#12
Не понял вопроса, в пхп.ини соап у меня прописан и настроен, обычный соап клиент работает, об этом писал выше.
Поправил конфиг как в Вы указали, перебилдил проект, все равно в ответ получаю описание схему. Все таки наверно проблема в том что у меня урл до всдл адреса указан с гет параметром.
А если проверить на Soap сервисах других или на Mock-заглушках, только без гет параметра? Будет работать? Может и в этом проблема. Надо убедиться, что без параметра Soap у вас работает.