Как тестировать отчеты на нагрузку. Нагрузочное тестирование «по-быстренькому

с опорой на реальные кейсы расскажет, в какой последовательности проводится тестирование и что измеряется на каждом из этапов.

Первым в череде тестов проводится стресс-тест (Stress Test ) , цель которого – установить предельный уровень производительности продукта. Стресс-тест позволяет проанализировать зависимость ключевых характеристик системы (времени отклика самых важных бизнес-транзакций, количества запросов в секунду, количества транзакций в секунду) от количества одновременно работающих пользователей.

Во время стресс-теста нагрузка на систему подается непрерывно до тех пор, пока не будет достигнут один из критериев его остановки. Например, стресс-тест банковской системы был остановлен при превышении отметки в 1500 пользователей, когда высокая загруженность процессора (более 80%) привела к увеличению среднего времени отклика в пять раз и массовому появлению ошибок HTTP(S).

На втором этапе проводится нагрузочный тест (Load Test) , с помощью которого оценивается способность системы справляться с длительной нагрузкой (4-8 часов). Количество пользователей для нагрузочного теста определяется в количестве 80% от результата максимальной производительности, выявленной при стресс-тесте. Уровень нагрузки при тестировании банковской системы поддерживался на одном уровне в течение восьми часов и составил 1200 пользователей. Нагрузочный тест показал существенное ухудшение производительности системы с течением времени, а дополнительное профилирование ее компонентов позволило обнаружить дефекты, проявляющиеся только при длительной работе большого количества пользователей (например, утечки памяти).

Как правильно подавать нагрузку на систему?

При проведении нагрузочного тестирования важно аккуратно подойти к установке инструмента нагрузочного тестирования. Инструмент устанавливается на генератор нагрузки – виртуальную или физическую машину, ресурсы которой используются для создания нагрузки на систему. Генератор нагрузки должен располагаться максимально близко к тестовому окружению. Это необходимо для устранения искажений при подаче нагрузки, вызванных задержками сети, величина которых может варьироваться от нескольких миллисекунд до нескольких десятков секунд.

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

Так, во время тестирования бразильского видеопортала среднее время отклика от сервера составило 20 секунд при запуске тестов с рабочей машины в европейском регионе. А при запуске с виртуальной машины, развернутой в одной локальной сети с тестируемой системой, - 2 секунды. Таким образом, обеспечение наивысшей скорости обмена данными между клиентом и сервером, позволило протестировать приложение в условиях, приближенных к идеальным.

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

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

По желанию заказчика возможно проведение дополнительных видов тестов.

Дополнительные виды тестов производительности

Задачей объемного теста (Volume Test) является оценка производительности системы при увеличении объемов данных, хранимых в базе данных приложения. Схема подачи нагрузки при данном виде теста такая же, как и при нагрузочном. Для проведения теста требуется база данных, заполненная необходимым объемом данных. Так, при тестировании биллинговой системы для оператора мобильной связи, объем данных был выбран исходя из ее прогнозируемого наполнения через два года после выхода обновленной версии системы в производство.

Тест на стабильность (Stability Test) позволяет оценить работоспособность системы при длительной ожидаемой нагрузке в режиме работы 24/7. К примеру, если веб-сайт посещают пользователи, находящиеся в разных часовых поясах, уровень нагрузки может сохраняться постоянным. Помимо возможных перезапусков серверов системы под продолжительной нагрузкой, при тесте на отказоустойчивость также изучается влияние редких событий на деградацию производительности системы, например, работа сборщиков мусора.

Тест на масштабируемость (Scalability Test ) оценивает способность системы увеличивать производительность пропорционально увеличению масштаба нефункциональных возможностей. Так, после проведения нагрузочного теста и замера характеристик производительности веб-приложения к его серверам добавляется дополнительный сервер с аналогичными характеристиками. При повторном запуске нагрузочного теста можно оценить изменение производительности и корректность работы балансировщика нагрузки. Тест на масштабируемость позволяет определить эргономичность расхода ресурсов системы, увеличить ее рабочий потенциал и рационализировать инвестиции в аппаратное обеспечение.

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

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

Наилучшим решением проблем со стабильностью и сбоями в работе веб-серверов является обеспечение двухуровневой архитектуры приложения: клиентской, или Front - end , части и серверной, или Back - end , части.

Пользователь открывает браузер и отправляет запрос к странице сайта на Front - end сервер. Запрос принимается и запрашивается у исполнительной части веб-приложения – Back - end сервера, который хранит логику приложения, обеспечивает выполнение PHP-скриптов и генерирует HTML-страницы. Front-end принимает сформированную страницу от Back-end и в качестве ответа на запрос пользователя передает ее в браузер. Получив страницу, браузер пользователя начинает ее отображение, что сопровождается отправкой серии запросов на графический контент и CSS. Эти запросы принимает Front-end и обрабатывает без обращений к Back-end’у.

Оценка скорости работы клиентской и серверной частей веб-приложения осуществляется двумя разными видами тестирования: для Front-end применяется тестирование клиентской части, или Client - Side Testing , а для Back-end – тестирование производительности серверной части .

Основная цель тестирования клиентской части состоит в измерении времени, необходимого браузеру, для загрузки HTML-страницы. Наиболее важными показателями здесь являются количество загружаемых данных, их объем, а также количество выполненных запросов.

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

Помимо общего веса страницы, инструменты предоставляют детализированную информацию по каждому из компонентов. Изучив параметры запросов, можно обнаружить ряд проблем, приводящих к ухудшению скорости отображения страницы. К примеру, подгружается слишком большая картинка и Javascript, или отправляется значительное количество запросов.

Улучшить скорость отображения страницы можно с помощью уменьшения размеров, сжатия элементов (CSS, Javascript и графического контента), а также путем сокращения названий переменных и оптимизации кода страницы.

Другая необходимая проверка направлена на анализ заголовков кэширования, поскольку корректность его выполнения при повторном посещении страницы позволяет повысить скорость загрузки страницы до 80%.

Тестирование клиентской части также позволяют обнаружить ряд дефектов, например, отсутствие или некорректную работу элементов на странице.

Тестирование производительности серверной части направлено на анализ выполнения запросов и получения соответствующего запроса от Back-end.

