SlideShare a Scribd company logo
1 of 42
Apache JMeter
Краткая экскурсия в увлекательный
мир нагрузочного тестирования
Немного теории
• Apache JMeter — инструмент для проведения
нагрузочного тестирования, разрабатываемый Apache
Software Foundation.
• Он способен проводить нагрузочные тесты для JDBC-
соединений, FTP, LDAP, SOAP, JMS, POP3, IMAP, HTTP и TCP.
• Организовано логирование результатов теста и
разнообразная визуализация результатов в виде
диаграмм, таблиц и т. п.
• Архитектура, поддерживающая плагины сторонних
разработчиков, позволяет дополнять инструмент новыми
функциями.
Что пишут люди
• Широкий выбор готовых компонентов. В JMeter есть все.
Во всяком случае — практически все, что нужно для
тестирования. В противном случае под конкретную задачу
всегда можно написать новый компонент.
• Возможность работать, как с UI, так и без него.
Выполнение тестовых сценариев в командной строке
позволяет полноценно интегрировать их в сценарии CI
инструментов.
• JMeter умеет кластеризоваться, т.е. вы можете создать
ферму нагрузочных машин, управляемых как единое
целое.
• Больше тут: https://jetruby.com/ru/blog/почему-мы-
используем-jmeter/
Запуск JMeter
• Для работы над созданием и отладкой теста мы
используем JMeter UI
• Для запуска тест-плана используем JMeter в консоли
• JMeter может быть запущен на любой системе, где установлена Java
– Mac OS
– Windows
– Linux
Перейдем к интерфейсу
• Тест план имеет древовидную структуру
• Внутри тест плана располагаются тесты, которые могут
состоять из одного или нескольких запросов, графиков,
прочих модификаторов ввода/вывода
• Создадим один тест на примере запроса «login» в нашем
продукте
• Тест будет запущен один раз в одном потоке
• Тест состоит из одного запроса (с добавлением
отсутствующего header) и таблицы результатов
• Запрос будет отправлен на сервер a1-qa.dev.whirl.sg
• В теле запроса передается JSON с данными (Логин –
Admin, Пароль – Admin)
• Добавлен header который отсутствует (Content Type) – без
него запрос будет не валидным
• После запуска результат выполнения теста появляется в
таблице результатов (одна запись соответствует одному
запросу)
• Детали запроса (адрес запроса, тело запроса, headers
запроса) и ответ сервера отображается в соответствующих
вкладках
А что если усложнить?
• Если продолжать развивать тест, то мы невольно
столкнемся со следующими проблемами:
– Постоянное повторение имени сервера для каждого запроса
(решается созданием и вызовом переменной)
– Зависимость последующих запросов от id сессии (решается
парсингом ответа сервера при логине и добавлением переменной
в headers)
– Зависимость последующих запросов/потоков от id страницы
(решается генерацией уникального ключа и добавлением
переменной в тело запросов)
Создаем переменную с именем
сервера
Вызываем переменную
Парсим ответ сервера при лог-ине
по маске регулярного выражения
Генерируем случайное значение для
переменной по маске
Добавляем в список новый запрос с
переменными
Для нового запроса добавляем
необходимые headers
Подведем итоги!
• Мы создали тест, который может быть масштабирован как
в длину (количество запросов), так и в ширину (количество
потоков)
• Мы научились генерировать случайные данные для
переменных
• Мы научились парсить ответы для дальнейшего
переиспользования их в переменных
• После запуска мы видим в таблице результатов что все
отработало
• Проверяем информацию, которую отправили и которую
получили
Реквест с переменными
Ответ сервера показывает что все
правильно
Запустим наш тест с нагрузкой
• Запустим тест из двух запросов
• Будут использованы 5 потоков (пользователей)
• Каждый запрос будет отправлен 3 раза
• Перерыв между запросами – 2 секунды
• Добавим несколько разных вариантов отчетов
• В суммарной таблице видим средние данные по каждому
запросу
• На графике видим отчет о длительности запросов
• Пройдемся более детально…
Исходящие настройки нагрузки
Результат запуска в виде результатов
запросов
Суммарная таблица по каждому
запросу
График с длительностью запросов
Запустим тест несколько раз подряд
Увидим тенденцию графика более
детально
Попробуем запустить через консоль
• Заходим в папку и запускаем jmeter в консоли
• Флаг –n означает запуск без GUI
• Флаг –t позволяет вводить путь к файлу с тест планом
• Флаг –l позволяет указать куда сохранить файл отчета
• Отчет опционален и поддерживается в формате csv
Запуск тест плана
Отчет в формате csv
Попробуем запустить поломанные
тесты
• Чтобы проверить пользу нагрузочного тестирования мы
можем проверить разные виды запросов:
– Запрос, который написан неверно
– Запрос, который усложнен и будет выполняться дольше обычного
• Рассмотрим репорты после запуска этих запросов
– Таблицу результатов
– Суммарный отчет
– График длительности
Jmeter
Jmeter
Jmeter
Jmeter
Jmeter
Jmeter
Jmeter
Jmeter

