Курс даст возможность попрактиковаться в использовании инструментов для мониторинга характеристик производительности и генерации нагрузки для веб-приложений.
"Младших тестировщиков производительности" не бывает. Зато бывают люди, которые начинают заниматься тестированием производительности.
(с) Скотт Барбер (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
Глобальные параметры (адрес тестового стенда и т.п.)
Автоподстановка параметров во время записи сценариев.
Отзывы
(Читать все отзывы ->)