selenium нетрадиционной ориентации или Тестирование...

42
Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

Upload: nikita-makarov

Post on 19-Nov-2014

2.107 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

Selenium нетрадиционной ориентации или

Тестирование производительности Javascript на клиенте

Page 2: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

О себе

• В IT c 2006• В автоматизации

тестирования с 2007

• Руковожу автоматизацией с 2009

@PapaMinos

2

Page 3: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

Когда-то давно…

3

Page 4: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

UI – сейчас…

4

Page 5: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

GWT ???

5

Google Web Toolkit

Server Side – Java

Client Side – Java (JavaScript)

SWING style

Page 6: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

6

Почему это важно

Page 7: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

7

Page 8: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

8

Метрики

Page 9: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

9

Navigation Timing API– Firefox 7.0 +– Google Chrome 6.0 +– Internet Explorer 9.0 +

http://www.w3.org/TR/navigation-timing/

Как собрать метрики

Page 10: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

10

В реальности…

Page 11: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

11

Более подробно

Page 12: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

12

Но есть один момент… (с)

Page 13: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

13

• уже на продакшене• реактивные меры после релиза• средняя температура по больнице –

36,6

Сбор метрик с пользователей

Page 14: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

14

• исполнять JavaScript• учитывать сетевые особенности

пользователей• учитывать программно-аппаратные

особенности

Собирать метрики до того как…

Page 15: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

15

Page 16: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

16

Фермы

• 100 % virtualization (VMWare)

• Jenkins – Remote Control

• Windows, Linux, Zabbix monitoring

• Infrastructure – Squid, Artifactory, iptables

Page 17: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

17

Цели

Page 18: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

18

Обычное выполнение тестов

Page 19: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

19

После рефакторинга

Page 20: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

20

• Squid• Но есть и другие

– Windows – • netbalancer, netlimiter

– Linux• netem

Сеть - Ограничение скорости канала

Page 21: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

21

• iptables + stats module• Но есть и другие

– Windows• Network simulator

– Linux• netem

Сеть – Потеря пакетов

Page 22: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

22

Сбросить кэш браузера – Google Chrome

Page 23: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

23

Сбросить кэш браузера – Google Chrome

Page 24: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

24

Ключи запуска Google Chrome

http://peter.sh/experiments/chromium-command-line-switches/

chrome://cache – просмотр содержимого кэшаchrome://about – служебные страницы Google Chrome

Еще о Google Chrome

Page 25: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

25

Сбросить кэш браузера – Firefox

Page 26: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

26

Сбросить кэш браузера – Opera

Page 27: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

27

Сбросить кэш браузера – Opera

opera:cache

Page 28: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

28

Сбросить кэш браузера – Internet Explorer

1. Как писать плагин

2. Исполнить код на клиенте (Embedded Jetty)

Page 29: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

29

Загрузить страницу

No comments

driver.get(url);

Page 30: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

30

Снимаем метрики

1.360503424038E121360503333655

vs.

Page 31: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

31

Отчеты - Jenkins

Page 32: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

32

Отчеты - Jenkins• Имя метрики • Количество измерений (план, факт)• Описательная статистика

– минимум, максимум– среднее значение– 50% перцентиль – 90% перцентиль

Page 33: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

33

Средние + перцентили

Page 34: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

34

Перцентили в динамике

Page 35: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

35

Логи - Jenkins

Page 36: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

36

Об этом мы уже рассказывали на ADD-3http://bit.ly/JG632d

Аналитика – DWH (BI)

Page 37: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

37

Возьмите готовый тестовый фреймворкСделайте рефакторингОграничьте скорость каналаСбросьте браузеру кэшЗагрузите страницу, с которой хотите собрать

метрикиСнимите метрикиСкладируйте метрики

Наш «рецепт»

Page 38: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

38

• Точность • Технические ухищрения• Экономия ресурсов

Чего здесь нет

Page 39: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

39

• Ускорение процесса сбора метрик• Управление аппаратной конфигурацией

клиента• Географически распределенная ферма для

проведения замеров• Встраивание в процесс

Что дальше

Page 40: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

40

• Встраивайте метрики в приложение • Собирайте метрики• Анализируйте метрики

Итого

Page 41: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

Спасибо!Никита Макаров Руководитель группы автоматизации тестирования,Одноклассники[email protected]

Page 42: Selenium нетрадиционной ориентации или Тестирование производительности Javascript на клиенте

42

есть такая работа – сидеть в «Одноклассниках»

http://v.ok.ru

И, да…