Тренер: Баранцев Олексій
Матеріал курсу адаптований до версії JMeter 5
Курс дасть можливість попрактикуватися у використанні інструментів для моніторингу характеристик продуктивності і генерації навантаження для веб-додатків.
"молодших тестувальників продуктивності" не буває. Зате бувають люди, які починають займатися тестуванням продуктивності.
(с) Скотт Барбер (aka The Perf Guy)
У тестуванні комп'ютерних програм є "загальнодоступна" область функціонального тестування, куди доступ відкритий всім бажаючим, і є цілий ряд областей з досить високим "порогом входу", і тестування продуктивності знаходиться в їх числі.
Для цього виду тестування потрібно добре володіння зброєю, його голими руками не візьмеш. По-перше, потрібна сама зброя-тестування продуктивності обов'язково вимагає вміння користуватися спеціальними інструментами. По-друге, потрібно ретельно вивчити суперника-необхідно хороше розуміння протоколів взаємодії тестованої програми із зовнішнім світом і її внутрішньої фізичної і логічної архітектури. Ну і звичайно ж потрібно володіти прийомами-знати яке навантаження і як подати на тестоване додаток, і на що дивитися, щоб виявити проблеми з продуктивністю.
На тренінгу Ми будемо вчитися поводитися з цією зброєю:
- познайомимося з інструментами, призначеними для генерації навантаження і для моніторингу різних характеристик продуктивності,
- освоїмо способи використання цих інструментів для генерації навантаження різного виду,
- вивчимо типові архітектурні шаблони побудови додатків і пов'язані з цим джерела потенційних проблем з продуктивністю,
- розглянемо способи виявлення проблем з продуктивністю на основі аналізу результатів моніторингу.
Детальна програма курсу:
заняття 1. Огляд
Модуль 1.1. Введення
Модуль 2.1. Протоколи взаємодії з тестованою системою
Модуль 3.1. Вимоги до продуктивності
Модуль 4.1. Підготовка тестового стенду
Модуль 1.1. Введення
- що таке продуктивність? Тестування продуктивності-навіщо ми його проводимо?
- функціональні та нефункціональні характеристики якості. Продуктивність + надійність + зручність використання (дизайн). Швидкість і ресурсоємність. Рівні змін: продуктивність алгоритмів, продуктивність ПЗ, продуктивність людини, що використовує ПЗ.
- які помилки ми можемо виявити: вузьке місце ("пляшкове горлечко"), повільна підсистема/функція, точки насичення, функціональні дефекти.
- помилково-позитивні і помилково-негативні результати.
- сценарій. Запити (дії, з яких складається сценарій).
- профіль навантаження.
- затримки.
- спосіб опису сценаріїв.
- Рекордер.
- Генератори навантаження.
- збір даних.
- аналіз даних.
- інструменти з декларативним стилем опису сценаріїв.
- інструменти з імперативним стилем опису сценаріїв.
- тестування клієнтської продуктивності.
- хмарні сервіси.
- запис сценарію рекордером.
- відтворення сценарію.
- Налагодження та доопрацювання сценарію. Використання проксі-серверів для налагодження.
- збір метрик швидкості: час відгуку, пропускна здатність, кількість відмов.
Модуль 2.1. Протоколи взаємодії з тестованою системою
- мережеві протоколи.
- віддалені програмні інтерфейси (Remote API).
- API, за якими ховається що завгодно.
- Моделювання поведінки користувачів.
- що вважати – користувачів або запити?
- затримки між запитами.
- Управління логікою сценарію.
- Як правильно робити login і logout.
- створення сценаріїв з перевикористовуваних модулів.
- Глобальні параметри (Адреса тестового стенду і т. п.)
- Автоподстановка параметрів під час запису сценаріїв.
- Генерація випадкових даних.
- читання даних із зовнішніх файлів.
- виявлення даних, що вимагають кореляції.
- Екстрактори: регулярні вирази, XPath, CSS Selectors.
- функціональні перевірки
- Контроль часу відгуку
Модуль 3.1. Вимоги до продуктивності
- вимоги до швидкості.
- вимоги до надійності.
- вимоги до ресурсоємності.
- вимоги до оточення.
- динамічні та статичні вимоги.
- середні значення та аномалії.
- аналіз вимог та визначення цілей тестування
- що таке модель навантаження і як вона співвідноситься з цілями тестування.
- типові моделі навантаження: на виявлення якого роду проблем вони націлені.
- постійне навантаження
- зростаюче навантаження
- пікові навантаження
- калібрування сценаріїв.
- функціональне тестування в паралельному режимі.
- стабілізація показників і визначення бази (baseline).
- Запуск з різними варіаціями.
- що робити під час виконання тестів?
- вбудовані в браузери засобів.
- хмарні сервіси.
Модуль 4.1. Підготовка тестового стенду
- Сервера.
- мережа.
- віртуальні машини.
- Налаштування.
- фонове завантаження.
- Генератори навантаження.
https://privatelink.de/?http://software-testing.ru/edu/3-online/19-performance-testing-jmeter#описание