2015-03-02 2 views
4

Я делаю e2e-тесты для приложения, интерфейс которого написан в AngularJS, и эти тесты обычно включают заполнение форм, отправку данных на сервер, а затем обновление и убедитесь, что данные сохраняются. Тесты записываются в транспортир.Запись в xhr запросов при выполнении e2e-тестов с транспортиром

Один из этих тестов терпит неудачу, непоследовательно и без видимых причин, поэтому я хотел бы получить как можно больше информации для отладки. Поэтому мне было интересно, можно ли вообще регистрировать запросы xhr POST, которые мой внешний интерфейс отправляет в бэкэнд во время рассматриваемого теста, или еще лучше, могут ли быть захвачены и проверены данные, которые отправляются браузером изнутри транспортира? Возможно, используя объект browser? Я googled, и googled, но безуспешно.

Да, я понимаю, что тесты e2e предназначены только для взаимодействия с интерфейсом и что запросы ajax слишком низки для такого рода тестов. Да, возможно, удалил бы весь бэкэнд, и просто тестирование интерфейса было бы намного лучше. Но, пожалуйста, юмор меня. Можно ли получить информацию о том, что размещается браузером на сервере во время e2e-тестов с помощью транспортира?

ответ

2

Протранслятор использует API-интерфейс webdriverjs для «вождения» браузера, поэтому у него не будет доступа к какой-либо дополнительной информации, чем любое другое приложение Selenium webdriver. См. Документацию здесь: http://docs.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations

Вне некоторых API-интерфейсов для управления браузером (добавление файлов cookie, открытие новых вкладок) большинство функций в Protractor и WebdriverJS происходит от запуска фрагментов JavaScript в браузере (например, для проверки DOM). Таким образом, я не думаю, что любой из них подходит для перехвата сообщений между браузером и сервером.

Думаю, вам удастся использовать Protractor infrastructure for injecting code/modules into the app start (это лучший документ, который я могу найти для этой функции). Вы должны иметь возможность вводить модуль, который может вставляться в вызовы $http, регистрировать их по мере их поступления (или, конечно же, полностью издеваться над ними).

+0

Благодарим вас за четкое объяснение и извините за поздний ответ. Мой проблемный случай был успешно отлажен, но жаль, что у Protractor нет волшебного доступа к запросам и ответам, отправленным и полученным браузером. – azangru

Смежные вопросы