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

Замерить время ожидания и чтения ответа от сервера

firebug
browsermob-proxy
webdriver
java
Теги: #<Tag:0x00007f7b6993bd68> #<Tag:0x00007f7b6993bbd8> #<Tag:0x00007f7b6993b7f0> #<Tag:0x00007f7b6993b4f8>

(Егор Уваров) #1

При нажатии на кнопку появляется спиннер (колесико загрузки). После его исчезновения обновляется страница. В данный момент тест на Selenium Webdriver замеряет время шага как ожидание исчезновения спиннера, это занимает около 15 секунд. Firebug показывает такое же время, но еще и разбивает его на фазы (ожидание, получение и т.д.). Каким образом это можно сделать в тесте? Пытался с помощью Navigation Timing API, он выдает неправильное время (1 секунду вместо 15). Также использовался BrowserMob Proxy, который выдает слишком много запросов и не удалось выделить нужный.


(Stan) #2

А что вы в winodws.perfomance замеряли? Если он выдает неправильное время, значит вы замеряли другой показатель. Замерить конкретно одно конкретное атомарное действие с помощью тайминг апи вряд ли получится. Почему просто не взять время после появления спиннера, время после его исчезновения и посчитать разницу? В той же джаве, например, http://www.tutorialspoint.com/java/lang/system_currenttimemillis.htm


(Егор Уваров) #3

Время между появлением и исчезновением спиннера замеряется. Мне была поставлена задача определить время загрузки HTML страницы без учета сети и всего остального. По идее Navigation Timing может это сделать, но скорее всего там несколько запросов, и как Вы уже сказали, он не может выцепить все, и ему нельзя задать какой-то конкретный. BrowserMob Proxy после теста выводит мне файл формата Har, где отображаются все запросы. Скорее всего можно как-то сделать, чтоб он выводил только необходимые запросы. В интернетах про эту ситуацию ничего нет


#4

Время исчезновения спиннера, скорее всего, связано с запросом. А вот время появления - необязательно. Так как на странице может происходить еще работа каких-то скриптов, и в результате спиннер стартует раньше или позже фактического времени запроса. То есть, BrowserMob не очень удобен.

Сам WebDriver тоже обычно точные замеры не дает проводить.

Но есть такой момент, как бизнес-смысл этого теста. Может быть, действительно важно и критично время прохождения запроса, а не спиннер? Тогда можно мерять и через BrowserMob, а лучше даже через тул для тестирования производительности.

Если же нужно замерять именно время появления спиннера, попробуйте разобраться в JS-коде, отвечающем за его отображение, и поставить перехватчики на эти методы. С клиентским кодом можно много чего делать, если только он не обфусцирован, конечно.


(Stan) #5

Мне была поставлена задача определить время загрузки HTML страницы без учета сети и всего остального.

Значит вы замеряете не те параметры. Какие параметры вы считали?