Цели данного вида тестирования:

  • Измерить время отклика самых важных бизнес-транзакций;
  • Определить предельный уровень допустимой нагрузки;
  • Выявить «узкие» места в производительности системы;
  • Составить рекомендации по улучшению производительности;
  • Найти возможные дефекты, проявляющиеся только при одновременной работе большого количества пользователей.

Может кому будет интересно как «по-быстрому» провести нагрузочное тестирование своего веб-приложения.
Подробности под катом

Вместо предисловия

На сегодняшнем стендапе Марек (программист из Польши принимающий участие в проекте EmForge) сказал, что общался с рядом друзей, у которых в прошлом был большой опыт работы с Liferay (который мы как раз активно используем) - и опыт оказался очень негативный, в первую очередь из-за проблем со скоростью. Некоторые проекты тупо накрылись из-за того что эти проблемы так и не получилось решить.

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

Не «по-быстренькому»

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

Вообщем задача не на один час

А по-быстренькому?

Но тут я вспомнил, что на Хабре была статья (статью к сожалению не нашел - так бы кинул ссылку), где человек сетовал, что люди не прогоняют нагрузочное тестирование на своем сайте, шлют ссылку на хабр, а потом, когда надо снимать «сливки» с хабраэффекта мучительно сайт поднимают (а пользователи не видят ничего кроме сообщений об ошибках).
Так вот там кто-то советовал несколько сервисов, которые проводят такое нагрузочное тестирование.

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

Совсем по-быстренькому?

Если совсем по-быстрому - то это Load Impact - не надо никаких регистраций - заходите - даете URL - и в течении 10-15 минут 50 виртуальных пользователей терроризируют вашу страницу. Тупо, просто - но по крайней мере позволит увидеть что при первом же наплыве ваше приложение не ляжет. Не легло? Идем дальше

Нагрузочное тестирование за 1.5 часа

Мне очень понравился LoadStorm . С ним работа строится следующим образом:
1. регистрируемся
2. Создаем тест - в котором указывает сайт который будем пытать
3. Прежде чем начать пытку- требуется верификация (а вдруг вы хотите положить сайт конкурента????). надо на главную страницу положить определенный текст с кодом - или файл с определенным именем в корень
4. Дальше создаем сценарий - при создании сценария описываем, как пользователь идет по вашему сайту, какие линки нажимает, можно засабмитить формы. Все достаточно интуитивно и понятно
5. потом говорим когда запустить
6. в назначенное время тест запускается, ждем 30 минут пока до 50-ти пользователей бродят по вашему сайту согласно вашим указаниям - и получаем отчет.

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

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

На этом графике показывается как терзалась система - в моем случае максимально было 47 пользователей - и чуть более 3-ех запросов в секунду
Ну и самый интересный


Из которого следует - что если исключить максимальный пик в 5 секунд (в этот момент решил включиться Garbage Collector) - в остальном приложение вело себя хорошо - и не зависимо от количества пользователей - то есть - нагрузка в 50 пользователей сайт не нагружает - есть еще и запас хороший.

Понятно - что такое тестирование не совсем «серьезное» по выдаваемым результатам, да и 50 одновременных пользователей - нельзя назвать серьезной нагрузкой, но, учитывая потраченное время (полтора часа) и деньги (0 руб) - результат вполне адекватный. По крайней мере мы убедились что если с производительностью есть какие-то проблемы - в ближайшие месяцы мы ее все-таки не увидим

Чуть подлинней и подороже

Если хочется чуть более серьезного - можно попробовать

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

Бесплатные инструменты для проведения нагрузочного тестирования.

Наш обзор мы начнём с инструментов, которые предоставляются в открытом доступе.

Apache JMeter, наверное, один из наиболее популярных и часто используемых инструментов нагрузочного тестирования. Изначально JMeter был разработан для тестирования web и FTP приложений. В наше время, он также часто используется для функционального тестирования, тестирования серверов баз данных и т.п. Для JMeter не требуется современная инфраструктура для тестирования нагрузки. Он обеспечивает поддержку нескольких инжекторов нагрузки, управляемых одним контроллером.

Давайте рассмотрим как обычно работает JMeter. На рисунке внизу Вы можете увидеть завершённый рабочий процесс JMeter.

Основные функции и преимущества JMeter.

Цена . JMeter – бесплатный инструмент, и кто угодно может использовать его ресурсы в своей разработке и тестировании.

Независимость платформы. Так как JMeter является 100% Java десктопным приложением, он может быть запущен на многих платформах.

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

Дружественный GUI (графический интерфейс пользователя). На данный момент, он может использоваться в 3 режимах: GUI Mode, Server Mode, и Command Line Mode. Для тесного ознакомления с JMeter требуется совсем немного времени.

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

Многопотоковый фреймворк . JMeter обеспечивает параллельную и одновременную выборку различных функций отдельной группой потоков.

Высокий уровень расширяемости. У вас есть возможность писать свои тест кейсы. Кроме того, специальные плагины визуализации используются для поддержки расширяемости вашего тестирования.

Моделирование. JMeter даёт возможность моделировать поведение нескольких пользователей с параллельными потоками и создавать большую нагрузку на тестируемые веб-приложения.

Поддержка большого количества протоколов. Он поддерживает все основные протоколы – HTTP, SOAP, LDAP, JDBC, JMS, и FTP.

Тестирование скриптов. Jmeter интегрируется с Selenium и Bean Shell для проведения автоматического тестирования.

Опции “Record” и “Playback Record”. Активность пользователя в браузере может быть записана и смоделирована в веб-приложении с помощью JMeter.

Интегрированная поддержка в режиме реального времени. Коллекторы Apache Tomcat позволяют осуществлять мониторинг в режиме реального времени.

Лёгкая интеграция с бесплатными библиотеками . JMeter интегрирован с бесплатными библиотеками Jenkins, Maven и Gradle.

У JMeter имеются также некоторые недостатки:

  • Нет возможности для записи HTTPS-связи.
  • Нет возможности для перехвата трафика AJAX.
  • Ограниченные возможности создания отчётов.

The Grinder ещё один популярный фреймворк для нагрузочного тестирования, написанный на Java. По умолчанию основным языком для написания скриптов в The Grinder является Jython, специальная реализация Java в Python. Тестовые сценарии также могут быть написаны на языке Clojure.

