26
Автоматизированное тестирование клиентской производительности Павел Павлов EPAM Systems

Автоматизированное тестирование клиентской производительности

  • Upload
    sqalab

  • View
    1.111

  • Download
    4

Embed Size (px)

DESCRIPTION

Павел Павлов - доклад на SQA Days, 2-3 декабря 2011, Москва

Citation preview

Page 1: Автоматизированное тестирование клиентской производительности

Автоматизированное тестирование клиентской

производительности

Павел Павлов

EPAM Systems

Page 2: Автоматизированное тестирование клиентской производительности

О себе

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

2

Page 3: Автоматизированное тестирование клиентской производительности

Клиентская производительность

• То, с чем вы сталкиваетесь каждый день

• Это не просто время загрузки страниц

• Это совокупность метрик, которые определяют скорость сайта

3

Page 4: Автоматизированное тестирование клиентской производительности

Что тестировать

• Время загрузки

• Количество запросов

• Размер страниц и объектов

• Уровень оптимизации

4

Page 5: Автоматизированное тестирование клиентской производительности

Зачем тестировать

▲1дополнительная секунда

во времени загрузки

▼16%ниже уровень

удовлетворённости пользователей

▼11%меньше

просмотров страниц

▼7%потерь вконверсии

Вы действительно не хотите это контролировать?

5

Источник: Aberdeen Group

Page 6: Автоматизированное тестирование клиентской производительности

Когда тестировать

• Когда нет проблем с серверной производительностью• Устойчивость к нагрузке действительно важнее

• Когда есть конкретные требования к скорости сайта• Страницы загружаются быстрее 5 секунд в 95% случаев

• Изо дня в день, от релиза к релизу• Следите за всеми изменениями в скорости сайта

6

Page 7: Автоматизированное тестирование клиентской производительности

Виды тестов

7

Page 8: Автоматизированное тестирование клиентской производительности

8

Контекст

Скоростьсоединения

Сетевыезадержки Тип

соединения

Версия браузера

Времясуток

Устройство

Операционная система

Настройки браузера

Page 9: Автоматизированное тестирование клиентской производительности

Кросс-браузерное тестирование

9

Page 10: Автоматизированное тестирование клиентской производительности

Скорость соединения

• Не у всех пользователей выделенный канал в 10.Мбит/с

• Не все пользователи живут в 100 метрах от вашего дата-центра

• В мире все больше и больше пользователей мобильных устройств

10

Page 11: Автоматизированное тестирование клиентской производительности

Сторонние компоненты

• Тесты с виджетами, счётчиками и баннерами

• Тесты с «чистым» контентом

• SPOF-тесты (единая точка отказа)

11

Page 12: Автоматизированное тестирование клиентской производительности

Страницы vs. Сценарии

12

Объект

Страница

Сценарий

Как долго загружается каждая страницавашего сайта

Как изменяется скорость сайта при навигации от страницы к странице

Как быстро генерируется HTML документ

Page 13: Автоматизированное тестирование клиентской производительности

Как тестировать?

13

Page 14: Автоматизированное тестирование клиентской производительности

Набор инструментов

Средстваавтоматизации

браузера

Средстваобработки и хранения

результатов

14

Page 15: Автоматизированное тестирование клиентской производительности

Общая инфраструктура

\\ БраузерУправляющий

сценарийПриложение

Прокси-сервер

Репозиторий

15

Page 16: Автоматизированное тестирование клиентской производительности

Управляющий сценарий

• Основа• Автоматизированный Selenium тест

• Язык• Java, Python

• Задачи• Запуск и навигация в браузере

• Управление прокси-сервером

• Сохранение результатов в репозитории

16

Page 17: Автоматизированное тестирование клиентской производительности

Инструменты

• BrowserMob Proxy• Native Java или REST API на выбор

• Управляемая скорость соединения

• Фильтрация запросов

• HAR Storage• Наличие веб-интерфейса

• Визуализация собранных данных

• Возможность сравнения результатов тестов

17

Page 18: Автоматизированное тестирование клиентской производительности

Процесс тестирования

Инициализацияпрокси-сервера

Запускбраузера

Переходк требуемой странице

ПолучениеHAR для страницы

ЗагрузкаHAR в репозиторий

Сброспрокси-сервера

Остановкабраузера

18

Page 19: Автоматизированное тестирование клиентской производительности

Разнообразие тестов

• Различные браузеры• IE 8, Firefox 7, Chrome 14

• Различеные параметры соединения• 1 Мбит/с @ 200 мс, 2 Мбит/с @ 50 мс

• Тесты с фильтрацией контента

• 15 пользовательских сценариев

19

Page 20: Автоматизированное тестирование клиентской производительности

Особенности тестирования

• Агрегация данных• Специальные метки для страниц и событий

• Собственные временные метрики• Полученные с помощью Navigation Timing API

• Широкие возможности анализа• Для тестировщиков и разработчиков

20

Page 21: Автоматизированное тестирование клиентской производительности

Сравнение результатов

21

TEMPORARYРазмер Запросы Время

Обычная страница 599 116 6,2

«Чистая» страница 468 104 4,3

Page 22: Автоматизированное тестирование клиентской производительности

Анализ тенденций

22

harstorage.com

TEMPORARY

Page 23: Автоматизированное тестирование клиентской производительности

Возможные проблемы

• Удалённое тестирование• Вы не cможете контролировать свойства сети

• Виртуальная среда тестирования• Будьте готовы к проблемам с медленным рендерингом

• Стабильность тестов• В среднем 1 из 10 тестов проходит с ошибками

23

Page 24: Автоматизированное тестирование клиентской производительности

Возможные проблемы

• Open source• Бесплатные вещи иногда дорого обходятся

• Объем работы• Больше, чем при нагрузочном тестировании

• Бизнес-ожидания• Ваши результаты не отражают действительность

24

Page 25: Автоматизированное тестирование клиентской производительности

Подводя итог

• Клиентская производительность – критический аспект сайтов и веб-приложений

• Время загрузки сайтов зависит от контекста

• Существуют готовые и проверенные методы для тестирования клиентской производительности

25

Page 26: Автоматизированное тестирование клиентской производительности

Спасибо за внимание!

Павел Павлов[email protected]

@pavelpaulau