HP StormRunner Load. Практическое руководство. Часть II

Продолжаем серию статей, посвященных HP StormRunner Load.Первую часть вы можете почитать здесьРОЛЬ: Инженер производительностиВ этом упражнении мы рассмотрим нагрузочный тест с использованием HP TruClient — агента записи, подключаемого к браузеру Firefox.Что представляет собой HP TruClient? HP TruClient — это передовой механизм записи, который подключается к браузеру Firefox (существует также версия TruClient для Internet Explorer, версия для Chrome находится в стадии разработки), чтобы записывать ваши действия в ходе навигации по браузеру. TruClient создает скрипт этих действий, запуск которого может быть воспроизведен несколькими виртуальными пользователями. Число таких пользователей затем может быть увеличено, чтобы создать требуемую нагрузку на сервер.Скрипты HP TruClient отличаются от некоторых других типов скриптов, поскольку они более реалистично отражают действия пользователя браузера. Скрипт на основе API (Application Programming Interface) точно воспроизводит нагрузку на сервер, но не содержит всех тех задач, которые могут быть возложены на сервер с точки зрения человека, использующего браузер.Преимущество скриптов TruClient заключается в том, что их гораздо проще создавать и поддерживать. Браузеры (и TruClient) автоматически выполняют корреляцию данных конкретной сессии, в то время как в скриптах HTTP/HTML она должны быть тщательно запрограммирована. Оба типа записей формируют необходимую нагрузку, однако HP TruClient создает более простую имитацию реальных пользователей и их полного взаимодействия с браузером.Единственный недостаток, характерный для скриптов HP TruClient, связан с масштабируемостью. При воспроизведении записи API на сервере требуется очень небольшое количество ресурсов (процессора и памяти). Это означает, что на данном аппаратном обеспечении можно запустить больше таких виртуальных пользователей, чем виртуальных пользователей TruClient. Тем не менее, учитывая низкую стоимость облачных генераторов нагрузки, использование скриптов TruClient может оказаться вполне выгодным.Установка HP TruClient в ваш браузер Firefox Поскольку модулю HP TruClient необходимо понимать, что происходит в вашем браузере, он устанавливается непосредственно в Firefox в качестве плагина и перехватывает команды и действия, выполняемые в браузере.Щелкните элемент Get Started (Начало работы), расположенный в правом верхнем углу вашего браузера.dd7e6a4ec49347ff828ebd12952852d8.png В диалоговом окне Get Started with StormRunner (Начало работы со StormRunner) щелкните кнопку Get TruClient (Получить TruClient).61fc66e012684359b35824999a4083ba.png Появится диалоговое окно с запросом разрешения на доступ к этой надстройке и на ее установку. Выберите Allow (Разрешить) и нажмите Install Now (Установить сейчас).7516717893c046928c1854f16fec35e2.pngfd164e817c3d488588857f7ef62bb903.png По запросу перезапустите браузер. Если запрос не появился, в меню выберите Дополненияab303a7e57f04716a62044342149af90.png В списке установленных расширений вы увидите HP TruClient. Нажмите ссылку Restart Now (Перезапустить сейчас)ee0176531b1c41bb8d66dd243e026d25.png После перезапуска Firefox вы увидите новую панель в левой части браузера. Эта новая панель — интерфейс TruClient, где вы будете записывать и редактировать свои скрипты интерфейса пользователя (UI). Вы можете в любой момент свернуть эту панель, щелкнув кнопку TCf78e0476516d4a83a600020d3977b149.png На рисунке ниже объясняются некоторые из функций панели TruClient.4de13b8156b8401fb225a52bbd384dd4.png Запись скрипта HP TruClient В следующем разделе мы запишем простой скрипт с использованием HP TruClient. Действия, которые вы выполняете во время сессии записи, часто называют бизнес-процессами или моделями использования. Это конкретные шаги, формирующие взаимодействие пользователя с сервером.Например, при покупке книги в книжном магазине вы, вероятно, выполните следующие действия: Вход в систему. Поиск книги. Добавление книги в корзину. Оформление заказа. Сначала вы запишете эти шаги и сохраните их в скрипт. При запуске своего нагрузочного теста вы часто будете комбинировать этот скрипт с другими подобными бизнес-процессами, чтобы точно воссоздать типичную нагрузку на сервер. Вы также размножите его, чтобы имитировать большое количество пользователей.ПРИМЕЧАНИЕ. Хотя мы иногда используем такие термины, как «имитация» или «моделирование», тот вид трафика, который генерирует HP StormRunner Load, является очень аутентичным. Серверы, предоставляющие хостинг веб-сайтам, не проводят различий между виртуальными и реальными пользователями. В правильно спроектированном нагрузочном тесте трафик так же реален, как и обращения реальных людей к веб-сайту.Откройте в браузере Firefox новую вкладку. Отрегулируйте размер окна браузера таким образом, чтобы была видна панель TruClient и оставалось достаточно места для окна с нужным вам сайтом. Убедитесь, что вам видна панель записи HP TruClient. Щелкните кнопку Start Recording (Запись), а затем перейдите на веб-сайт www.hp.com. Убедитесь, что TruClient отображает записанную строку, содержащую введенный вами URL. При записи с помощью TruClient все другие вкладки Firefox будут закрыты. Выберите ссылку на сайте hp.com и позвольте связанной с ней странице полностью отобразиться в Firefox. Затем щелкните кнопку Back (Назад) в браузере, чтобы вернуться на начальную страницу. Если во время записи появляется вопрос или другое всплывающее окно, закройте его. Выберите в общей сложности 4 различные ссылки и каждый раз возвращайтесь обратно с помощью кнопки Back (Назад) в браузере. Ваш скрипт будет выглядеть приблизительно следующим образом: 65a400fb8d6a48db8dedf428b3108fc0.png Щелкните кнопку Stop (Остановка записи) на панели TruClient.Создание транзакций Транзакция — это своего рода логический блок, включающий в себя весь ваш скрипт или его часть. Транзакциям присваиваются описательные имена. У транзакций есть начало и конец. Вместе с запуском команды, которая является начальной точкой транзакции, начинается отсчет времени, длящийся до завершения транзакции.В этом разделе мы добавим в наш скрипт пару транзакций, чтобы определить, как долго будут выполняться определенные действия.Выберите первую строку в вашем скрипте и щелкните пиктограмму Start a Transaction (Начало транзакции).ac6eb29911cc43028b94b1382af92686.png Назовите эту транзакцию «FullProcess». Мы будем использовать её для определения длительности всего нашего скрипта.54c2024629264d6c82f808a5206c28dd.png Выберите последнюю строку в скрипте и щелкните пиктограмму End Transaction (Конец транзакции). b8a0742d95f24e2293f4dbcc0e7a18d3.png Вы заметите, что имя «Full Process» будет указано автоматически. Эта транзакция измерит время выполнения всего скрипта. 63d7e9821ef5449b81363b43a3f4a3c6.png Выберите одну из строк, содержащих Click on… link (Щелкнуть ссылку …). Создайте и начало, и конец транзакции на этой строке и назовите эту транзакцию «Click Link».f4bbda720f0c406597511eff49892003.png Из меню File (Файл) сохраните ваш скрипт на Рабочем столе локального компьютера e1623d5d63f34aa9ba2ff81799db2f83.png и назовите его «HP_Navigate». a8742112f4fe40ffaa45c057f918c897.png (ПРИМЕЧАНИЕ. При выборе варианта Save for StormRunner (Сохранить для StormRunner) создается файл для загрузки немного меньшего размера. Ваш законченный скрипт будет выглядеть приблизительно следующим образом: b12736ba121041e496c145b28750808a.png РОЛЬ: Инженер производительностиЦели нагрузочного тестирования Теперь, когда у нас есть записанный скрипт, мы можем начать моделировать виртуальных пользователей, получающих доступ к нашему веб-сайту. В обычном случае вы, как правило, определяете наиболее типичные сценарии взаимодействия пользователей с сайтом (обычно 10–20) и записываете скрипты для каждого из них.Некоторые из них в большей степени обращаются к базе данных, и мы можем сосредоточиться на них с целью настройки БД. Другие создают больше нагрузки на веб-сервер и помогут оптимизировать этот компонент инфраструктуры.У нагрузочного тестирования может быть несколько целей. Например, мы хотим определить, с каким количеством пользователей справится сайт, прежде чем производительность начнет падать. Мы также можем проверить, какие элементы инфраструктуры в большей степени подвержены нагрузке, чтобы заняться их оптимизацией. Или протестировать инфраструктуру сети для выявления и устранения «узких мест».Все эти тесты генерируют различные данные и решают разные задачи. Каждый из них предназначен для выявления определенных проблем и оптимизации веб-приложений.Создание нагрузочного теста В этом примере мы будем использовать только что записанный нами скрипт и рассмотрим некоторые основные характеристики производительности веб-приложения. Этот тип нагрузочного теста задействует небольшую нагрузку и служит основой для будущего тестирования. При наличии базовых тестов, которые не слишком нагружают нашу инфраструктуру, мы можем сравнить результаты дальнейших тестов, с более высокой нагрузкой, и увидеть, что требует особого внимания.Сверните надстройку HP TruClient, щелкнув пиктограмму в правом верхнем углу. f78e0476516d4a83a600020d3977b149.png Войдите в HP SaaS и запустите приложение StormRunner Load. 05013a4efe82448eb4d3204e96825056.png Убедитесь, что отображается диалоговое окно Get Started with StormRunner (Начало работы со StormRunner). Щелкните кнопку Create a test (Создать тест). 6c342435ba9342768e96fda29da45745.pngПРИМЕЧАНИЕ. Чтобы увидеть эту кнопку, может потребоваться прокрутить страницу вниз. Выберите вкладку Overview (Обзор) в левой части и присвойте вашему тесту имя HP_Loadtest.025622a0ae7a42d5895f1fba52eeb499.png Выберите вкладку Scripts (Скрипты) в левой части e5260d4010f54b1aa2969207869d3192.png и щелкните Upload (Загрузка).1b99fec09e9342ad975f4a6f7ec42fbd.png Выберите файл HP_Navigate.zip, в котором хранится ранее записанный вами скрипт, и щелкните Open (Открыть). Подождите, пока скрипт загрузится.0d3ad0a2473a46d2918e47df94906a38.pngПРИМЕЧАНИЕ. Скрипты сохраняются в виде файлов .zip, так как они состоят из множества отдельных файлов. После загрузки скрипта установите значение Vusers (Виртуальные пользователи) равным 20.Установите значение Ramp up (Время добавления) равным 00 01 00 минуте.Установите значение Duration (Продолжительность) равным 00 05 00 минутам.Установите значение Tear down (Время удаления) равным 00 01 00 минуте.94b1844d4b664746be3f7767eb99f725.pngТаким образом вы создаете тест, в котором количество виртуальных пользователей, имеющих доступ к сайту, вырастет с 0 до 20 в течении минуты, затем все пользователи будут взаимодействовать с сайтом на протяжении 5 минут, и наконец в течение еще одной минуты количество пользователей упадет до нуля. Выберите вкладку Distribution (Распределение) в левой части df052058cd2b40cdac504393751aa8fb.pngДобавьте новый регион (Add Location) 60a0af4aacdb406e9c5a1d74621a916c.pngВыберите Орегон 58ec1fce718e482bb05da01502b452b7.pngУстановите распределение как 50% из восточного региона США (штат Вирджиния) и 50% из западного региона США (штат Орегон). 780e2bfc7ba24277b8b109c5bfe15748.png Это означает, что из 20 виртуальных пользователей 10 будут формироваться в облачных генераторах западной части США и 10 — в облачных генераторах восточной части США. Выберите вкладку SLA в левой части 9dead661c51849b5a6337326641be76e.png и установите время отклика транзакции (TRT) равным: FullProcess: 35 секундClickLink: 5 секунд55ddfc8e591f41e8a95a63580faf5627.pngПараметр SLA (Соглашение об уровне обслуживания) определяет пороговые значения для нашего теста. Если в какой-либо транзакции пороговые значения будут превышены (то есть соглашение об уровне обслуживания будет нарушено), это будет отражено в результатах. Запуск нагрузочного теста Теперь у нас есть тест, загруженный в HP StormRunner Load и сконфигурированный для запуска работы 20 пользователей в течение 5 минут. Виртуальные пользователи будут добавляться постепенно в течение 1-минутного периода и также постепенно удаляться в течение 1 минуты по окончании теста. Фактический трафик будет генерироваться из обоих регионов США (западного и восточного). Эти системы обычно называют генераторами нагрузки, они расположены в облаке.Выделение ресурсов генераторов нагрузки (запуск и инициализация скриптов) происходит при запуске вашего теста.Щелкните кнопку Run Test (Запуск теста) в правом верхнем углу для запуска вашего теста. 585bc283e7c5424b80220029a48be521.png Вы можете отслеживать ход инициализации теста в диалоговом окне ниже.2e597108e92d4d7fb56fb9a358251807.png Пока тест выполняется, проверьте статистику в графиках. Во время выполнения теста отображаются четыре графика наряду с некоторой информацией о ходе тестирования.ГрафикиRunning Vusers (Запущенные виртуальные пользователи) — этот график показывает добавление, постоянную нагрузку и удаление ваших 20 виртуальных пользователей. В нашем примере 20 виртуальных пользователей добавляются в течение 1 минуты и работают в течение 5 минут, а затем постепенно удаляются. Постепенное наращивание и снижение числа виртуальных пользователей важны для поддержания целостности сервера и предотвращения внезапных пиков нагрузки.0e153886d6254363bff51d8f5a234974.pngHits per Second (Количество хитов в секунду) — показывает количество обращений (хитов) или файлов, запрошенных с сервера. Так как страница часто содержит несколько ресурсов, при посещении страницы загружается несколько файлов или ресурсов. График с количеством хитов в секунду дает относительное представление трафика, генерируемого нагрузкой виртуальных пользователей.0da29e7e3d5b4f0295199ae838d23b0c.pngThroughput (Пропускная способность) — этот график отслеживает объем данных (в байтах в секунду), поступающих от сервера и вызываемых непосредственно из приложенной нагрузки. Часто он в общей форме коррелируется с графиком количества хитов в секунду.c33c556987414d0c9d79a3b3da2ad823.pngErrors (Ошибки) — показывает количество ошибок сервера, которые возникают при работе виртуальных пользователей: например, если виртуальный пользователь получает ошибку 404 или 500 в ответ на запрос страницы. Все типы кодов ошибок сервера отслеживаются на этом графике.3683b602786540fda618eca251aec3ba.pngВы можете изменить формат представления результатов с режима виджетов на линейный, выбрав соответствующий пункт: 8f93bf79ea1e4e0e96c786684e3f6fc6.pngКак вы думаете, что показывают затененные участки (которые появляются через некоторое время после начала теста)? Они представляют собой исходные данные измерения, собранные с начала теста, и демонстрируют базовые показатели «нормального» поведения, прогнозируемого StormRunner.

Дождитесь завершения вашего теста и проверьте итоговую статистику, такую как Duration (Продолжительность), UI Users (Пользователи интерфейса пользователя) и статус теста. Наш тест завершился с ошибками, предстоит разобраться в причинах. А ваш тест пройден? 2099ada8891f482ab36c5fc81164dcdb.png Мы проанализируем результаты в следующем разделе.

© Habrahabr.ru