Основные составные части The Grinder:

  • The Grinder Console – это базовая интерактивная среда разработки (IDE), которая используется для создания и редактирования тест наборов. Она осуществляет мониторинг результатов в режиме реального времени, а также контролирует различные агенты The Grinder.
  • The Grinder Agents – специальные бесголовочные генераторы нагрузки. Они могут иметь несколько рабочих элементов (Workers ) для создания.

На рисунку внизу изображена система, находящаяся в процессе нагрузочного тестирования в The Grinder.

Ключевые характеристики The Grinder :

  • The Grinder – кроссплатформенный инструмент. Его можно запускать где угодно, где запускается виртуальную машину Java (Java Virtual Machine).
  • Подержка большого количества протоколов.
  • Быстрая и мощная разработка сценариев
  • Простые графики производительности для всех транзакций в одной вкладке.
  • Пользователь может писать собственные плагины для документированного интерфейса.
  • Гибкая настройка параметров.
  • У пользователя есть возможность загрузки Java API в качестве тест кейса из сервера HTTP, SOAP и REST сервисов.
  • The Grinder обеспечивает большая гибкость при загрузке и выполнении сторонних библиотек.
  • Интеграция с .

Недостатки The Grinder:

  • Случаются сбои памяти в сценариях загрузки больших файлов.
  • Консоль Grinder не может динамически регулировать уровни нагрузки, создаваемой агентами.
  • Отстутсвуюют специальные инструменты дополнительного анализа.
  • Требуются специальные знания языков Jython или Clojure.

Gatling – мощное оружие для проведения нагрузочного тестирования, написанное на языке Scala. Существуют два исполняемых файла в Gatling: один для записи тест кейсов, а другой для их выполнения. Структурно можно выделить четыре части Gatling:

  • HTTP protocol configuration помогает определить базовый URL, с которым вы будете запускать свои тесты. Кроме того, могут быть определены такие параметры: пользовательский агент, языковой заголовок и соединение.
  • Headers definition предоставляет заголовки для отправляемого на сервер запроса.
  • Scenario definition определяет набор действий, выполняемых для имитации взаимодействия пользователя с вашим приложением.
  • Simulation definition предназначен для определения количества пользователей, которые будут одновременно выполнять сценарий загрузки в течение определенного периода времени.

Основные преимущества Gatling:

  • Он работает с любой операционной системой и любым браузером.
  • Gatling поддерживает красочные и информативные графические отчеты, содержащие ценную информацию для анализа.
  • Он может выполнять свои сценарии в разных облаках для тестирования.
  • Gatling легко интегрируется с Jenkins через Jenkins-plugin, а также запускает ваши тесты через Gradle и Maven с помощью плагинов Maven и Gradle.
  • Gatling использует небольшой объем памяти.
  • Он сокращает время отладки тест кейсов.
  • Gatling позволяет легко обнаружить ошибки и недостатки в начале цикла разработки.

Недостатки Gatling:

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

Locust – свободно распространяемый набор тестовых инструментов для нагрузочного тестирования, управляемый кодом на Python. Он часто используется для тестирования веб сайтов (или других систем), показывая, сколько пользователей одновременно может обрабатывать система в условиях нагрузки.

Locust основывается на оригинальной идее. Согласно этой идее, полчища саранчи атакуют ваш сайт во время теста. Вы можете смоделировать поведение каждой особи саранчи (пользователя). Такая атака отслеживается через веб-интерфейс в режиме реального времени и помогает определить слабые места вашего кода.

Основные преимущества

  • Любая система может быть протестирована с помощью Locust
  • Это кроссплатформенный инструмент с легко расширяющимися возможностями.
  • Код Locust удобен для многократного использования.
  • Высокий уровень кастомизации. Существует возможность объединять несколько запросов в один сценарий, группируя запросы с определенными кастомными параметрами.

Недостатки

  • Потери статистических данных. Locust собирает и отображает статистику до тех пор, пока не будет достигнуто требуемое количество пользователей. После этого все статистические данные сбрасываются, и начинается сбор новых.
  • Тестирование на Locust нельзя остановить. Невозможно определить, сколько активных действий должен имитировать каждый пользователь.
  • Отсутствует доступ ко всем ресурсам. Например, Locust не будет запрашивать URL-адрес, если вы не дадите ему явные указания сделать это.

ApacheBench, наверное, один из самых простых инструментов нагрузочного тестирования. Первоначально она разрабатывалась как программа для тестирования Apache HTTP Server с помощью командной строки. На самом деле, ApacheBench может быть эффективным для тестирования любого веб-сервера.

Если вы пользователь macOS или Linux, ApacheBench уже установлен на вашем компьютере. Если же вашей операционной системой является Windows, просто инсталлируйте Apache и вы увидите ab . exe в папке apache / bin .

Основные преимущества ApacheBench:

  • Он лёгок в использовании и изучении.
  • Не требуется установка никакого дополнительного ПО.
  • ApacheBench – инструмент, который экономит ваше время и деньги.
  • В ApacheBench существует возможность установить общее количество запросов, количество параллельно выполняемых запросов и ограничение по времени для всех запросов.

Недостатки

  • Ограниченное число функций.
  • Отсутствует возможность полноценной и всесторонней оценки производительности приложения.
  • Нет поддержки HTPS протокола.

Siege – специальная утилита для нагрузочного тестирования HTPP и HTPS протоколов. Он также может использоваться в качестве инструмента для тестирования веб-серверов. Siege является GNU/Linux-инструментом, но сейчас он был успешно перенесен в AIX, Solaris, HP-UX и BSD.

Ключевые характеристики Siege:

  • Поддержка HTTP, HTTPS, FTP протоколов, кукис, а также простых проверок подлинности.
  • Он легко компилируется с операционными системами, созданными на базе Unix.
  • Siege – многопотоковый инструмент
  • Существует возможность эмуляции пользователей.
  • Он может запускаться с несколькими IP-адресами с одного компьютера.
  • Поддерживается выполнение простых тестовых сценариев.

Некоторые недостатки Siege:

  • Он не может быть запущен на Windows. Хотя, вы можете решить эту проблему с помощью Cygwin .
  • Siege – ресурсоёмкий инструмент.
  • Он не подходит для серьезных и масштабных испытаний с сотнями тысяч потоков.