More Related Content

What's hot

Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаYandex
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестированиеSPB SQA Group
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинPositive Hack Days
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинPositive Hack Days
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияbearoff
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
Тестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumТестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumSQALab
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаSQALab
 
Нагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerНагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerSQALab
 
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоОт простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоPositive Hack Days
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?OdessaQA
 

What's hot (20)

Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервисаАндрей Похилько — Нагрузочное тестирование типичного интернет сервиса
Андрей Похилько — Нагрузочное тестирование типичного интернет сервиса
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур ГильмуллинvSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
vSphereTools - инструмент для автоматизации работы с vSphere | Тимур Гильмуллин
 
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир СелинИнструментарий для создания дистрибутивов продуктов | Владимир Селин
Инструментарий для создания дистрибутивов продуктов | Владимир Селин
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрования
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
Тестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и SeleniumТестирование отклика Web-интерфейса с JMeter и Selenium
Тестирование отклика Web-интерфейса с JMeter и Selenium
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgДело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
 
Нагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load RunnerНагрузочное тестирование web-приложений с помощью Load Runner
Нагрузочное тестирование web-приложений с помощью Load Runner
 
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей ТимченкоОт простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
От простого к сложному: автоматизируем ручные тест-планы | Сергей Тимченко
 
03 load testing
03   load testing03   load testing
03 load testing
 
Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 
02-lection-ka
02-lection-ka02-lection-ka
02-lection-ka
 

Similar to Jmeter

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Dmitry Buzdin
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Mail.ru Group
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019GoQA
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексейsolit
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumSQALab
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysLiloSEA
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
Performance testing with apache JMeter
Performance testing with apache JMeterPerformance testing with apache JMeter
Performance testing with apache JMeterIvanLysenko
 
TestLink
TestLinkTestLink
TestLinkISsoft
 
Вадим Зубович - Test Link
Вадим Зубович - Test LinkВадим Зубович - Test Link
Вадим Зубович - Test LinkQA Club Minsk
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?Mikalai Alimenkou
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?SQALab
 

Similar to Jmeter (20)

Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
 
Эволюция автотестирования на Selenium
Эволюция автотестирования на SeleniumЭволюция автотестирования на Selenium
Эволюция автотестирования на Selenium
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Sivko
SivkoSivko
Sivko
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
Performance testing with apache JMeter
Performance testing with apache JMeterPerformance testing with apache JMeter
Performance testing with apache JMeter
 
TestLink
TestLinkTestLink
TestLink
 
Вадим Зубович - Test Link
Вадим Зубович - Test LinkВадим Зубович - Test Link
Вадим Зубович - Test Link
 
Do you know what you are testing?
Do you know what you are testing?Do you know what you are testing?
Do you know what you are testing?
 
А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?А вы знаете что тестируют ваши тесты?
А вы знаете что тестируют ваши тесты?
 

