Разделы портала

Онлайн-тренинги

.
Подготовка сценариев для JMeter с помощью BadBoy
17.01.2011 13:15

Автор: Алексей Баранцев

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

Начну я с рассказа про "золотую середину" -- инструменты с декларативным стилем описания сценариев, то есть не требующие умения программировать, но всё-таки позволяющие задать достаточно сложный сценарий. Потом постепенно перейдём к инструментам, которые позволяют писать сценарии на некотором языке программирования. Далее я расскажу про онлайновые сервисы, позволяющие генерировать нагрузку "из облака". А потом -- про всё остальное :)

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

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

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

Итак, будем считать, что вы внимательно ознакомились с условиями лицензии, загрузили и установили BadBoy.

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

Ну и конечно там есть рекордер. Вот с него-то мы и начнём:

Давайте запишем парочку тестов. Встаём на нужный тест, жмём красную кнопку, вводим в адресную строку URL приложения и работаем с ним как в обычным браузере (впрочем, это и есть обычный браузер -- для записи и воспроизведения тестов в BadBoy используется вложенный Internet Explorer). Потом аналогично делаем второй тест. Результат выглядит примерно так:

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

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

А сейчас мы перенесём подготовленные сценарии в JMeter. Для этого нужно воспользоваться пунктом меню "File->Export to JMeter" и сохранить сценарий в jmx-файл:

Внимание: здесь имеется тонкий момент, связанный с тем, что JMeter, начиная с версии 2.4 прекратил поддержку старого формата jmx-файлов, а BadBoy версий до 2.1 включительно сохраняет jmx-файл как раз в старом формате. Поэтому нужно либо использовать BadBoy версии как минимум 2.1.1 (которая на момент написания статьи существует пока только в виде беты), либо сконвертировать jmx-файл в новый формат при помощи какой-нибудь предыдущей версии JMeter (например, 2.3.4) -- открыть файл в старом формате и снова сохранить его, он автоматически сконвертируется.

В итоге, когда вы сумеете открыть полученный файл в JMeter, вы увидите там записанный сценарий:

И теперь уже в JMeter вы можете продолжить над ним работу -- перегруппировать, параметризовать, уточнить проверки (которые иногда экспортируются не совсем корректно, потому что BadBoy позволяет делать более мощные проверки, чем JMeter), определить профили нагрузки, добавить необходимые средства мониторинга, и в конечном итоге -- запустить тесты.

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

Обсудить в форуме