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

Время загрузки страницы в Хроме.


(Ильдар) #1

Всем привет.

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

Для IE данная задача решилась при помощи httpWatch для него существует плагин который интегрируется в VisualStudio, что позволяет данную задачу автоматизировать.

Вопрос. Подскажите, как это можно сделать для Chrome. Httpwatch не поддерживает Chrome. Естественно хочется не просто замерять время, но и сделать автоматизацию данного процесса.

Спасибо.


Доступ к status bar в IE для проверки, что страница загрузилась полностью
(Mykhailo Poliarush) #2

ну в хроме есть devtools где можно смотреть на загрузку страницы

F12 - попробуйте 


(Дмитрий Жарий) #3

 

Может быть, помогут следующие варианты:

Вы можете попробовать browsermob proxy, он специально предназначен для сбора статистики загрузки страницы.

.NET Bindings:

https://github.com/AutomatedTester/AutomatedTester.BrowserMob

Статья:

http://assertselenium.com/2012/11/02/performance-data-collection-using-browsermob-proxy-and-selenium/

 

Вы можете использовать FiddlerCore. Он специально не предназначен для подсчета статистики, тем не менее содержит много полезной низкоуровневой информации, например, время, когда запрос был отправлен от клиента, когда дошел до сервера, когда сервер вернул результат,  когда клиент получил ответ и т.д.

http://www.fiddler2.com/fiddler/Core/


(Ильдар) #4

Начал работать с данным приложением, возникло два вопроса.

1) сколько не искал, я так понял что для языка C#  экземпляр HarResult  (HarResult harData = client.GetHar();)  хранит в себе только лог, т.е. всю информацию, а именно время загрузки нужно вытаскивать оттуда. Или для С#  можно что-то придумать, чтоб получать har файлы в явном виде. Как для Java

 

Har har = server.getHar();
har.writeTo(filename);

 

2) Также возникла проблема с ChromeDriver. По скольку, не нашел аналога для этой строчки.

var profile = new FirefoxProfile();

OpenQA.Selenium.Chrome не содержит ChromeProfile.

Спасибо.

 


(Ильдар) #5

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

Пытался найти что-то с API не получилось.


(Дмитрий Жарий) #6

 

 

По первому пункту, для того чтобы получить JSON, подключите библиотеку:

using Newtonsoft.Json;

 

Далее можно серализировать HAR в строку и сохранить ее в файл:

// Get the performance stats

HarResult harData = client.GetHar();

string json = JsonConvert.SerializeObject(harData);

File.WriteAllText("my-har.har", json);

 

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