Jmeter

  • 1. Apache JMeter Краткая экскурсия в увлекательный мир нагрузочного тестирования
  • 2. Немного теории • Apache JMeter — инструмент для проведения нагрузочного тестирования, разрабатываемый Apache Software Foundation. • Он способен проводить нагрузочные тесты для JDBC- соединений, FTP, LDAP, SOAP, JMS, POP3, IMAP, HTTP и TCP. • Организовано логирование результатов теста и разнообразная визуализация результатов в виде диаграмм, таблиц и т. п. • Архитектура, поддерживающая плагины сторонних разработчиков, позволяет дополнять инструмент новыми функциями.
  • 3. Что пишут люди • Широкий выбор готовых компонентов. В JMeter есть все. Во всяком случае — практически все, что нужно для тестирования. В противном случае под конкретную задачу всегда можно написать новый компонент. • Возможность работать, как с UI, так и без него. Выполнение тестовых сценариев в командной строке позволяет полноценно интегрировать их в сценарии CI инструментов. • JMeter умеет кластеризоваться, т.е. вы можете создать ферму нагрузочных машин, управляемых как единое целое. • Больше тут: https://jetruby.com/ru/blog/почему-мы- используем-jmeter/
  • 4. Запуск JMeter • Для работы над созданием и отладкой теста мы используем JMeter UI
  • 5. • Для запуска тест-плана используем JMeter в консоли
  • 6. • JMeter может быть запущен на любой системе, где установлена Java – Mac OS – Windows – Linux
  • 7. Перейдем к интерфейсу • Тест план имеет древовидную структуру • Внутри тест плана располагаются тесты, которые могут состоять из одного или нескольких запросов, графиков, прочих модификаторов ввода/вывода • Создадим один тест на примере запроса «login» в нашем продукте • Тест будет запущен один раз в одном потоке • Тест состоит из одного запроса (с добавлением отсутствующего header) и таблицы результатов
  • 8.
  • 9. • Запрос будет отправлен на сервер a1-qa.dev.whirl.sg • В теле запроса передается JSON с данными (Логин – Admin, Пароль – Admin) • Добавлен header который отсутствует (Content Type) – без него запрос будет не валидным • После запуска результат выполнения теста появляется в таблице результатов (одна запись соответствует одному запросу) • Детали запроса (адрес запроса, тело запроса, headers запроса) и ответ сервера отображается в соответствующих вкладках
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. А что если усложнить? • Если продолжать развивать тест, то мы невольно столкнемся со следующими проблемами: – Постоянное повторение имени сервера для каждого запроса (решается созданием и вызовом переменной) – Зависимость последующих запросов от id сессии (решается парсингом ответа сервера при логине и добавлением переменной в headers) – Зависимость последующих запросов/потоков от id страницы (решается генерацией уникального ключа и добавлением переменной в тело запросов)
  • 15. Создаем переменную с именем сервера
  • 17. Парсим ответ сервера при лог-ине по маске регулярного выражения
  • 18. Генерируем случайное значение для переменной по маске
  • 19. Добавляем в список новый запрос с переменными
  • 20. Для нового запроса добавляем необходимые headers
  • 21. Подведем итоги! • Мы создали тест, который может быть масштабирован как в длину (количество запросов), так и в ширину (количество потоков) • Мы научились генерировать случайные данные для переменных • Мы научились парсить ответы для дальнейшего переиспользования их в переменных • После запуска мы видим в таблице результатов что все отработало • Проверяем информацию, которую отправили и которую получили
  • 23. Ответ сервера показывает что все правильно
  • 24. Запустим наш тест с нагрузкой • Запустим тест из двух запросов • Будут использованы 5 потоков (пользователей) • Каждый запрос будет отправлен 3 раза • Перерыв между запросами – 2 секунды • Добавим несколько разных вариантов отчетов • В суммарной таблице видим средние данные по каждому запросу • На графике видим отчет о длительности запросов • Пройдемся более детально…
  • 26. Результат запуска в виде результатов запросов
  • 27. Суммарная таблица по каждому запросу
  • 30. Увидим тенденцию графика более детально
  • 31. Попробуем запустить через консоль • Заходим в папку и запускаем jmeter в консоли • Флаг –n означает запуск без GUI • Флаг –t позволяет вводить путь к файлу с тест планом • Флаг –l позволяет указать куда сохранить файл отчета • Отчет опционален и поддерживается в формате csv
  • 34. Попробуем запустить поломанные тесты • Чтобы проверить пользу нагрузочного тестирования мы можем проверить разные виды запросов: – Запрос, который написан неверно – Запрос, который усложнен и будет выполняться дольше обычного • Рассмотрим репорты после запуска этих запросов – Таблицу результатов – Суммарный отчет – График длительности