Как получить http-ревесты и респонсы между браузером и тестируемым сайтом?


(Vladislav Abramov) #1

Мне от сайта приходит токен авторизации одной строкой в теле http-респонса. Могу ли я его как-то получить силами веб-драйвера, или мне надо городить прокси сервер и искать токен посреди всех http-запросов?

HTTP-vs-HTTPS


(Valentin G ) #2

Не знаю то же самое, что и у меня, но я мог достать из кукисов похожий токен в своей аппликации. Он там появлялся после авторизации. А куки я доставал из Драйвера, у него есть метод, позволяющий вытаскивать их.


(Ugin Berets) #3

По-моему puppeteer так умеет.


#4

WebDriver может сохранить кукис, а потом подгружать их с последующими запросами


(Vladislav Abramov) #5

на лету надо

в браузер приходит респонс, и мне надо из него строку вытащить


(Павел) #6

Без прокси сервера не обойтись, вебдрайвер не умеет перехватывать сетевой трафик браузера.
Рекомендую к ознакомлению:


(Vladislav Abramov) #7

ну я так и думал


(Юрий Аксютин) #8

Можно, если ваша страница, например логина, уже загружена и запросы отправляються через ajax. Я уже писал здесь:


(Alexander Raichman) #9

Если тестируете Джавой на Хроме то можно и без прокси: http://chromedriver.chromium.org/logging/performance-log


(Прокопук Дмитрий) #10

Есть несколько вариантов:

  1. browser mob proxy
  2. Performance logs, но обычно авторизация идёт через post, поэтому вариант не подойдёт, так при post response body не прочитать. Но так как токен авторизации есть в hesders, то можно достать оттуда
  3. Puppeteer
  4. Cypress
  5. Получить куку

(Raynor) #11

Если еще актуально.
WebDriver нормально работает с Cookie.
По вашему вопросу - https://www.lenar.io/jwt-token-from-browser-cookies-with-selenium/
Должно помочь. Правда на английском


#12

А для нативного мобайла (не браузер) Android\iOS кто-то решал подобные задачи? Сколько не гуглил, но так и не нашел инфы что кто-то смог Browsermob с Аппиумом подружить


(Savva Genchevskiy) #13

Всем привет. Скажу свою точку зрения после всего сказанного, возможно она все упростит…

  1. На счет BrowserMobProxy - давно и немного устаревший способ перехвата… Используется больше в очень узких целях для перфоманса… Думаю сейчас на много больше более годных инструментов… Во первых его трудно подключать, скорость падает и прочие минусы + логи, которые перехватываются, нужно как-то парсить, поэтому это вообще не вариант…
  2. На счет вебрайвера, и его возможностей, - если токен не пробрасывается в кукисах, то другого варианта нет… Смотреть в логи вебрайвера сервера и какие там запросы идут - тоже пустая трата времени…
  3. Единственный самый годный способ - подключить restassure, или okhttp, или retrofit или любую другую библиотеку для тестирования rest api, слать запрос и разбирать ответ, потом в селениуме при старте сессии что нужно пробрасывать -кукисы, Id сессии и что угодно

(Vladislav Abramov) #14

у меня все решилось административно:
фронтендерам спустили сверху задачу помочь мне в тестах, потому прокси не надо, корректируем поведение фронта скриптами


(Oleksandr Khotemskyi) #15

Слишком сложно. Я бы делал запрос через какую то библиотеку для работы c HTTP.