Я тестирую XML и JSON REST API с Behat. Для аутентификации я использую часовой. Теперь, если я вхожу в систему через Behat и проверяю состояние сеанса входа в систему, API возвращает отрицательный ответ (например, пользователь не вошел в систему). Когда я делаю то же самое вручную в браузере, используя запросы AJAX, все работает нормально. Таким образом, конечный результат в порядке, но сценарий не удается. Любые предложения о том, как преодолеть эту проблему?
ОБНОВИТЬ:
Я подробнее расскажу о настройке приложения, которое основано на Тонкий, прут, красноречивый а также часовой.
API имеет несколько маршрутов для создания, отображения (да или нет) и удаления сеанса пользователя. Таким образом, вход в систему пользователя осуществляется путем размещения адреса электронной почты и пароля для /session.json
или же /session.xml
, За кулисами контроллер будет в основном вызывать Sentinel::authenticate(...)
,
Все это прекрасно работает в браузере. Если я выполню запрос GET /session.json
, Я увижу, что пользователь залогинен правильно. Если я выполню те же действия с Behat, я получу правильное возвращаемое значение в запросе POST, поэтому Sentinel говорит, что пользователь вошел в систему. Но запрос GET сообщит мне, что пользователь не вошел в систему.
Чтобы дать вам представление, сценарий Behat выглядит примерно так:
Scenario Outline: Logging in a user
Given I have a user with "<email>" and "<password>"And I use the "<format>" format
When I log in the user with "<email>" and "<password>"Then the "success" message should be "session.active"
Examples:
| email | password | format |
| a@b.c | 32165487 | xml |
| c@b.a | 89056734 | json |
В контексте я использую Запросы библиотека для выполнения запросов. Так что Бехат действует как постоянный клиент.
Не могли бы вы дать больше информации о настройке беата? behat.yml и версия, расширения?
Других решений пока нет …