Taurus – открытая для использования, мультифункциональная платформа, разработанная BlazeMeter. Taurus расшифровывается как T est Au tomation Ru nning S moothly (Автоматизация тестов запускается гладко). Одной из основных идей создания Taurus, было усиление возможностей таких бесплатных инструментов как JMeter, Selenium, Grinder, и Gatling.

Преимущества

  • У Taurus простая настройка и обновления.
  • YAML или JSON упрощают управление версиями тестовых сценариев
  • Taurus легко совмещается с JMeter, Selenium, Grinder, и Gathling, существенно расширяя их производительность.
  • Отчёты в режиме реального времени доступны во время исполнения тест кейсов.
  • Уже существующие сценарии могут быть повторно использованы в Taurus.
  • Тесная интеграция с BlazeMeter.
  • Простой способ определения гибких критериев прохождения / отказа.
  • Taurus запускается всюду, где можно запустить Python и Java
  • Taurus интегрирован с CI инструментами, такими как Jenkins.

Некоторые недостатки

  • Taurus поглощает много ресурсов.
  • Изменение конфигурации оборудования выходит за пределы его возможностей.
  • Не поддерживаются долговременные тесты на выносливость.

Коммерческие инструменты нагрузочного тестирования, которые имеют бесплатные версии.

Следующая группа инструментов тестирования нагрузки, которую мы будем рассматривать, это коммерческие инструменты, которые имеют бесплатные версии. Конечно, у большинства коммерческих инструментов для тестирования нагрузки есть бесплатный пробный период. Но в этой части мы поговорим об инструментах с постоянными бесплатными версиями.

Как правило, существуют разные виды ограничений использования этих инструментов. Например, количество пользователей, количество исполненных тест кейсов в месяц, время тестирования и т. п.

WebLOAD инструмент для нагрузочного тестирования и анализа приложений, распространяемый RadView Software. Этот мощный инструмент с одинаковой эффективностью может применяться как для тестирований веб-приложений, так и для мобильного тестирования. Тестовые сценарии генерируются в JavaScript и могут быть расширены и отредактированы с использованием различных инструментов в среде IDE.

WebLOAD распространяется на бесплатной и коммерческой основе. Следует упомянуть, что WebLOAD Free Edition (бесплатная версия) включает в себя почти все характеристики коммерческой версии. Ограничения касаются максимального количества виртуальных пользователей (максимум 50 человек), некоторых исключений из Oracle Forms, Flex/AMF, а также потоковых и мультимедиа характеристик.

То есть, и небольшие команды могут использовать преимущества WebLOAD. Вот некоторые из них:

  • Поддержка основных веб-технологий.
  • У пользователя есть возможность генерировать нагрузку в заданном месте или в облаке.
  • Мастер интерфейса помогает улучшить скрипт.
  • Аналитические панели WebLOAD предоставляют более 80 настраиваемых шаблонов отчетов.
  • Пользователь может автоматически распространять результаты тест кейсов между членами своей команды.
  • WebLOAD легко интегрируется с такими популярными инструментами: Selenium, Jenkins, Perfecto Mobile, New Relic, Dynatrace и т.д.
  • Автоматическое определение потенциально уязвимых мест.
  • Широкий набор средств для мобильного тестирования
  • Комбинация локальной и виртуальной пользовательской нагрузки.
  • Высокоуровневая пользовательская поддержка.
  • Мощный корреляционный механизм.

Недостатки

  • Отсутствует поддержка Citrix.
  • WebLOAD в большей степени сфокусирован на разработчиках, а не на специалистах по QA. Поэтому для его конфигурации требуются специальные технические навыки.
  • Обновление не позволяет использовать предыдущие сценарии.
  • Не поддерживается SAP GUI.

LoadRunner, продукт компании Hewlett Packard Enterprise, один из самых широкого используемых инструментов для проведения нагрузочного тестирования.

Компоненты

  • Virtual User Generator (VuGen ) предназначен для записи тестовых сценариев. Позволяет разрабатывать сценарии поведения виртуальных пользователей (Vuser) для различных типов приложений и протоколов.
  • Controller является основным компонентом для управления имитацией нагрузки.
  • Agents Machines (Load Generators или Load Injectors ) – виртуальные машины, через которые происходит распределение виртуальных пользователей.
  • Analysis and Monitoring обеспечивает детальный анализ результатов исполнения тест кейсов.
  • Books Online полноценная подборка материалов для изучения HP LoadRunner.

Основные этапы процесса тестирования с LoadRuner:

  • Планирование нагрузочного теста
  • Создание скрипта для виртуального пользователя
  • Определение сценария
  • Запуск сценария
  • Анализ результатов

Преимущества LoadRunner:

  • Интерактивное моделирование активности пользователя.
  • Широкий набор инструментов поддержки приложения.
  • Мощный инструментарий для проведения мобильного нагрузочного тестирования.
  • Сокращает системные требования и минимизирует вмешательство человека.
  • LoadRunner предоставляет возможность записи, воспроизведения или создания сценариев.
  • Эффективный инструмент для отслеживания использования.
  • Возможность использования из одного пункта
  • Оптимальное использование генератора нагрузки.
  • LoadRunner быстро и точно определяет основную причину проблем производительности приложений.

Некоторые недостатки

  • Невозможно запустить несколько сценариев из командной строки.
  • Необходима постоянная техническая поддержка во время исполнения тест кейсов.
  • Для установки LoadRunner требуется немало места на жёстком диске.
  • The Controller и VUGen работают только в Windows

BlazeMeter – популярная платформа для проведения нагрузочного тестирования. Предлагается бесплатная, а также различные платные версии. В бесплатной версии можно проводить запуск не более 10 тест кейсов с максимальным количеством не более 50 пользователей для каждого случая. Также в бесплатной версии предлагается только один нагрузочный генератор.

