| Критерий оценки | Описание | 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 потоками |