Меню Закрыть

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

На курсе мы:

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

Для работы с реальными проектами мы будем использовать инструмент JMeter.

Программа курса

Неделя 1. Обзор

Введение:

  • Что такое производительность? Тестирование производительности -- зачем мы его проводим?
  • Функциональные и нефункциональные характеристики качества. Производительность + надежность + удобство использования (дизайн). Скорость и ресурсоемкость. Уровни изменений: производительность алгоритмов, производительность ПО, производительность человека, использующего ПО.
  • Какие ошибки мы можем обнаружить: узкое место («бутылочное горлышко»), медленная подсистема/функция, точки насыщения, функциональные дефекты.
  • Ложно-положительные и ложно-отрицательные результаты.

Проектирование тестов:

  • Сценарий. Запросы (действия, из которых состоит сценарий).
  • Профиль нагрузки.
  • Задержки.

Выбор инструментов:

  • Способ описания сценариев.
  • Рекордер.
  • Генераторы нагрузки.
  • Сбор данных.
  • Анализ данных.

Примеры инструментов:

  • Инструменты с декларативным стилем описания сценариев.
  • Инструменты с императивным стилем описания сценариев.
  • Тестирование клиентской производительности.

Пример создания сценариев в JMeter:

  • Запись сценария рекордером.
  • Воспроизведения сценария.
  • Отладка и доработка сценария. Использование прокси-серверов для отладки.
  • Сбор метрик скорости: время отклика, пропускная способность, количество отказов.

Применяем к действующему проекту

 

Неделя 2. Сценарии

Протоколы взаимодействия с тестируемой системой:

  • Сетевые протоколы;
  • Удалённые программные интерфейсы (Remote API);
  • API, за которыми скрывается что угодно.

Проектирование сценариев:

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

Работа с данными в JMeter:

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

Корреляция данных в JMeter:

  • Выявление данных, требующих корреляции;
  • Экстракторы: регулярные выражения, XPath, CSS Selectors.

Проверки (assertions):

  • Функциональные проверки;
  • Контроль времени отклика;
  • Таймауты.

Применяем к действующему проекту

Неделя 3. Нагрузка

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

  • Требования к скорости;
  • Требования к надежности;
  • Требования к ресурсоемкости;
  • Требования к окружению;
  • Динамические и статические требования;
  • Средние значения и аномалии.

Цели тестирования и профили нагрузки:

  • Анализ требований и определение целей тестирования;
  • Что такое модель нагрузки и как она соотносится с целями тестирования;
  • Типовые модели нагрузки -  на обнаружение какого рода проблем они нацелены?

Реализация типовых моделей нагрузки в JMeter:

  • Постоянная нагрузка;
  • Возрастающая нагрузка;
  • Пиковые нагрузки.

Выполнение тестов:

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

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

  • Встроенные в браузеры средств;
  • Облачные сервисы.

Применяем к действующему проекту

 

Неделя 4. Анализ результатов

Подготовка тестового стенда:

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

Сбор данных:

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

Распределенное тестирование:

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

Анализ результатов и построение отчетов:

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

Построение отчетов:

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

Применяем к  действующему проекту

Срок обучения: 1 месяц
Время обучения: вечернее
Формат обучения: Skype,Google Classroom
Стоимость курса: 3000 грн за курс

Запись на курс