Ключевые характеристики

  • Blazemeter на 100% совместима с Apache JMeter.
  • Легко интегрируется с другими популярными бесплатными инструментами: Selenium, Locust, и Gatling.
  • Возможность запускать тест кейсы с количеством виртуальных пользователей до одного миллиона.
  • Прямой Интернет доступ к Blazemeter.
  • Blazemeter может моделировать трафик с мобильных устройств с различными уровнями сигнала и различными сетями.
  • Масштабируемое тестирование из любого места.
  • Есть возможность загрузки результатов тестирования для использования их офлайн.
  • Поддержка Sandbox тестов для проверки подлинности сценариев для ограниченного числа пользователей в течение ограниченного времени.
  • В Blazemeter имеются высоко кастомизированные и хорошо иллюстрированные отчёты, которые легко распространяются между членами команды.

Недостатки :

  • Отсутствует возможность изменения пользовательской нагрузки во время исполнения тест кейса.
  • Blazemeter нельзя использовать с Flex, Silverlight или Multimedia протоколами.
  • Не поддерживаются тест кейсы на выносливость с временем исполнения более 3 часов.

Rational Performance Tester (RPT) – инструмент тестирования производительности и нагрузки, разработанный IBM Corporation. Его можно использовать для тестирования веб и серверных приложений, где присутствует процесс ввода и вывода. RPT создает демонстрацию исходного процесса взаимодействия между пользователем и веб-службой.

Ключевые характеристики Rational Performance Tester:

  • Поддержка большого количества приложений: HTTP, SAP, Siebel, SIP, TCP Socket и Citrix.
  • Не требуется никаких специальных знаний в программировании.
  • Поддерживает диагностику серверов Websphere и Weblogic приложений.
  • Возможность запуска тест кейсов с огромным количеством пользователей.
  • Генерирует отчёты в режиме реального времени для немедленной идентификации проблемы производительности.
  • Гибкий графический планировщик тестов, в котором нагрузка может быть пропорционально распределена между группами пользователей.
  • Поддержка различных платформ и среды тестирования
  • Широкий набор инструментов для анализа первичных причин возникновения ошибок.

Некоторые недостатки Rational Performance Tester:

  • Отсутствует возможность уменьшение или наращивания ресурсов.
  • Не поддерживает тестирование приложений на Java Applet.
  • Отсутствует возможность планирования.

NeoLoad – популярный инструмент для анализа производительности веб-сайта или приложения под большой нагрузкой. Он работает с высокой эффективностью как при тестировании десктопных, так и мобильных приложений. NeoLoad написан на языке Java. Выполнение тест кейсов с количеством виртуальных юзеров не более 50, является бесплатным.

Ключевые характеристики и преимущества NeoLoad:

  • Поддержка самых современных мобильных и веб технологий.
  • Кросcплатформенные возможности NeoLoad позволяют генерировать нагрузку на различных платформах – Unix, Windows, Linux.
  • NeoLoad получает резюме выполнения тест кейса, а затем изучает его детали, используя графики и статистические таблицы. Статистика поступает с ваших серверов, процессора, памяти и т.п.
  • Реалистические тестовые сценарии помогают быстрее выявить проблемы с производительностью.
  • Облачная интеграция, мониторинг в режиме реального времени, интеграция с реальными устройствами поддерживаются не только на Android или iOS, но также на Windows Phone и Blackberry.
  • Эргономичный графический интерфейс, сокращающий время выполнения теста.
  • Существует возможность моделировать поведение виртуального пользователя и устанавливать параметры сценария, такие как политика загрузки (постоянная, нарастающая, максимальная или пользовательская) или число виртуальных пользователей, которые будут смоделированы в тест кейсе.
  • Поддерживает преобразование скриптов Selenium
  • Мониторы производительности (процессор, память, использование диска и т. д.) настроены для ваших серверов.
  • Содержимое страницы проверяется под нагрузкой.
  • Предоставляет возможность записывать любое мобильное приложение непосредственно с любого мобильного устройства с использованием режима прокси или туннеля DNS.
  • Осуществляется запись HTTP траффика между браузером и сервером.

Недостатки

  • Не функционирует в Mac OSX.
  • Нет страницы доступа DOM
  • Нет средств для создания начальных и конечных действий, чтобы фиксировать время отклика.

LoadUI – известный инструмент, использующийся преимущественно для нагрузочного тестирования web сервисов. Существует бесплатная, а также платные версии. Если вы хотите использовать LoadUI с большей эффективностью, скомбинируйте его с другим бесплатным продуктом компании SmartBear – SoapUI.

Основные преимущества LoadUI:

  • Большое количество стратегий исполнения тест кейсов.
  • Интерактивный интерфейс.
  • Поддержка API.
  • Параллельное и обособленное исполнение тест кейсов.
  • Фидбек по результам исполнения тест кейсов в режиме реального времени.
  • Возможность добавлять новые данные даже при тестировании приложения.
  • Автоматически обновляемый интерфейс.
  • Функционирует во всех основных операционных системах.
  • Визуальные отчеты LoadUI представлены в графическом формате, очень удобном для понимания.
  • Возможность создавать, настраивать и изменять тест кейсы во время выполнения.

Некоторые недостатки LoadUI:

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

CloudTest – это полноценный инструмент для проведения нагрузочного тестирования, а также тестирования производительности веб и мобильных приложений. Он может размещаться на одном или нескольких физических серверах, а также в облаке. Такие поставщики облачных сервисов как Amazon Web Services и Rackspace используются CloudTest для иммитации трафика.

CloudTest Lite – бесплатная версия. Конечно, в этой версии есть много ограничений:

  • Отстуствует круглосуточная поддержка
  • Отсутствует глобальная облачная генерация нагрузки.
  • Максимальное количество виртуальных пользователей – 100 человек.
  • Может использоваться только один генератор нагрузки.

Основные преимущества CloudTest:

  • Обеспечивает завершённое тестирование производительности мобильных устройств.
  • Аналитика в режиме реального времени.
  • Тест кейсы быстро создаются, редактируются, выполняются и анализируются.
  • CloudTest легко интегрируется с JMeter и другими часто используемыми инструментами автоматического тестирования.
  • Высокая точность моделирования сетевого и мобильного пользовательского трафика.
  • Полноценные отчёты о поведении пользователей.
  • Возможность добавлять или удалять пользователей во время выполнения тест кейса.

Недостатки CloudTest:

  • Бесплатная версия довольно таки ограничена.
  • SLA конфигурация недоступна в CloudTest.
  • Нет контроля за изменениями возможностей оборудования.
  • Отсутствует возможность использовать CloudTest для приложений Flex, Multimedia или Silver light.

