Меню Закрити

Курс дасть можливість попрактикуватись у використанні інструментів для моніторингу характеристик продуктивності та генерації навантаження для веб-додатків.

На курсі ми:

  • познайомимося з інструментами, призначеними для генерації навантаження та для моніторингу різних характеристик продуктивності;
  • освоїмо способи використання цих інструментів для генерації навантаження різного виду;
  • вивчимо типові архітектурні шаблони побудови додатків та пов'язані з цим джерела потенційних проблем із продуктивністю;
  • розглянемо способи виявлення проблем із продуктивністю з урахуванням аналізу результатів моніторингу.

Для роботи з реальними проектами ми будемо використовувати інструмент 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 грн за курс

Запис на курс












     

    uk