SlideShare a Scribd company logo
1 of 67
Тестирование клиентской
производительности
Алексей Баранцев, Software-Testing.Ru
Кто здесь?
Алексей Баранцев
Software-Testing.Ru
barancev@gmail.com
skype: barancev
g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что такое «браузер»?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что такое «браузер»?
Это просто HTTP-клиент

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Это. Просто. HTTP. Клиент.

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Согласны?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Как устроен браузер?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Как устроен браузер?

http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что тут тестировать?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Загрузка «страницы»

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Инструменты
• Браузеры (Dev Tools - F12)
• YSlow
• PageSpeed
• http://gtmetrix.com/
• http://www.webpagetest.org/
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Загрузка «страницы»

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Объём данных
jQuery 2.0.3
• 242,142 - original
• 83,612 - minified
• 71,726 - gzipped
• 29,246 - minified & gzipped
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Количество запросов

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что делать?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Кэш браузера

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Кэш браузера

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Кэш браузера

Это как вообще?
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Количество запросов

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что делать?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что делать?
• Параллельные запросы!
но не слишком много на один домен!

• На разные домены!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Количество запросов

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что делать?
• Параллельные запросы!
но не слишком много на один домен

• На разные домены!
увеличивается DNS resolution
не используется Keep-alive

• Надо найти баланс…
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Резюме 1: сеть
• Объём передаваемых данных
склеивание, сжатие и минификация
кешируемость и ETag

• Количество запросов
на один домен или на разные
кешируемость и спрайты
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что тут тестировать?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
DOM tree
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<div>
<p>Превед, медвед!</p>
</div>
<div><img src="…"></div>
</body>
</html>
Алексей Баранцев

Software-Testing.Ru

html
head

body

title

div

div

#text

p

img

#text

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
• небоскрёб

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Большой DOM: что делать?
• Пересмотреть дизайн
оно вам таки надо?

• «Покрошить» страницы
• Подгружать постепенно
по клику
по скроллу
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
CSS Selectors
div#header
.content p
.content *
.menu ul li
#menu > li
Алексей Баранцев

Software-Testing.Ru

#header
.content
.content
.menu-item
.menu-item
Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
«Место для фото»

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Резюме 2: рендеринг
• DOM
плохо, если большой и глубокий

• Стили
селекторы должны быть точными

• Картинки
указывайте размеры заранее
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Что тут тестировать?

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
«Скрипт не отвечает»

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Инструменты
• Браузеры (Dev Tools - F12)
• ySlow
• PageSpeed
• dynaTrace
Compuware AJAX Edition
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Демо!

Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Reflow
Алексей Баранцев

• Обновления DOM
• Изменение стилей

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Общие правила
• Минификация
• Стили в head
• JavaScript в конце
• Эффективные локаторы
• Долой «велосипеды»!
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev
Вопросы?
Алексей Баранцев
Software-Testing.Ru
barancev@gmail.com
skype: barancev
g+ AlexeiBarantsev
Алексей Баранцев

Software-Testing.Ru

Selenium2.Ru Confetqa.Ru barancev@gmail.com skype:barancev g+ AlexeiBarantsev

More Related Content

More from SQALab

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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