LoadStorm – это простой в использовании, экономичный инструмент, который может быть использован для нагрузочного тестирования мобильных и веб-приложений. Существует открытая и платные версии этого продукта. Вы можете бесплатно запускать тест кейсы с не более чем 50-ью виртуальными пользователями.

Основные преимущества LoadStorm:

  • Не требуется специальная установка.
  • Для записи сценария требуется всего несколько минут.
  • Распространённая по всему миру, облачная платформа для запуска тест кейсов.
  • Хорошо настраиваемые отчёты.
  • Формирование аналитических отчётов в режиме реального времени.
  • Анализ производительности во время использования тест кейсов.
  • Постоянная он-лайн поддержка.
  • Обеспечивает географическое распределение трафика.

Недостатки LoadStorm:

  • С помощью LoadStorm можно тестировать только веб-приложения, доступные из облака Amazon.
  • Обязательно наличие OS Windows для его использования.

Smart Meter имеет очень мощную бесплатную версию, хотя это коммерческий инструмент для тестирования нагрузки и производительности. В отличие от других коммерческих инструментов из нашего списка, у вас есть возможность запускать тестовые примеры с 50 виртуальными пользователями бесплатно.

Также у вас есть 2 генератора нагрузки для тестирования.

Основные преимущества SmartMeter:

  • Отчёты о тестировании формируются автоматически, и содержат всю необходимую информацию о результатах исполнения тест кейсов.
  • Многофункциональный регистратор сценариев тестирования.
  • Возможность проведения нагрузочного тестирования из различных локаций.
  • Легко интегрируется с Jenkins, Bamboo, и Maven.
  • Несколько мониторов отображают результаты выполнения тест кейсов в режиме реального времени.
  • Возможность комбинирования тест кейсов с Selenium.
  • Постоянный мониторинг среды тестирования.

Недостатки SmartMeter:

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

Полностью коммерческие инструменты

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

Silk Performer (ранее известный как Borland) является мощным инструментом для тестирования нагрузки веб-приложений, мобильных и корпоративных приложений.Он помогает выявить уязвимые места приложения под пиковой пользовательской нагрузкой, используя встроенные средства диагностики и трендовые отчеты.

Ключевые характеристики Silk Performer:

  • Поддерживает все основные сетевые среды: HTML5, AJAX, Responsive Web Design, Adobe Flash/Flex, и Microsoft Silverlight.
  • Широкий спектр инструментов тестирования мобильных, нативных и веб-приложений.
  • Для моделирования поведения виртуальных пользователей требуются минимальные технические ресурсы.
  • Он генерирует хорошо настроенные отчеты с таблицами и графиками.
  • Silk Performer имеет удобную корреляцию и параметризацию.
  • Поддержка мониторинга интегрированных серверов.
  • Визуальный анализ первичных причин ошибок помогает выявить уязвимые места.
  • Неограниченная облачная масштабируемость.
  • Возможность тестировать ваши приложения на различных мобильных платформах и стандартах связи: iOS, Android, BlackBerry, GPRS, HSPA+, EDGE, и LTE.

Некоторые ограничения Silk Performer:

  • Недостаточная интеграция с инструментами глубокой диагностики для полноценного мониторинга производительности.
  • Разработан только для Windows.
  • Для тестирования нагрузки с Silk Performer требуется много памяти.
  • Возможны, проблемы с настройкой паттерна замедления.

WAPT – популярный инструмент, который одинаково эффективен для нагрузочного тестирования веб сервисов, мобильных приложений, а также всех типов веб сайтов, от интернет-магазинов до корпоративных ERP и CRM систем.

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

Основные преимущества WAPT:

  • Простая установка.
  • Быстрая запись тест кейсов и дизайн.
  • WAPT поддерживает RIA технологии и тестирование мобильных приложений.
  • Расширенные сообщения об ошибках на основе разных индикаторов: ошибки сетевого уровня, коды ответа HTTP, тайм-ауты, задержки на сервере и проверка ответа по содержимому страницы.
  • Тестирование безопасности сайта.
  • Возможность включать выполнение кода JavaScript в виртуальные профили пользователей.
  • Хорошо иллюстрированные и подробные отчеты доступны даже во время исполнения тест кейсов.
  • Встроенное средство просмра журналов позволяет вам поэтапно просматривать каждую выполненную сессию.

Недостатки WAPT:

  • Для установки WAPT необходима операционная система Windows.
  • Отсутствует возможность создание сценариев.

Testing Anywhere соредоточена на нагрузочном тестировании веб сайтов, элементов управления и контроля, GUI.

Существует 5 методов создания тест кейса в Testing Anywhere:

  • Веб-запись
  • Запись объектов
  • Распознавание образов
  • Интеллектуальная запись
  • Редактирование

Ключевые особенности Testing Anywhere:

  • Не требуется знание программирования для работы с Testing Anywhere.
  • Тест кейсы легко создаются и редактируются.
  • Возможность проведения миграционного тестирования
  • Автоматизация визуальных тестов
  • Автоматическая идентификация языка программирования. Testing Anywhere работает с Java, Net, WPF, Silverlight, HTML, Flash, и Flex.
  • Testing Anywhere предлагает единую платформу для тестирования.

Недостатки Testing Anywhere:

  • Поддерживает только Windows
  • Могут возникнуть проблемы с тестированием iOS приложений.
  • Тестируемая платформа не предоставляется для приложений, написанных на старых языках.

StormRunner Load – это самый новый из инструментов для тестирования нагрузки среди продуктов, предлагаемых Hewlett Packard Enterprise. Его можно использовать как для для мобильного, так и для веб тестирования. StormRunner – сервис, основанный на облачных SaaS технологиях, что делает его простым и доступным в использовании.

