Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте
Selenium нетрадиционной ориентации или
Тестирование производительности Javascript на клиенте
О себе
• В IT c 2006• В автоматизации
тестирования с 2007
• Руковожу автоматизацией с 2009
@PapaMinos
2
Когда-то давно…
3
UI – сейчас…
4
GWT ???
5
Google Web Toolkit
Server Side – Java
Client Side – Java (JavaScript)
SWING style
6
Почему это важно
7
8
Метрики
9
Navigation Timing API– Firefox 7.0 +– Google Chrome 6.0 +– Internet Explorer 9.0 +
http://www.w3.org/TR/navigation-timing/
Как собрать метрики
10
В реальности…
11
Более подробно
12
Но есть один момент… (с)
13
• уже на продакшене• реактивные меры после релиза• средняя температура по больнице –
36,6
Сбор метрик с пользователей
14
• исполнять JavaScript• учитывать сетевые особенности
пользователей• учитывать программно-аппаратные
особенности
Собирать метрики до того как…
15
16
Фермы
• 100 % virtualization (VMWare)
• Jenkins – Remote Control
• Windows, Linux, Zabbix monitoring
• Infrastructure – Squid, Artifactory, iptables
17
Цели
18
Обычное выполнение тестов
19
После рефакторинга
20
• Squid• Но есть и другие
– Windows – • netbalancer, netlimiter
– Linux• netem
Сеть - Ограничение скорости канала
21
• iptables + stats module• Но есть и другие
– Windows• Network simulator
– Linux• netem
Сеть – Потеря пакетов
22
Сбросить кэш браузера – Google Chrome
23
Сбросить кэш браузера – Google Chrome
24
Ключи запуска Google Chrome
http://peter.sh/experiments/chromium-command-line-switches/
chrome://cache – просмотр содержимого кэшаchrome://about – служебные страницы Google Chrome
Еще о Google Chrome
25
Сбросить кэш браузера – Firefox
26
Сбросить кэш браузера – Opera
27
Сбросить кэш браузера – Opera
opera:cache
28
Сбросить кэш браузера – Internet Explorer
1. Как писать плагин
2. Исполнить код на клиенте (Embedded Jetty)
29
Загрузить страницу
No comments
driver.get(url);
30
Снимаем метрики
1.360503424038E121360503333655
vs.
31
Отчеты - Jenkins
32
Отчеты - Jenkins• Имя метрики • Количество измерений (план, факт)• Описательная статистика
– минимум, максимум– среднее значение– 50% перцентиль – 90% перцентиль
33
Средние + перцентили
34
Перцентили в динамике
35
Логи - Jenkins
36
Об этом мы уже рассказывали на ADD-3http://bit.ly/JG632d
Аналитика – DWH (BI)
37
Возьмите готовый тестовый фреймворкСделайте рефакторингОграничьте скорость каналаСбросьте браузеру кэшЗагрузите страницу, с которой хотите собрать
метрикиСнимите метрикиСкладируйте метрики
Наш «рецепт»
38
• Точность • Технические ухищрения• Экономия ресурсов
Чего здесь нет
39
• Ускорение процесса сбора метрик• Управление аппаратной конфигурацией
клиента• Географически распределенная ферма для
проведения замеров• Встраивание в процесс
Что дальше
40
• Встраивайте метрики в приложение • Собирайте метрики• Анализируйте метрики
Итого
Спасибо!Никита Макаров Руководитель группы автоматизации тестирования,Одноклассники[email protected]