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 (Начало работы), расположенный в правом верхнем углу вашего браузера. В диалоговом окне Get Started with StormRunner (Начало работы со StormRunner) щелкните кнопку Get TruClient (Получить TruClient). Появится диалоговое окно с запросом разрешения на доступ к этой надстройке и на ее установку. Выберите Allow (Разрешить) и нажмите Install Now (Установить сейчас). По запросу перезапустите браузер. Если запрос не появился, в меню выберите Дополнения В списке установленных расширений вы увидите HP TruClient. Нажмите ссылку Restart Now (Перезапустить сейчас) После перезапуска Firefox вы увидите новую панель в левой части браузера. Эта новая панель — интерфейс TruClient, где вы будете записывать и редактировать свои скрипты интерфейса пользователя (UI). Вы можете в любой момент свернуть эту панель, щелкнув кнопку TC На рисунке ниже объясняются некоторые из функций панели TruClient. Запись скрипта 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 (Назад) в браузере. Ваш скрипт будет выглядеть приблизительно следующим образом: Щелкните кнопку Stop (Остановка записи) на панели TruClient.Создание транзакций Транзакция — это своего рода логический блок, включающий в себя весь ваш скрипт или его часть. Транзакциям присваиваются описательные имена. У транзакций есть начало и конец. Вместе с запуском команды, которая является начальной точкой транзакции, начинается отсчет времени, длящийся до завершения транзакции.В этом разделе мы добавим в наш скрипт пару транзакций, чтобы определить, как долго будут выполняться определенные действия.Выберите первую строку в вашем скрипте и щелкните пиктограмму Start a Transaction (Начало транзакции). Назовите эту транзакцию «FullProcess». Мы будем использовать её для определения длительности всего нашего скрипта. Выберите последнюю строку в скрипте и щелкните пиктограмму End Transaction (Конец транзакции). Вы заметите, что имя «Full Process» будет указано автоматически. Эта транзакция измерит время выполнения всего скрипта. Выберите одну из строк, содержащих Click on… link (Щелкнуть ссылку …). Создайте и начало, и конец транзакции на этой строке и назовите эту транзакцию «Click Link». Из меню File (Файл) сохраните ваш скрипт на Рабочем столе локального компьютера и назовите его «HP_Navigate». (ПРИМЕЧАНИЕ. При выборе варианта Save for StormRunner (Сохранить для StormRunner) создается файл для загрузки немного меньшего размера. Ваш законченный скрипт будет выглядеть приблизительно следующим образом: РОЛЬ: Инженер производительностиЦели нагрузочного тестирования Теперь, когда у нас есть записанный скрипт, мы можем начать моделировать виртуальных пользователей, получающих доступ к нашему веб-сайту. В обычном случае вы, как правило, определяете наиболее типичные сценарии взаимодействия пользователей с сайтом (обычно 10–20) и записываете скрипты для каждого из них.Некоторые из них в большей степени обращаются к базе данных, и мы можем сосредоточиться на них с целью настройки БД. Другие создают больше нагрузки на веб-сервер и помогут оптимизировать этот компонент инфраструктуры.У нагрузочного тестирования может быть несколько целей. Например, мы хотим определить, с каким количеством пользователей справится сайт, прежде чем производительность начнет падать. Мы также можем проверить, какие элементы инфраструктуры в большей степени подвержены нагрузке, чтобы заняться их оптимизацией. Или протестировать инфраструктуру сети для выявления и устранения «узких мест».Все эти тесты генерируют различные данные и решают разные задачи. Каждый из них предназначен для выявления определенных проблем и оптимизации веб-приложений.Создание нагрузочного теста В этом примере мы будем использовать только что записанный нами скрипт и рассмотрим некоторые основные характеристики производительности веб-приложения. Этот тип нагрузочного теста задействует небольшую нагрузку и служит основой для будущего тестирования. При наличии базовых тестов, которые не слишком нагружают нашу инфраструктуру, мы можем сравнить результаты дальнейших тестов, с более высокой нагрузкой, и увидеть, что требует особого внимания.Сверните надстройку HP TruClient, щелкнув пиктограмму в правом верхнем углу. Войдите в HP SaaS и запустите приложение StormRunner Load. Убедитесь, что отображается диалоговое окно Get Started with StormRunner (Начало работы со StormRunner). Щелкните кнопку Create a test (Создать тест). ПРИМЕЧАНИЕ. Чтобы увидеть эту кнопку, может потребоваться прокрутить страницу вниз. Выберите вкладку Overview (Обзор) в левой части и присвойте вашему тесту имя HP_Loadtest. Выберите вкладку Scripts (Скрипты) в левой части и щелкните Upload (Загрузка). Выберите файл HP_Navigate.zip, в котором хранится ранее записанный вами скрипт, и щелкните Open (Открыть). Подождите, пока скрипт загрузится.ПРИМЕЧАНИЕ. Скрипты сохраняются в виде файлов .zip, так как они состоят из множества отдельных файлов. После загрузки скрипта установите значение Vusers (Виртуальные пользователи) равным 20.Установите значение Ramp up (Время добавления) равным 00 01 00 минуте.Установите значение Duration (Продолжительность) равным 00 05 00 минутам.Установите значение Tear down (Время удаления) равным 00 01 00 минуте.Таким образом вы создаете тест, в котором количество виртуальных пользователей, имеющих доступ к сайту, вырастет с 0 до 20 в течении минуты, затем все пользователи будут взаимодействовать с сайтом на протяжении 5 минут, и наконец в течение еще одной минуты количество пользователей упадет до нуля. Выберите вкладку Distribution (Распределение) в левой части Добавьте новый регион (Add Location) Выберите Орегон Установите распределение как 50% из восточного региона США (штат Вирджиния) и 50% из западного региона США (штат Орегон). Это означает, что из 20 виртуальных пользователей 10 будут формироваться в облачных генераторах западной части США и 10 — в облачных генераторах восточной части США. Выберите вкладку SLA в левой части и установите время отклика транзакции (TRT) равным: FullProcess: 35 секундClickLink: 5 секундПараметр SLA (Соглашение об уровне обслуживания) определяет пороговые значения для нашего теста. Если в какой-либо транзакции пороговые значения будут превышены (то есть соглашение об уровне обслуживания будет нарушено), это будет отражено в результатах. Запуск нагрузочного теста Теперь у нас есть тест, загруженный в HP StormRunner Load и сконфигурированный для запуска работы 20 пользователей в течение 5 минут. Виртуальные пользователи будут добавляться постепенно в течение 1-минутного периода и также постепенно удаляться в течение 1 минуты по окончании теста. Фактический трафик будет генерироваться из обоих регионов США (западного и восточного). Эти системы обычно называют генераторами нагрузки, они расположены в облаке.Выделение ресурсов генераторов нагрузки (запуск и инициализация скриптов) происходит при запуске вашего теста.Щелкните кнопку Run Test (Запуск теста) в правом верхнем углу для запуска вашего теста. Вы можете отслеживать ход инициализации теста в диалоговом окне ниже. Пока тест выполняется, проверьте статистику в графиках. Во время выполнения теста отображаются четыре графика наряду с некоторой информацией о ходе тестирования.ГрафикиRunning Vusers (Запущенные виртуальные пользователи) — этот график показывает добавление, постоянную нагрузку и удаление ваших 20 виртуальных пользователей. В нашем примере 20 виртуальных пользователей добавляются в течение 1 минуты и работают в течение 5 минут, а затем постепенно удаляются. Постепенное наращивание и снижение числа виртуальных пользователей важны для поддержания целостности сервера и предотвращения внезапных пиков нагрузки.Hits per Second (Количество хитов в секунду) — показывает количество обращений (хитов) или файлов, запрошенных с сервера. Так как страница часто содержит несколько ресурсов, при посещении страницы загружается несколько файлов или ресурсов. График с количеством хитов в секунду дает относительное представление трафика, генерируемого нагрузкой виртуальных пользователей.Throughput (Пропускная способность) — этот график отслеживает объем данных (в байтах в секунду), поступающих от сервера и вызываемых непосредственно из приложенной нагрузки. Часто он в общей форме коррелируется с графиком количества хитов в секунду.Errors (Ошибки) — показывает количество ошибок сервера, которые возникают при работе виртуальных пользователей: например, если виртуальный пользователь получает ошибку 404 или 500 в ответ на запрос страницы. Все типы кодов ошибок сервера отслеживаются на этом графике.Вы можете изменить формат представления результатов с режима виджетов на линейный, выбрав соответствующий пункт: Как вы думаете, что показывают затененные участки (которые появляются через некоторое время после начала теста)? Они представляют собой исходные данные измерения, собранные с начала теста, и демонстрируют базовые показатели «нормального» поведения, прогнозируемого StormRunner.
Дождитесь завершения вашего теста и проверьте итоговую статистику, такую как Duration (Продолжительность), UI Users (Пользователи интерфейса пользователя) и статус теста. Наш тест завершился с ошибками, предстоит разобраться в причинах. А ваш тест пройден? Мы проанализируем результаты в следующем разделе.