Преимущества :

  • Легок и прост в использовании.
  • Поддержка HTTP/HTML (как веб, так и мобильного), SAP Web, Java, Flex, TruClient Web, TruClient Native Mobile и TruClient Mobile Web протоколов.
  • Минималистичный и отзывчивый интерфейс.
  • Высокая масштабируемость. Существует возможность запускать тест кейсы с более чем миллион, географически распределенных, веб-и мобильных пользователей.
  • Возможность добавления/удаления виртуальных пользователей во время исполнения тест кейсов
  • Автоматическое развёртывание инфраструктуры тестирования.
  • Легко интегрируется с Jenkins, Dynatrace, Gatling, Docker, AWS Code Pipeline и New Relic.
  • Возможность моделирование выведения серверов из строя.
  • Предлагает генераторы нагрузки, расположенные в нескольких разных географических точках.
  • Быстрое обнаружение проблемы.
  • Настраиваемый аналитический отчет с помощью Network Virtualization.

Недостатки

  • Нет возможности использовать сетевую аналитику в сценариях JMeter.
  • Отсутствует возможность объёмной нагрузки FTP сервера.
  • Невозможно запланировать запуск тестов на более позднюю дату.
  • Активы, отличные от скриптов, не могут быть присоединены.

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

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

Нагрузочное тестирование – определение или сбор показателей производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству). (Википедия)

Зачем производится нагрузочное тестирование:

  • Проверка и оптимизация конфигурации оборудования, виртуальных машин, серверного программного обеспечения;
  • Оценка максимальной производительности, которую способен выдерживать проект с типовыми сценариями нагрузки на доступных ресурсах;
  • Влияние модулей проекта на производительность, сценарии обработки пиковой нагрузки;
  • Оценка стабильности при максимальных нагрузках при проведении 24-часовых тестов с учетом внешних факторов (импорты, резервное копирование и т.п.);
  • Выявление ограничений конфигурации, определение методов дальнейшего масштабирования и оптимизации.

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

Apache HTTP server benchmarking tool

Бесплатный

Официальный сайт

Самый часто используемый, т.к входит в состав Apache.

Ab ://]hostname[:port]/path

где основные необходимые options:

C concurrency - количество одновременных запросов к серверу (по умолчанию 1);
-n requests - общее количество запросов (по умолчанию 1).

В результате команды получаем такой отчет:

