[Software-testing] Тестирование производительности: JMeter 5 (Алексей Баранцев)

Цена:
598.4
doneМного
doneЗаканчивается
highlight_offНет в наличии
notifications_none
Уведомить

[?IMG]?

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

Материал курса адаптирован к версии JMeter 5

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

'Младших тестировщиков производительности' не бывает. Зато бывают люди, которые начинают заниматься тестированием производительности.

(с) Скотт Барбер (aka The Perf Guy)

В тестировании компьютерных программ есть 'общедоступная' область функционального тестирования, куда доступ открыт всем желающим, и есть целый ряд областей с достаточно высоким 'порогом входа', и тестирование производительности находится в их числе.

Для этого вида тестирования требуется хорошее владение оружием, его голыми руками не возьмёшь. Во-первых, нужно само оружие -- тестирование производительности обязательно требует умения пользоваться специальными инструментами. Во-вторых, нужно тщательно изучить соперника -- необходимо хорошее понимание протоколов взаимодействия тестируемой программы с внешним миром и её внутренней физической и логической архитектуры. Ну и конечно же нужно владеть приёмами -- знать какую нагрузку и как подать на тестируемое приложение, и на что смотреть, чтобы выявить проблемы с производительностью.

На тренинге мы будем учиться обращаться с этим оружием:

  • познакомимся с инструментами, предназначенными для генерации нагрузки и для мониторинга различных характеристик производительности,
  • освоим способы использования этих инструментов для генерации нагрузки различного вида,
  • изучим типовые архитектурные шаблоны построения приложений и связанные с этим источники потенциальных проблем с производительностью,
  • рассмотрим способы выявления проблем с производительностью на основе анализа результатов мониторинга.
Для практических демонстраций и для выполнения домашних заданий будет использоваться инструмент JMeter.
Подробная программа курса:
Занятие 1. Обзор
Модуль 1.1. Введение
  • Что такое производительность? Тестирование производительности -- зачем мы его проводим?
  • Функциональные и нефункциональные характеристики качества. Производительность + надёжность + удобство использования (дизайн). Скорость и ресурсоёмкость. Уровни изменений: производительность алгоритмов, производительность ПО, производительность человека, использующего ПО.
  • Какие ошибки мы можем обнаружить: узкое место («бутылочное горлышко»), медленная подсистема/функция, точки насыщения, функциональные дефекты.
  • Ложно-положительные и ложно-отрицательные результаты.
Модуль 1.2. Проектирование тестов
  • Сценарий. Запросы (действия, из которых состоит сценарий).
  • Профиль нагрузки.
  • Задержки.
Модуль 1.3. Выбор инструментов
  • Способ описания сценариев.
  • Рекордер.
  • Генераторы нагрузки.
  • Сбор данных.
  • Анализ данных.
Модуль 1.4. Примеры инструментов
  • Инструменты с декларативным стилем описания сценариев.
  • Инструменты с императивным стилем описания сценариев.
  • Тестирование клиентской производительности.
  • Облачные сервисы.
Модуль 1.5. Пример создания сценариев в JMeter
  • Запись сценария рекордером.
  • Воспроизведения сценария.
  • Отладка и доработка сценария. Использование прокси-серверов для отладки.
  • Сбор метрик скорости: время отклика, пропускная способность, количество отказов.
Занятие 2. Сценарии
Модуль 2.1. Протоколы взаимодействия с тестируемой системой
  • Сетевые протоколы.
  • Удалённые программные интерфейсы (Remote API).
  • API, за которыми скрывается что угодно.
Модуль 2.2. Проектирование сценариев

  • Моделирование поведения пользователей.
  • Что считать – пользователей или запросы?
  • Задержки между запросами.
  • Управление логикой сценария.
  • Как правильно делать login и logout.
  • Создание сценариев из переиспользуемых модулей.
Модуль 2.3. Работа с данными в JMeter

  • Глобальные параметры (адрес тестового стенда и т.п.)
  • Автоподстановка параметров во время записи сценариев.
  • Генерация случайных данных.
  • Чтение данных из внешних файлов.
Модуль 2.4. Корреляция данных в JMeter

  • Выявление данных, требующих корреляции.
  • Экстракторы: регулярные выражения, XPath, CSS Selectors.
Модуль 2.5. Проверки (assertions)

  • Функциональные проверки
  • Контроль времени отклика
  • Таймауты
Занятие 3. Нагрузка
Модуль 3.1. Требования к производительности

  • Требования к скорости.
  • Требования к надёжности.
  • Требования к ресурсоёмкости.
  • Требования к окружению.
  • Динамические и статические требования.
  • Средние значения и аномалии.
Модуль 3.2. Цели тестирования и профили нагрузки

  • Анализ требований и определение целей тестирования
  • Что такое модель нагрузки и как она соотносится с целями тестирования.
  • Типовые модели нагрузки: на обнаружение какого рода проблем они нацелены.
Модуль 3.3. Реализация типовых моделей нагрузки в JMeter

  • Постоянная нагрузка
  • Возрастающая нагрузка
  • Пиковые нагрузки
Модуль 3.4. Выполнение тестов

  • Калибровка сценариев.
  • Функциональное тестирование в параллельном режиме.
  • Стабилизация показателей и определение базы (baseline).
  • Запуск с различными вариациями.
  • Что делать во то время, пока выполняются тесты?
Модуль 3.5. Тестирование клиентской производительности

  • Встроенные в браузеры средств.
  • Облачные сервисы.
Занятие 4. Анализ результатов
Модуль 4.1. Подготовка тестового стенда

  • Сервера.
  • Сеть.
  • Виртуальные машины.
  • Настройки.
  • Фоновая загрузка.
  • Генераторы нагрузки.
Модуль 4.2. Сбор данных

  • Время отклика, пропускная способность, количество отказов.
  • Мониторинг тестируемой системы.
Модуль 4.3. Распределённое тестирование

  • Генерация нагрузки из нескольких источников.
  • Сбор данных в распределённой среде.
Модуль 4.4. Анализ результатов и построение отчётов

  • Встроенные в инструменты средства анализа результатов.
  • Специализированные пакеты для статистических расчётов.
Модуль 4.5. Построение отчётов

  • Как должен выглядеть «понятный» отчёт.
  • Интерпретация и представление результатов.
  • Связывание результатов с целями тестирования и требованиями.

[?IMG]