Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

WebDriver: Получение Json из некоторого action


(Sergey356) #1

Всем привет! :-) 

Пишу тесты на Java+Wedriver. Встала следующая задача. На сайте есть поле для ввода ключевого слова поиска, далее после набора текста, сервер сразу пресылает результат в формате Json и далее на стороне клиента JS рисует результаты поиска в удобном виде. 

Хотелось бы узнать, есть ли какой нибудь способ для получения этого Json, чтоб далее распарсить его и проанализировать?


(Shestavin) #2

Попробуй использовать прокси browsermob-proxy


(Mykhailo Poliarush) #3

можно еще выполнить executeScript  если вы знаете конкретную функцию которая возвращает текущий список результатов

а если выполняемая javascript функция возвращает JSON, то вернется строка в виде JSON. 

а дальше я думаю понятно, что нужно делать


(Sergey356) #4

К сожалению конкретную функцию я не знаю. К тому же Json формируеться на сервере. Яркий пример, о чем я говорю, можно посмотреть на примере сайта https://visa.qiwi.com/  Если в поле "Поиск" ввести провайдера, например "mts", то в Network можно увидеть, что с сервера пришел ответ json.action содержащий нужный Json. Вот с ним и хочеться поработать


(asolntsev) #5

Вопрос изначально поставлен неверно.

Тесты должны тестировать то, что видит пользователь. Если результаты поиска должны быть показаны на экране, допустим, в виде таблице, то и надо протестировать, что появится таблица с правильными данными. А то, каким образом она там появится - это детали реализации, это тестировать не нужно. Сегодня там JSon, завтра программисты решать использовать вместо него XML или ещё что-нибудь - тесты не должны от этого меняться. Функциональность же не изменилась. 


(Sergey356) #6

Понял, спасибо, что прояснили этот момент :-)


(Znammenosets9) #7

Ну то что касается части тестирования, не совсем соглашусь с предыдущим комментарием. Вопрос стоит в том что изначально тестируется. Если тестится сам ресурс, и система поиска то все верно, а если же нужно протестить API то порой действительно нужно вытаскивать определенные данные из Json. Как получить сам Json? я получал следующим образом:

Advanced rest client (https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo) это расширение для браузера которое позволяет отправлять HTTP запросы на указаный вами ресурс, а также увидить ответ (в вашем случае это и будет нужный вам Json)

Если не совсем понятно как обращатся к ващему сервису через API то это уже вопрос к разработчикам самого ресурса. 

P.S. а если нужно еще и обрабатывать Json (получать в виде переменной определенные поля/значения) то обратитесь к JS дэву который легко сделает Вам за 2-5 минут обработку вашего файлика)

WBR)