"Ожирение' фронтенда в наши дни - заболевание очень распространенное. Пациентов с таким диагнозом мы каждый день видим в окне браузера. Как противостоять распространению 'заболевания' и контролировать 'проблемных' пациентов? В своем докладе я расскажу Вам о том, как с помощью бесплатного инструмента sitespeed.io находить проблемы производительности фронтенда на ранних этапах разработки и в продакшн среде, как мониторить производительность на постоянной основе и создавать емкие и понятные отчеты для всех участников процесса разработки и эксплуатации.
9. Киев 2017
Об ожирении фронтенда
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Оригинальная статья
Перевод на Хабре
10. Киев 2017
Нам нужен фитнес-трекер
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
11. Киев 2017
Что измерять
• BackEndTime
• FrontEndTime
• First Visual Change
• Last Visual Change
• FullyLoaded
• Speed Index
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
12. Киев 2017
Цели
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Единоразовое измерение
Постоянный контроль прогресса
Демонстрация результатов
Обсуждение достижений
Сравнение с результатами других
13. Киев 2017
Наш выбор
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Sitespeed.io is a set of open-source tools
that helps make your web pages faster.
https://www.sitespeed.io
$ docker pull sitespeedio/sitespeed.io
14. Киев 2017
Возможности
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Браузер
• Chrome/
Firefox
• Профиль сети
• View port /
User agent
• Количество
итераций
• Запись видео
Интеграция
• Jenkins
• Graphite
• InfluxDB
• Grafana
• Slack
• Webpagetest
• Google Page
Speed Insight
Другое
• Краулер
• Android
• Performance
budget
15. Киев 2017
Опции
Параметр Описание
-b "chrome", "firefox"
-c "3g", "3gfast", "3gslow", "2g", "cable", "native", "custom"
-n: Number of iterations
--video Enable video recording
--preScript
--postScript
Path to selenium scripts
-d How deep to crawl
-m Max number of pages to test
-mobile Access pages as on fake mobile device
-h Show help
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Конфигурация
24. Киев 2017
Постоянный контроль
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Continuous integration
Установить и
запустить
Jenkins
Создать проект
Добавить build
step
Установить
Publish HTML
Reports плагин
$ docker run --privileged --rm
-v "$(pwd)":/sitespeed.io
sitespeedio/sitespeed.io
--outputFolder output
http://qafest.com
27. Киев 2017
Демонстрация результатов
Скачать docker-
compose файл
Выполнить
docker-compose
up –d
Запустить тест Открыть Grafana
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Performance dashboard
Docker compose file
docker-compose run sitespeed.io
http://qafest.com/
--graphite.host=graphite
30. Киев 2017
Обсуждение достижений
Тестирование и мониторинг производительности фронтенда с помощью sitespeed.io
Create a new app
on api.slack.com
Activate
incoming
webhooks
Add new
webhook to
workspace
Copy webhook
url and run the
test
$ docker run --rm sitespeedio/sitespeed.io
http://qafest.com/ --slack.hookUrl
https://hooks.slack.com/services/xxx/yyy
Slack configuration
This is the super simple version, leaving out all other tools that are used:
sitespeed.io gets a URL from the user
Open the browser
Start record a video of the screen
Access the URL in the browser
When the page is finished, take a screenshot of the page
Run some JavaScripts to analyze the page
Stop the video and close the browser
Analyze the video to get metrics like FirstVisualChange and SpeedIndex
Generate a HTML report and/or send the metrics to Graphite or store the metrics however you want, building your own plugin.
Enjoy!