web на предыдущий. При наличии пакета JavaMail отчеты по проведенному тесту могут быть отправлены по электронной почте. Так же как и OpenSTA, JMeter позволяет проводить распределенные тесты. В этом случае один из компьютеров является сервером (bin/jmeter-server.bat), который управляет клиентами и собирает итоговую информацию. Использование Java подразумевает кроссплатформенность, JMeter нормально работает в UNIX (Solaris, Linux и пр.), Windows 98/NT/2000/XP и OpenVMS Alpha 7.3+. Для работы достаточно запустить в консоли файл jmeter.bat (Windows) или jmeter (UNIX). JMeter имеет встроенный проксисервер, который предназначен для записи сессий. Если тестирование производится через внешний прокси, то его параметры необходимо указать при запуске программы. $ bin/jmeter -H proxy.server ↵ -P 8000 -u username ↵ -a password
Некоторые параметры, чтобы не вводить их каждый раз, можно сохранить в файле system.properties. Перед началом тестирования необходимо составить тестовый план, описы-
вающий серию заданий, которые необходимо выполнить Jmeter. Он должен содержать одну или несколько групп потоков (Thread Groups) и другие элементы: Логические контроллеры (Logic conrollers). Типовые контроллеры (Sample generating controllers). Слушатели (Listeners). Таймеры (Timers). Соответствия (Assertions). Конфиг урационные элементы (Configuration elements). Первым делом добавляем группу потоков («Edit → Add → Thread Group»). В ее настройках (см. рис. 8) указываем название, количество запускаемых потоков, то есть виртуальных пользователей (Number of threads), время задержки между запуском потоков (Ramp-Up Period), количество циклов выполнения задания (Loop Count), здесь же возможность выполнения задания по расписанию (Sheduler). Далее, щелкая в созданную группу, необходимо добавить образец запроса (Sampler), выбрав его из списка. Для нагрузочного тестирования или проверки работоспособности сервера достаточно выбрать HTTP Request («Add → Sampler → HTTP Request»). Здесь указываем назва-
ние, IP-адрес и порт веб-сервера, протокол, метод передачи данных (GET, POST), параметры переадресации, передачу файлов на сервер. Вывод результата осуществляется с помощью Listeners. Их в списке 14, каждый выводит результат по-своему. Например, Aggregate Graph выводит суммарные результаты теста в виде таблицы и графика (см. рис. 9).
Инструмент тестирования NeoLoad Еще одна система, позволяющая провести нагрузочное тестирование вебприложений, написанная на Java, работает на компьютерах, работающих под управлением Windows NT/2000/XP, Linux, Solaris SPARC (7+). Но, учитывая, что в отчете можно получить подробную информацию по каждому загруженному файлу, NeoLoad весьма удобен для оценки работы отдельных компонентов (J2EE, NET, AJAX, SOAP, PHP, ASP, CGI, Flash, аплетов и пр.). Возможна установка времени задержки между запросами (thinktime) глобально и индивидуально для каждой страницы. Тестирование проводится как с использованием весьма удобной графической оболочки, так и с помощью командной строки (используя заранее подготовленный XML файл). Поддержива-
Сводная таблица
Сайт Тип поддерживаемой ОС Вид лицензии
Достоинства
Недостатки
72
WAPT 4.0
OpenSTA 1.4.3
Microsoft Web Application Stress Tool
Apache JMeter 2.2
NeoLoad 2.0.3
http://www.loadtestingtool.com
http://www.opensta.org, http://opensta.sf.net
http://support.microsoft.com/ kb/231282/en-us
http://jakarta.apache.org/ jmeter
http://www.neotys.com
Windows 98/Me/2000/XP/2003
Windows NT 4.0SP5/ 2000/XP
Windows
UNIX (Solaris, Linux и пр.), Windows 98/NT/ 2000/XP, OpenVMS Alpha 7.3+
Windows NT/2000/XP, Linux, Solaris SPARC (7+)
Коммерческая, 350 $
GNU GPL
Freeware
Apache License
Коммерческая, от 776 €
Понятный интерфейс, несколько видов тестов, динамическая подстановка параметров теста, индивидуальные настройки теста, IP Spoofing, мониторинг результата в реальном времени
Доступность исходных текстов, использование во время теста нескольких прокси, удобный редактор скриптов, автоматическая работа с cookies, возможность распределенного тестирования
Простой мастер создания тестов, работа с cookies, регулировка нагрузки по разным URL, бесплатно
Кроссплатформенность, тестирование ftp, баз данных, отдельных компонентов, загрузка файлов на сервер, распределенные тесты
Кроссплатформенность, тестирование отдельных компонентов, работа с виртуальными пользователями, удачные отчеты, наличие плагинов расширяющих функциональность, обработка ответа сервера, сравнение результатов
Нельзя сравнить результаты разных тестов
Необходимо время на освоение и подготовку теста, отчеты несколько не удобны, нет IP Spoofing
Неудобно рассчитывать число виртуальных пользователей, невозможность индивидуальной настройки виртуальных пользователей, очень простой отчет, нет IP Spoofing
Требуется некоторое время на освоение, нет IP Spoofing, потребляет большое количество системных ресурсов
Высокая стоимость