Concurrency Level: 10 Time taken for tests: 0.984 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 3725507 bytes HTML transferred: 3664100 bytes Requests per second: 101.60 [#/sec] (mean) Time per request: 98.424 (mean) Time per request: 9.842 (mean, across all concurrent requests) Transfer rate: 3696.43 received Connection Times (ms) min mean[+/-sd] median max Connect: 1 2 3.6 1 23 Processing: 63 94 21.5 90 173 Waiting: 57 89 21.6 84 166 Total: 64 96 21.5 92 174

Плюсы :

  • Есть везде, где есть Apache;
  • Не требует никакой дополнительной настройки;
  • Очень простой инструмент.

Минусы :

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

Joe Dog Siege

Бесплатный

Официальный сайт .

Немного сложнее ab и необходимые задачи выполняет гораздо лучше.

В файле-сценарии задаются URL-ы и запросы тестирования. Если сценарий большой по объему, то можно вынести все запросы в отдельный файл и в команде указать этот файл при тестировании:

# cat urls.txt # URLS file for siege # -- http://www.bitrix24.ru/ http://www.bitrix24.ru/support/forum/forum1/topic3469/?PAGEN_1=2 http://www.bitrix24.ru/register/reg.php POST domain=test&login=login http://www.bitrix24.ru/search/ POST

В команде указывается количество пользователей -с, количество повторений -r и задержку между хитами -d .

Результат можно выводить в log-файл или сразу в консоль в режиме реального времени:

HTTP/1.1 200 0.44 secs: 12090 bytes ==> GET / HTTP/1.1 200 0.85 secs: 29316 bytes ==> GET /support/forum/forum1/ HTTP/1.1 200 0.85 secs: 29635 bytes ==> GET /support/forum/forum1/ HTTP/1.1 200 0.34 secs: 12087 bytes ==> GET / [...] done. Transactions: 100 hits Availability: 100.00 % Elapsed time: 12.66 secs Data transferred: 1.99 MB Response time: 0.64 secs Transaction rate: 7.90 trans/sec Throughput: 0.16 MB/sec Concurrency: 5.02 Successful transactions: 100 Failed transactions: 0 Longest transaction: 1.06 Shortest transaction: 0.31

Также можно взять из access-log веб-сервера URL-ы, по которым ходили реальные пользователи и эмулировать нагрузку реальных пользователей.

Плюсы :

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

Минусы :

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

Apache JMeter

Бесплатный

Официальный сайт

Основные возможности:

  • Написан на Java;
  • HTTP, HTTPS, SOAP, Database via JDBC, LDAP, SMTP(S), POP3(S), IMAP(S);
  • Консоль и GUI;
  • Распределенное тестирование;
  • План тестирования – XML-файл;
  • Может обрабатывать лог веб-сервера как план тестирования;
  • Визуализация результатов в GUI.

Результаты выводятся в графическом виде:

Плюсы :

  • Кроссплатформенный, т.к написан на Java;
  • Очень гибкий, используется много протоколов, не только веб-сервер, но и базы;
  • Управляется через консоль и gui интерфейс;
  • Использование напрямую логов веб-сервера Apache и Nginx в качестве сценария c возможностью варьирования нагрузки по этим профилям;
  • Достаточно удобный и мощный инструмент.

Минусы :

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

Tsung

Бесплатный

Официальный сайт

Основные возможности:

  • Написан на Erlang;
  • HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, Jabber/XMPP;
  • Консоль (GUI через сторонний плагин);
  • Распределенное тестирование (миллионы пользователей);
  • Фазы тестирования;
  • План тестирования – XML;
  • Запись плана с помощью Tsung recorder’а;
  • Мониторинг тестируемых серверов (Erlang, munin, SNMP);
  • Инструменты для генерации статистики и графиков из логов работы.

С помощью собственных скриптов, которые обрабатывают логи работы, можно выводить различные отчеты по тестированию:


Плюсы :

  • Т.к на писан на Erlang, то хорошо масштабируется, зависит от выделяемых ресурсов;
  • Может выполнять роль распределенной системы, на большом количестве машин;
  • Большое количество тестируемых систем - не только веб-серверы и БД, но и, к примеру, XMPP-сервер: может отправлять сообщения, тесты с авторизацией;
  • Управление через консоль, но, благодаря поддержке плагинов, можно управлять и с помощью стороннего плагина с gui-интерфейсом;
  • Наличие в комплекте инструмента Tsung Recorder - своего рода, proxy-сервер, через который можно ходить по тестируемому сайту и записывать сразу как профиль нагрузки;
  • Генерация различных графиков тестирования с помощью скриптов.

Минусы :

  • Нет gui-интерфейса;
  • Только *nix системы.

WAPT

Платный

Официальный сайт

Основные возможности:

  • Windows
  • Платный (есть триал на 30 дней / 20 виртуальных пользователей);
  • Запись плана тестирования из десктопных и мобильных браузеров;
  • Зависимости в планах тестирования (последующий URL в зависимости от ответа сервера);
  • Имитации реальных пользователей (задержки между соединениями, ограничение скорости соединений).

Отчет можно вывести как таблицей, так и графиком.

Далеко не каждый пользователь современной компьютерной системы в повседневной работе сталкивается с понятием «нагрузочное тестирование». В основном оно знакомо веб-разработчикам и всем тем, кто использует ресурсоемкие программы. Тем не менее иногда знания в этом вопросе могут пригодиться и рядовым юзерам. Попробуем разобраться, зачем все это нужно.

Нагрузочное и цели

Прежде всего, стоит четко разграничить виды таких тестов. Условно их можно подразделить на два класса: проверка компьютерного «железа» при максимально возможной или чрезмерной нагрузке на каждый компонент и (веб-сайтов с элементами прогнозирования, отдельно взятых программ и т. д.).

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

Программы для нагрузочного тестирования и их задачи

Как видим, взаимосвязь здесь очень сильная. И если говорить о «железе», система нагрузочного тестирования с использованием специальных утилит позволяет достаточно точно выявить потенциальные неполадки при работе, так сказать, в самый простой. Современные компьютерные игры с их требованиями могут запросто нагрузить систему до такого состояния, что она вообще перестанет работать. Поэтому, прежде чем устанавливать такое ПО на компьютер, можно провести серию тестов, чтобы определить, сможет ли начинка «тянуть» игру. По результатам и принимается решение об установке программы. В принципе, то же самое касается и приложений, предполагающих проведение сложных математических расчетов, и проектных работ, поскольку нагрузка на тот же процессор или оперативную память по сравнению с обычным состоянием системы может быть превышена в разы.

Что же касается второго класса, тестирование сайта и сервера может выступать как некое универсальное средство прогнозирования их поведения в условиях реального функционирования. К примеру, это может быть эмуляция одновременного запроса доступа большого числа пользователей. Как известно, по такому принципу действуют DDoS-атаки, когда сервер или сайт не успевает обрабатывать слишком большое количество обращений. Нагрузочное тестирование сервера или сайта будет рассмотрено подробнее несколько позже. А пока займемся компьютерным «железом». Это касается не только домашних или рабочих терминалов, но и реальных физических серверных систем.

Тест процессора

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

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

При использовании утилиты для начала рекомендуется закрыть все активные приложения и отключить автоматический (сна), чтобы компьютер ненароком не отключился в процессе проверки. Теперь нужно смоделировать процессору самые жесткие условия (а программа может это сделать, как никакая другая, действительно ставя чипы в самые тяжелые условия). Сам тест активируется из меню опций, где выбирается раздел Torture Test. Там будут указаны виды проводимых операций. Наиболее интересными здесь представляются тесты Blend (одновременная нагрузка и на процессор, и на «оперативку»), а также Small FFT и Large FFT (увеличение нагрузки на процессор за счет выгрузки оперативной памяти).

Как определить, что нагрузочное тестирование прошло успешно? Единого мнения здесь нет, но считается, что если в течение хотя бы 4 часов ошибок или сбоев в работе чипа не наблюдалось, этот компонент достаточно устойчив к чрезмерным нагрузкам. Но бывает и такое, что сбои могут появиться намного позже, поэтому, если у вас имеется изрядный запас времени, лучше увеличить период тестирования до 24 часов (ошибки могут появиться и через полдня работы).

Проверка работы оперативной памяти

Не менее важным является и нагрузочное тестирование «оперативки», которая выполняет функции так называемой второй скрипки. Для этого лучше всего подойдет приложение Memtest86+, которое на сегодняшний день является наилучшим.

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

Определение поведения графического адаптера

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

Эта утилита способна нагревать графический чип намного сильнее, нежели это сделает какая-нибудь трехмерная игра с системными требованиями выше среднего уровня. Как показывает практика, условия создаются такие, что видеокарта может начинать сбоить уже в период от 15 до 30 минут после начала тестирования.

Кроме того, можно использовать и специальные утилиты, разработанные под конкретные игры. Например, очень хорошо подойдут тестовые приложения типа Alien vs Predator, S.T.A.L.K.E.R. или еще что-то в этом роде. Как правило, распространяются они совершенно бесплатно, а с их помощью можно точно установить, как будет вести себя система после установки оригинального игрового пакета.

Для чего нужно тестирование серверов и сайтов

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

Сами тесты такого типа в некоторой степени можно отнести даже к маркетинговым инструментам по прогнозированию поведения пользователей. Так, например, можно смоделировать ситуацию поведения определенного количества (максимального/пикового) людей при входе на сайт, узнать, сколько страниц может просматриваться, будет ли задействована электронная почта, например, в процессе заказа товара, как информация может использоваться для идентификации посетителей, позволит ли предоставить одновременный доступ к сайту пользователям в определенный момент времени, будет ли востребовано подтверждение пользовательских полномочий третьим лицом (например, при вводе номера банковской карты), насколько эффективным окажется внедрение Java-апплетов или использование защищенного соединения https и т. д.

Вопросы теста веб-серверов (программного обеспечения) и создаваемых Интернет-ресурсов

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

В данном случае (и для сайта, и для веб-сервера) многие советуют использовать мощнейший пакет под названием OpenSTA (System Architecture Test), который позволяет не только провести проверку, но и разбить задачи на составляющие для каждого отдельно взятого элемента структуры с использованием инструмента создания и моделирования скриптов Script Modeler. Примечательно, что после создания такой модели можно проверить даже соединение по протоколу SSL (обязательно должен быть запущен так называемый сервер имен). Кроме того, результаты можно сохранять в разделе Repository Host, а тесты объединять в соответствующие группы.

Что в итоге?

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

Похожие статьи