Инструментарий: Новые продукты для ИТ-профессионалов

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

Грэг Стин

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

StressStimulus

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

Существует много средств нагрузочного тестирования, обеспечивающих разный уровень тестирования — от тестов одного экземпляра к генерации синхронизированной нагрузки на многие машины, которая позволяет одновременно проверить много систем и приложений. Одно из простых в обращении средств для тестирования HTTP-приложений — StressStimulus от компании Stimulus Technology. StressStimulus интегрируется в средство отладки прокси Fiddler Web.

Fiddler активно используется уже много лет. Этот инструмент позволяет создавать, анализировать и отлаживать трафик HTTP. Этот продукт был недавно приобретен компанией Telerik, которая твердо настроена сохранить его бесплатным.

StressStimulus работает как интегральная часть Fiddler, поэтому сначала придется установить Fiddler. По завершении работы установщика StressStimulus запустите Fiddler и вы увидите новую вкладку среди других стандартных вкладок Fiddler (рис. 1). Вкладка StressStimulus содержит раздел с деревом и две панели подробностей. Навигация логически представлена тремя элементами — Test Case, Test Configuration и Test Results.

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

Если нужно, можно указать учетные данные для проверки подлинности при выполнении тестов, а также источники данных для параметризации тестов. Так можно создать четкие схемы запросов. Например, можно задавать различные данные формы при тестировании системы регистрации или строки запросов для различных сигнатур методов, предоставляемых API-интерфейсом веб-сервиса. Можно также предоставить пользовательские средства проверки ответов в виде «сырого» текста или регулярных выражений, чтобы проверять, что тот или иной запрос возвращает правильный ответ помимо стандартного результата HTTP 200.

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

StressStimulus позволяет регистрировать результаты тестов в SQL Server Compact Edition или другом экземпляре SQL Server. После выполнения тестирования в разделе Test Results можно проанализировать результаты. Здесь можно строить графики и гистограммы, а также просматривать таблицы данных с метриками производительности запросов, временами отклика, ошибками, пользовательской нагрузкой и другой информацией.

Существуют три редакции StressStimulus: бесплатная, Pro и Enterprise. Возможности бесплатной редакции ограничены — она позволяет создать один тест с числом пользователей не превышающим 100. Результаты тестирования нельзя сохранить, а время теста ограничено. Редакция Pro более функциональна, но ограничена одним тестовым сценарием, одним генератором нагрузки и 500 виртуальными пользователями. Редакция Enterprise позволяет задействовать до 100 тыс. виртуальных пользователей на многих генераторах нагрузки, а также выполнять распределенное и облачное нагрузочное тестирование. Есть бесплатная пробная 7-дневная версия.

Цена StressStimulus определяется числом виртуальных пользователей. Редакция Pro поддерживает 100 виртуальных пользователей и стоит 296 долларов, а за 500 пользователей придется заплатить 450 долларов. Цена на Enterprise начинается с 640 долларов за 100 виртуальных пользователей или 1400 долларов за 500 пользователей, доступны скидки за большее число пользователей. Есть также другие цены на разное число пользователей, а также доступна подписка на время. Так что, когда в следующий раз вы будете разрабатывать веб-приложение, подумайте о правильном выборе инструмента тестирования — он может сэкономить вам массу денег и времени в будущем.

StressStimulus

GnuWin

Я всегда жалел, что некоторых замечательных программ из мира *nix нет в Windows. К счастью, есть ряд проектов по переносу «юниксовых» утилит в Windows. Бесплатный проект с открытым кодом GnuWin существует с 2001 года и предоставляет более 160 утилит и инструментальных наборов, перенесенных в 32-разрядную версию Windows (рис. 2). Разработка в проекте практически прекратилась, но инструменты все еще вполне работоспособны.

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

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

В первую очередь вам понадобится проект CoreUtils. Он содержит базовые утилиты работы с файлами, оболочкой и текстом. Вот перечень некоторых из них:

  • ls: подробное содержимое каталога
  • ln: создание ссылок на файлы
  • shred: очистка данных из файлов
  • cat: сброс файлов в стандартное устройство вывода
  • md5sum: вычисление и проверка хешей MD5
  • head и tail: просмотр начала или конца файла
  • split: разбиение файла на части
  • whoami: вывод в командную строку идентификатора текущего пользователя
  • pwd: вывод в командную строку текущего каталога
  • env: получение значений переменных окружения.

Есть также много средств сжатия и архивации, таких как gzip и arc. Есть также средства для работы с образами: Fax2Png, Gif2Png или Bmp2Png. Другие пакеты включают такие популярные утилиты, как which, которая отображает полный путь к командам оболочки, wget для получения файлов по HTTP/HTTPS и FTP, а также исключительно замечательный инструмент поиска по шаблонам grep.

В наборе GnuWin32 есть масса полезных и удобных средств. Поэтому если вы знаете какую-то замечательную утилиту в «юниксовом» мире, посмотрите проект GnuWin — возможно она есть и для Windows.

GnuWin

Грэг Стин

Грэг Стин (Greg Steen) — профессионал в области технологий, предприниматель и энтузиаст. Он всегда в поиске новых инструментальных средств, способных облегчить работу обслуживающих подразделений, отдела контроля качества ПО и разработчиков.