Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Может ли WebDriver работать с запросами?

soap
api
java
webdriver
http
Теги: #<Tag:0x00007fedbbd22e80> #<Tag:0x00007fedbbd22d40> #<Tag:0x00007fedbbd22c00> #<Tag:0x00007fedbbd22a98> #<Tag:0x00007fedbbd22958>

#1

Добрый день!

Нужна инфа по вопросу: Умеет ли webdriver работать с запросами браузера, т.е. у меня есть возвращаемые запросы с бэка, и могу ли я каким-то образом сверить с помощью webdriver’а, что мне отдается фронту с бэка, как то так.
Заранее благодарен.


(Yaroslav Pernerovskyy) #2

Может, но только через прокси, browsermob например


(Oleg Kuzovkov) #3

И причем тут драйвер?

Драйвер может работать через прокси, а уже сам прокси мониторит запросы, с которого можно доставать полученную информацию с бекенда.

Посмотрите тут


(Oleksandr Khotemskyi) #4

Нет не только через прокси, если используете chromedriver - все проще:

  1. Запускаем Chrome с дополнительными Capabilities:
    https://sites.google.com/a/chromium.org/chromedriver/capabilities

Нам нужен - perfLoggingPrefs object
enableNetwork - true

  1. Дальше собираем события -
    https://sites.google.com/a/chromium.org/chromedriver/logging/performance-log

(Nikita) #5

Боже, зачем вы предлагаете решение проблемы не верным путем.

Есть библиотеки типо rest-assured заточенные под тестирования запросов api
Можно взять уровень ниже и использовать библиотеки от apache commons.
В общем гугли automation testing api back-end


(Roy Obenon) #6

Вы знаете это сравнимо с тем, что нужно определить течь масла в двигателе, и в вашей реализации это выглядит так: разогнать машину на трассе до 100 км\ч и периодически смотреть под днище капота, не льется ли масло, можно? можно! но ЗАЧЕМ? Для проверки статусов и ответов служат апи тесты! Не нужно это делать с помощью селениума.


#7

Спасибо, но это я и так знал. Мне нужно это для проверки фронта с бэком, всё ли верно передается и отображается. Апи тесты и так есть.


(Roy Obenon) #8

ну так если не правильно будет, то ошибка взлетит)


(Yaroslav Pernerovskyy) #9

Это будет очень жестко )) там сам по себе перформанс лог огромный будет, а еще из него вычленять события нетворка. Даже не знаю… да и только в хроме работает…


(Oleksandr Khotemskyi) #10

Ничего вычленять не нужно (теоретически)

for (LogEntry entry : driver.manage().logs().get(LogType.NETWORK)) {
    System.out.println(entry.toString());
}

(vmaximv) #11

Вы на практике это пробовали - в рантайме определять какой респонс получил клиент?


(Oleksandr Khotemskyi) #12

Практические эксперименты, но без использования в реальном проекте. Хотя в реальных проектах использовал другие типы логов


#13

Если очень не хочется использовать прокси, то можно всё-таки заставить хром передавать нужную инфу.
Вот библиотечка - https://github.com/bayandin/devtools-proxy - Александр Баяндин автор
А вот доклад автора библиотеки на эту тему - https://www.youtube.com/watch?v=5wsLUtyA6ik

Сам не пробовал.

И тут сразу очевидный минус, по сравнению с прокси сервером - работать это будет только в chrome, в остальных браузерах - нет