Курс дасть можливість попрактикуватись у використанні інструментів для моніторингу характеристик продуктивності та генерації навантаження для веб-додатків.
На курсі ми:
- познайомимося з інструментами, призначеними для генерації навантаження та для моніторингу різних характеристик продуктивності;
- освоїмо способи використання цих інструментів для генерації навантаження різного виду;
- вивчимо типові архітектурні шаблони побудови додатків та пов'язані з цим джерела потенційних проблем із продуктивністю;
- розглянемо способи виявлення проблем із продуктивністю з урахуванням аналізу результатів моніторингу.
Для роботи з реальними проектами ми будемо використовувати інструмент JMeter.
Програма курсу
Тиждень 1. Огляд
Вступ:
- Що таке продуктивність? Тестування продуктивності – навіщо ми його проводимо?
- Що таке функціональні та нефункціональні характеристики якості. Продуктивність + надійність + зручність використання (дизайн). Швидкість та ресурсомісткість. Рівні змін: продуктивність алгоритмів, продуктивність ПЗ, продуктивність людини, що використовує ПЗ.продуктивність? Тестування продуктивності – навіщо ми його проводимо?
- Які помилки ми можемо виявити: вузьке місце («пляшка»), повільна підсистема/функція, точки насичення, функціональні дефекти.
- Помилково-позитивні та хибно-негативні результати.
Проектування тестів:
- Сценарій. Запити (дії, у тому числі складається сценарій).
- Профіль навантаження.
- Затримки
Вибір інструментів:
- Спосіб опису сценаріїв.
- Рекордер.
- Генератори навантаження
- Збір даних.
- Аналіз даних.
Приклади інструментів:
- Інструменти із декларативним стилем опису сценаріїв.
- Інструменти із імперативним стилем опису сценаріїв.
- Тестування продуктивності клієнта.
Приклад створення сценаріїв у JMeter:
- Запис сценарію рекордера.
- Відтворення сценарію.
- Налагодження та доопрацювання сценарію. Використання проксі-серверів для налагодження.
- Збір метрик швидкості: час відгуку, пропускну здатність, кількість відмов.
Применяем к действующему проекту
Тиждень 2. Сценарії
Протоколи взаємодії з системою, що тестується:
- Мережеві протоколи;
- Видалені програмні інтерфейси (Remote API);
- API, за якими ховається будь-що.
Проектування сценаріїв:
- Моделювання поведінки користувачів;
- Що вважати – користувачів чи запити?
- Затримки між запитами;
- Управління логікою сценарію;
- Як правильно робити login та logout;
- Створення сценаріїв із перевикористовуваних модулів.
Робота з даними в JMeter:
- Глобальні параметри (адреса тестового стенду тощо);
- Автопідстановка параметрів під час запису сценаріїв
- Генерація випадкових даних
- Читання даних із зовнішніх файлів.
Корреляция данных в JMeter:
- Виявлення даних, які потребують кореляції;
- Екстрактори: регулярні вирази, XPath, CSS Selectors.
Перевірки (assertions):
- Функціональні перевірки;
- Контроль часу відгуку;
- Таймаути.
Применяем к действующему проекту
Тиждень 3. Навантаження
Вимоги до продуктивності:
- Вимоги до швидкості;
- Вимоги до надійності;
- Требования к ресурсоемкости;
- Вимоги до ресурсомісткості;
- Динамічні та статичні вимоги;
- Середні значення та аномалії.
Цілі тестування та профілі навантаження:
- Аналіз вимог та визначення цілей тестування;
- Що таке модель навантаження та як вона співвідноситься з цілями тестування;
- Типові моделі навантаження – на виявлення якихось проблем вони націлені?
Реалізація типових моделей навантаження в JMeter:
- Постійне навантаження;
- Зростаюче навантаження;
- Пікові навантаження.
Виконання тестів:
- Калібрування сценаріїв;
- Функціональне тестування у паралельному режимі;
- Стабілізація показників та визначення бази (baseline);
- Запуск із різними варіаціями;
- Що робити, поки виконуються тести?
Тестування клієнтської продуктивності:
- Вбудовані у браузери засобів;
- Хмарні послуги.
Применяем к действующему проекту
Тиждень 4. Аналіз результатів
Підготовка тестового стенду:
- Сервера;
- Мережа;
- Віртуальні машини;
- Налаштування;
- Фонове завантаження;
- Генератори навантаження
Збір даних:
- Час відгуку, пропускну здатність, кількість відмов;
- Моніторинг системи, що тестується.
Розподілене тестування:
- Генерація навантаження із кількох джерел;
- Збір даних у розподіленому середовищі.
Аналіз результатів та побудова звітів:
- Вбудовані у інструменти засоби аналізу результатів;
- Спеціалізовані пакети для статистичних розрахунків.
Побудова звітів:
- Як має виглядати «зрозумілий» звіт;
- Інтерпретація та подання результатів;
- Зв'язування результатів з цілями тестування та вимогами.
Застосовуємо до чинного проєкту
Термін навчання: 1 місяць
Навчання: 1 раз на тиждень
Формат навчання: Skype,Google Classroom
Вартість навчання: 3000 грн за курс