Учебники

5) Тестирование производительности

Производительность тестирование имеет решающее значение для определения того, что веб — приложение , испытуемый будет удовлетворять  высокие нагрузки  требований. Он может быть использован для анализа общей производительности сервера при большой нагрузке.

Тестирование производительности с использованием Jmeter 

Инструмент тестирования Apache JMeter предлагает следующие преимущества в тестировании производительности

  • JMeter можно использовать для тестирования производительности как статических ресурсов, таких как JavaScript и HTML, так и динамических ресурсов, таких как JSP, сервлеты и AJAX.
  • JMeter может  обнаружить максимальное количество одновременных пользователей, которое может обработать ваш сайт
  • JMeter предоставляет различные графические анализы отчетов о производительности.

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

Тестирование производительности с использованием Jmeter

  • Нагрузочное тестирование: моделирование ожидаемого использования путем симуляции многопользовательского доступа к веб-сервисам одновременно.
  • Стресс- тестирование. Каждый веб-сервер имеет максимальную нагрузочную способность. Когда нагрузка выходит за пределы предела, веб-сервер начинает медленно реагировать и выдавать ошибки. Цель стресс-тестирования — найти максимальную нагрузку, которую может выдержать веб-сервер.

На рисунке ниже показано, как JMeter load Testing моделирует большую нагрузку:

Тестирование производительности с использованием Jmeter

Создать план тестирования производительности в JMeter

В этом руководстве мы проводим анализ производительности Google.com для 1000 пользователей.

Перед тестированием производительности целевого веб-приложения мы должны определить

  • Нормальная нагрузка : среднее количество пользователей, посещающих ваш сайт
  • Heavy Load : максимальное количество пользователей, посещающих ваш сайт
  • Какова ваша цель в этом тесте?

Вот дорожная карта этого практического примера

Тестирование производительности с использованием Jmeter

Шаг 1) Добавить группу тем

  1. Запустите JMeter
  2. Выберите план тестирования на дереве
  3. Добавить группу тем

Щелкните правой кнопкой мыши «План тестирования» и добавьте новую группу потоков: Добавить  -> Темы (Пользователи) ->  Группа потоков

Тестирование производительности с использованием Jmeter

На панели управления «Группа потоков» введите «Свойства потока» следующим образом:

Тестирование производительности с использованием Jmeter

  • Количество потоков : 100 (Количество пользователей, подключающихся к целевому сайту: 100)
  • Количество циклов : 10 (Количество времени для выполнения тестирования)
  • Период разгона : 100

Количество потоков и количество циклов различны.

Тестирование производительности с использованием Jmeter

Ramp-Up Period сообщает JMeter, как долго откладывать перед запуском следующего пользователя. Например, если у нас 100 пользователей и 100-секундный период разгона, то задержка между начинающими пользователями составит 1 секунду (100 секунд / 100 пользователей).

Тестирование производительности с использованием Jmeter

Шаг 2) Добавление элементов JMeter

Теперь мы определим, какие элементы JMeter в этом тесте. Элементы

  • HTTP-запрос по умолчанию

Этот элемент можно добавить, щелкнув правой кнопкой мыши на группе потоков и выбрав: Добавить  -> Элемент конфигурации  -> Параметры HTTP-запроса по умолчанию.  

Тестирование производительности с использованием Jmeter

В панели управления по умолчанию HTTP-запроса введите тестируемое имя веб-сайта ( http://www.google.com ).

Тестирование производительности с использованием Jmeter

  • HTTP-запрос

Щелкните правой кнопкой мыши группу потоков и выберите: Добавить  -> Выборка  -> Запрос HTTP .  

Тестирование производительности с использованием Jmeter

В панели управления HTTP-запросами поле «Путь» указывает, какой URL-запрос вы хотите отправить на сервер Google.

Тестирование производительности с использованием Jmeter

Например, если вы введете « календарь » в поле «Путь». JMeter создаст запрос URL http://www.google.com/calendar  на сервер Google

Тестирование производительности с использованием Jmeter

Если вы оставите поле Path пустым,   JMeter создаст запрос URL http://www.google.com на сервер Google.

В этом тесте вы оставите поле Path пустым, чтобы JMeter создавал запрос URL http://www.google.com  на сервер Google.

Шаг 3) Добавление графического результата

JMeter может показывать результаты теста в формате Graph.

Щелкните правой кнопкой мыши План тестирования, Добавить  -> Слушатель  -> Результаты графика.  

Тестирование производительности с использованием Jmeter

Шаг 4) Запустите тест и получите результат теста

Нажмите кнопку «Выполнить» (Ctrl + R) на панели инструментов, чтобы начать процесс тестирования программного обеспечения. Вы увидите результаты теста на графике в режиме реального времени.

На рисунке ниже представлен график плана тестирования, где мы смоделировали 100 пользователей, которые заходили на сайт www.google.com .

Тестирование производительности с использованием Jmeter

Внизу рисунка есть следующая статистика, представленная в цветах:

  • Черный: общее количество отправленных текущих образцов.
  • Синий : текущее среднее всех отправленных образцов.
  • Красный : текущее стандартное отклонение.
  • Зеленый : пропускная способность, которая представляет количество запросов в минуту, обработанных сервером

Давайте проанализируем производительность сервера Google на рисунке ниже.

Тестирование производительности с использованием Jmeter

Чтобы проанализировать производительность тестируемого веб-сервера, необходимо сосредоточиться на 2 параметрах

  • пропускная способность
  • Отклонение

Пропускная способность является наиболее важным параметром. Он представляет способность сервера справляться с большой нагрузкой. Чем выше пропускная способность, тем выше производительность сервера.

В этом тесте пропускная способность сервера Google составляет 1 491,193 в минуту. Это означает, что сервер Google может обрабатывать 1 491 193 запроса в минуту. Это значение довольно высокое, поэтому мы можем заключить, что сервер Google имеет хорошую производительность

Отклонение отображается красным цветом — это указывает на отклонение от среднего значения . Чем меньше, тем лучше .

Давайте сравним производительность сервера Google с другими веб-серверами. Это результат теста производительности сайта http://www.yahoo.com/ (Вы можете выбрать другие сайты)

Тестирование производительности с использованием Jmeter

Пропускная способность тестируемого веб-сайта http://www.yahoo.com составляет 867,326 / мин. Это означает, что этот сервер обрабатывает 867,326 запросов в минуту, что ниже, чем у Google.

Отклонение составляет 2689, намного выше, чем Google (577). Таким образом, мы можем определить производительность этого веб-сайта меньше, чем на сервере Google.

ПРИМЕЧАНИЕ. Приведенные выше значения зависят от нескольких факторов, таких как текущая нагрузка на сервер в Google, скорость вашего интернета, мощность вашего процессора и т. Д. Следовательно, очень маловероятно, что вы получите те же результаты, что и выше. Так что не паникуйте!

Поиск проблемы:

Если вы столкнулись с проблемой во время выполнения вышеуказанного сценария … выполните следующее

  1. Проверьте, подключены ли вы к Интернету через прокси. Если да, удалите прокси.
  2. Откройте новый экземпляр Jmeter
  3. Откройте PerformanceTestPlan.jmx в Jmeter
  4. Двойной щелчок по группе нитей -> Результат графика
  5. Запустить тест