українська версія сайтуenglish website versionрусская версия сайта Deutsche Website Version
    ДомашняяОбучениеПосещение курсовПолучение работы QAСтатьиО насКонтактыНовостиФорум
     


    Мастерство в Обеспечении Качества ПО
    Подписаться письмом
    Наиболее популярные курсы Центра
    Какие курсы Центра Вам наиболее интересны?

     
      тел.: +38(044)45-900-46
      e-mail: classes@tester-training.com.ua

    Сравнение бесплатных инструментов тестирования производительности
    При тестировании производительности веб-приложений бесплатные инструменты могут стать выгодной (с точки зрения финансов) заменой коммерческих решений, при условии, что вы позаботились об их слабых местах. Эта статья освещает достоинства и недостатки трех популярных инструментов тестирования производительности - OpenSTA, Apache JMeter и WebLoad.

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

    • большое число одновременных пользователей
    • низкое время отклика для веб-запросов
    • общая устойчивость сервиса

    Существующие решения для тестирования производительности

    Среди популярных коммерческих инструментов для тестирования производительности можно отметить такие инструменты, как:

    • HP Load Runner
    • IBM Rational Performance Tester
    • IBM Rational Robot
    • Borland Silk Performer

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

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


    Популярные решения с открытой лицензией

    Хотя для тестирования производительности существует много инструментов с открытой лицензией (GNU) , в этой статье мы рассмотрим только самые популярные инструменты для тестирования производительности веб-приложений (HTTP/HTTPS):


    Открытый код и коммерческие решения – кто лучше?

    Вкратце, бесплатные инструменты уступают платным в следующих областях:

    • возможность комплексного наблюдения и анализа
    • имитация различного пропускного канала у пользователей
    • возможность подмены IP-адресов (IP spoofing)

    Практический подход к использованию бесплатных инструментов для тестирования производительности

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

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


    Сравнительная таблица бесплатных инструментов

    Критерий оценки Описание OpenSTA Apache JMeter WebLoad
    Протоколы протоколы передачи данных, работа с которыми могут быть записана, изменена, и воспроизведена инструментом HTTP 1.0 / 1.1 / HTTPS (SSL), SOAP/XML HTTP,FTP, SOAP/XML-RPC,JDBC HTTP/S, WAP, AJAX, ActiveX, Java, Web-сервисы; возможны скрипты, использующие несколько протоколов
    Возпроизведение выполнение скриптов и отладочные функции расширенные журнальные возможности позволяют просмотр значений параметров и сообщений сервера возможность записывать и воспроизводить действия в UI расширенный журнал, отображающий запросы клиента и ответы сервера
    Запись протокольных данных способность запоминать специфичные для протокола данные, посылаемые клиентом серверу есть для HTTP / HTTPS есть для всех поддерживаемых протоколов есть для всех поддерживаемых протоколов
    Язык скриптования средство для представления запомненных данных и управления ими для воспроизведения SCL – собственный Basic-подобный язык со специальными функциями; число функций ограничено, включает работу со строками и прямое обращение к DOM используются Beanshell/Java функции, однако, многие настройки – например, Cookie Manager – доступны через консоль Java Script – широко распространенный стандарт, отменяющий необходимость изучать другие языки
    Надстраиваемость возможность подключения дополнительных модулей для увеличения функциональных возможностей SCL модули можно выделять в подключаемые файлы; благодаря открытой лицензии возможно создание модулей на С++ можно определять Beanshell/Java функции и использовать как подключаемые модули позволяет включать собственные Java-, ActiveX- и COM-объекты в скрипты; с помощью WebLOAD Extensibility SDK возможно добавление поддержки других типов протоколов
    Интерфейс скриптования поддерживаемые интерфейсы для редактирования скриптов представление низкоуровневой структуры HTTP-протокола, графическое древовидное представление объектной модели документов (DOM); просмотр запомненных HTML-страниц и серверной таблицы заголовков; цветовое выделение кода, в небольшом объеме различные консоли для редактирования скриптов, и Beanshell/Java для расширения возможностей скриптов интуитивно понятный интерфейс позволяет новичкам создавать скрипты простым перетаскиванием объектов; возможность редактировать скрипты на Java Script
    Согласование использование динамических данных для успешного воспроизведения ручное согласование с помощью графического дерева DOM; возможность автомтической генерации кода, упрощающей подстановку переменных ручное согласование с помощью консоли Regular Expression Extractor, позволяющей определять данные для переменных модуль SmartCopy позволяет легко согласовывать данные и переменные через UI, без необходимости менять скрипты; однако, этот модуль отсутствует в бесплатной версии WebLOAD
    Управление куками (cookies) определение, запись и использование HTTP-кук; всем инструментам требуются дополнительные решения для управления куками, сгенерированными через Java Script HTTP-куки используются автоматически, могут изменяться вручную при необходимости HTTP-куки используются автоматически, управляются с помощью консоли HTTP Cookie Manager модуль автоматического управления куками позволяет не беспокоиться о динамических куках; опция Script Content в диалоге настроек записи позволяет выбирать заголовки для записи, в том числе куки
    Параметризация автоматическое изменение динамических данных, передаваемых клиентом серверу в POST-запросе, для более качественной имитации реальных пользователей; часто критично для управления сессиями широкие возможности для ввода данных, в том числе мастер-модуль для автоматической генерации данных; встроенные функции для последовательного, случайного и псевдослучайного выбора данных; встроенные функции блокировки данных, что позволяет обеспечить уникальность параметров для отдельного виртуального пользователя или всех виртуальных пользователей теста параметризация проводится в консоли Users Parameters возможность добавления данных через общий файл ввода; данные могут быть использованы несколькими виртуальными пользователями, создаваемыми на одной машине, и в нескольких итерациях
    Наблюдение сохранение информации об использовании ресурсов во время теста; возможность просмотра этой информации во время выполнения теста и построения по ней отчетов производительности NP- и SNMP-мониторы позволяют отслеживать изменения в аппаратных ресурсах, например свободная память, нагрузка на процессор и т.д. множество консолей с общим названием Listeners («слушатели»), предоставляющих информацию о производительности сервера; простейшее наблюдение за Tomcat-серверами: число потоков, свободная память наблюдение за ресурсами осуществляется с помощью менеджера измерения производительности (performance measurements manager, PMM) через брандмауэр на сервере
    Распределенное тестирование возможность распределить создание нагрузки между несколькими станциями-инжекторами поддерживает множественные инжекторы с одной управляющей станцией; использует TCP/IP для управления станциями в той же сети, и HTTP для станций в других сетях поддерживает множественные инжекторы, управляемые из одной консоли отсутствует в бесплатной версии – нагрузка создается только с одной станции
    Подмена IP-адресов (IP spoofing) возможность имитировать поведение при обращении различных IP-адресов к системе отсутствует – все запросы с одной станции имеют одинаковый IP отсутствует в стандартной версии, но может быть сымитировано с помощью собственных функций на Beanshell расширенная поддержка множественных IP, два вида:

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

    Кэширование возможность имитировать кэширование страниц, подобно браузеру можно управлять кэшированием при воспроизведении скрипта для каждого отдельного виртуального пользователя кэширование доступно через функции на Beanshell/Java отсутствует в бесплатной версии
    Скорость соединения возможность имитировать различную скорость сети, соответствующую реальным пользователям нет встроенных возможностей возможно с помощью функций Beanshell/Java, но сложно в реализации и не используется отсутствует в бесплатной версии
    Отчеты и анализ возможность просматривать и изучать результаты тестов, в том числе времени и использования ресурсов, в графическом виде простые графики и диаграммы, достаточные для анализа ключевых характеристик; возможность совмещения графиков; экспорт в Microsoft Excel; полезные инструменты и макросы доступны на форумах есть несколько графиков, но в целом отчеты отсутствуют специальная консоль отображает отчеты статистики нагрузки; тестировщик может создавать отчеты, отображающие любой набор из собираемых статистических параметров; есть переключение между графическим и текстовым (табличным) режимами; возможно сравнение с результатами предыдущей сессии
    Масштабируемость возможность инструмента создавать множество виртуальных пользователей и соответствующую нагрузку на ресурсы критичный ресурс – оперативная память: для простых ASP-страниц, 3000 пользователей «съело» 1Гб памяти на одном процессоре P4 при ОС Win2k, для сложных тестов, это число намного ниже; вероятно ограничение по числу потоков критичные ресурсы – память и число потоков; приблизительно 1500 виртуальных пользователей на станцию, лучшие результаты с Win NT/2k критичные ресурсы – память и число потоков; станция с процессором 600/733Мгц и 256Мб памяти может работать с 100-150 потоками

     

    (по материалам StickyMinds)
     
     вверх
    Копирайт © 2006 - 2007 CEQA.