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

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

Nov 19, 2014

Download

Documents

Nikita Makarov

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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

И, да…