t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f7485fd66b8> #<Tag:0x00007f7485fd65f0> #<Tag:0x00007f7485fd6500> #<Tag:0x00007f7485fd6410>

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

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

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

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

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

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

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

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

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