 | Уровень сложности: простой Майкл Келли, консультант, www.MichaelDKelly.com
23.04.2007 В данной статье мы рассмотрим некоторые особенности Performance Tester V7. Наряду с обзором новых функций вы запишете и выполните простой тест, демонстрирующий некоторые новые возможности.
Тестирование Web-приложений
Вероятно, вы уже знакомы с IBM® Rational® Performance Tester, если нет, то здесь приводится его краткое описание. Rational Performance Tester – это инструмент, разработанный для тестирования Web-приложений с целью выявления и исправления проблем с производительностью до развёртывания. Rational Performance Tester помогает точно определять узкие места системы до её развёртывания при помощи эмуляции одновременной работы заданного числа пользователей и генерирования отчетов, которые чётко определяют плохо функционирующие Web-страницы, URL и транзакции.
Функции высокого уровня включают в себя подробное планирование тестирования на уровне пользовательской активности и модели использования каждой из их групп. Rational Performance Tester также предоставляет возможность автоматической организации пула данных, что позволяет изменять набор тестовых данных, используемый каждым смоделированным пользователем. При помощи окна, напоминающего браузер, интегрированного с редактором тестов, вы можете просмотреть Web-страницы, к которым осуществляется доступ во время записи теста. Помимо этого, опытные тестировщики могут воспользоваться опцией вставки пользовательского Java-кода в тесты производительности для выполнения таких действий, как расширенный анализ данных и синтаксический анализ запроса.
В данной статье мы рассмотрим некоторые функции Performance Tester V7. Чтобы проанализировать новые возможности, мы запишем и выполним простой тест, демонстрирующие некоторые функции.
 |
Примечание редактора Статья была написана с использованием IBM Rational Performance Tester V7.0.0, запущенного под операционной системой Microsoft® Windows® XP Pro SP2, и Web-сайта BookPool.com, по состоянию на 11 ноября 2006 г. Пожалуйста, учтите, что содержание сайта BookPool.com в том виде, как указывается в данной статье, может отличаться от фактического содержания сайта, так как он постоянно обновляется. К тому же, здесь содержится самое общее описание создания скриптов, в которых данные только считываются из системы, без изменений, подходящих для тестирования Web-приложений. Для тестов, в которых используется ввод данных, необходимо выполнить дополнительные, не описанные в статье шаги, например, формирование пула данных. |
|
Основные функции
Ниже приводится обзор функций IBM Rational Performance Tester V7.0. Их множество; здесь мы рассмотрим подробно несколько из них, а остальные поверхностно. Подробное описание всех функций содержится в Rational Performance Tester Help.
Тестирование Citrix и протокола SAP
Расширение Citrix Presentation Server позволяет выполнять нагрузочное тестирование Windows-приложений, запущенных на серверах Citrix Metaframe Presentation Servers. Это можно сделать, создавая окна и изменяя события, а также при помощи методов распознавания изображений, чтобы синхронизировать ввод пользователя с выводом сервера. Перед записью сессии приложения Citrix нужно убедиться, что поведение этого приложения полностью воспроизводимо. В частности, приложение должно всегда создавать окна и GUI-элементы в том же самом месте и в той же последовательности. События клавиатуры или мыши всегда должны производить тот же вывод.
Так как тест производительности Citrix взаимодействует с клиентом Citrix Presentation Server на самом низком уровне (движения мыши и нажатия на клавиатуру), любые изменения, которые вносятся после записи (например, перемещение тестовых элементов, добавление циклов или условий или добавление новых последовательностей) могут изменить контекст моделируемых действий пользователя и привести к задержке синхронизации. При редактировании теста важно понимать контекст действий пользователя.
Кроме Citrix, имеется также поддержка SAP-тестирования. В тесте вы можете где угодно использовать тестовые элементы, например циклы, условия и транзакции. Можно также вставить запись в указанное место в тестовой последовательности. Точки верификации для SAP улучшают возможность перехвата свойств GUI-объекта SAP, и кроме того, могут сравнивать его с ожидаемыми значениями. Более того, можно записывать и воспроизводить SAP-приложения, доступные из Web-интерфейса (при помощи генерирования Web-структур SAP).
Инструменты анализа проблем
Инструменты анализа проблем выполняют три функции:
- Собирают данные об ошибках отклика системы
- Собирают данные о мониторинге ресурсов
- Предоставляют средства просмотра и инструменты анализа собранных данных для определения причин проблем с производительностью
Это делается при помощи агентов сбора данных в инфраструктуре сбора данных трассировки, мониторинга и регистрации из производственной среды или среды разработки. Можно также использовать инструменты на базе Eclipse для просмотра и анализа кода и данных выполнения и для визуальной корреляции этих данных.
Инструменты производительности и анализа проблем позволяют обнаружить и исправить ошибки кода, которые могут привести к проблемам производительности при распределённом выполнении. Те из вас, кто знаком с IBM® Performance Optimization Toolkit, знают, что он содержит точно такие же инструменты, только не интегрированные в Rational Performance Tester. Некоторые из описываемых ниже функций (например, мониторинг ресурсов и ошибки отклика системы) более подробно рассматриваются на примере некоторых из этих инструментов.
Мониторинг ресурсов
Данные мониторинга ресурсов состоят из последовательности наблюдений, выполненных через равные промежутки времени. Данные можно собирать в режиме реального времени, либо доставлять с сервера IBM® Tivoli Enterprise™ Monitoring Server. К тому же, данные мониторинга ресурсов, как и данные по ошибкам отклика системы, дают более полное представление о системе, что помогает определить проблему. Ниже приведены некоторые примеры данных, которые можно собрать и проанализировать:
- Использование CPU (в целом, для отдельных процессоров или даже для отдельных процессов)
- Доступная память
- Использование диска
- Пропускная способность TCP/IP и сети
Эта функция предоставляет более полную информацию о системе и помогает локализовать проблему. Можно осуществлять мониторинг тестируемой системы при помощи агентов IBM® Tivoli® Monitoring, Windows Performance Monitor или монитора rstatd в UNIX®. Чтобы просмотреть данные мониторинга ресурсов, можно воспользоваться либо просмотровщиком Eclipse Test & Performance Tools Platform (TPTP) viewer, либо отчетами о производительности Rational Performance Tester.
Ошибки отклика системы
Ошибки отклика системы показывают, сколько времени было затрачено на каждую часть тестируемой системы во время её работы. Представление ошибок отклика системы связывается с элементом страницы (URL) при конкретном запуске теста или графика. Это позволяет перейти к статистике времени отклика системы на любом элементе HTTP-страницы и даёт возможность посмотреть, сколько времени тратится на каждый компонент тестируемой системы. Ошибки отклика системы используются чтобы:
- Идентифицировать проблемы кода
- Посмотреть, какие приложения на каких серверах имеют узкие места
- Перейти далее к определению, какой именно пакет, класс или метод приводит к ошибке
Чтобы собрать данные об ошибках отклика системы, необходимо задействовать эту функцию в тесте или графике и указать объём данных для сбора. Инфраструктура сбора данных (кое-что вы увидите в процессе установки инструментов Rational Performance Tester) собирает данные об ошибках отклика системы. Каждый хост, на котором запускается приложение, и с которого вы хотите собрать данные, должен иметь установленную и запущенную инфраструктуру сбора данных. Кроме того, вы должны сконфигурировать (или оснастить инструментальными средствами) каждый сервер приложений для использования инфраструктуры сбора данных.
Примечание: Включение сбора данных об ошибках отклика системы во время всего процесса тестирования может потребовать значительного объёма памяти, поэтому хорошо продумайте, где и когда вы будете его использовать.
Долгожданные свойства
Следующие две функции я ждал с того самого момента, когда вышла первая версия Rational Performance Tester. Отсутствие поддержки IP-псевдонимов и цифровых сертификатов на стороне клиента не давали мне возможности использовать Rational Performance Tester для некоторых типов приложений, производительность которых я тестирую. Теперь же такие возможности имеются
IP-псевдонимы
Rational Performance Tester имеет теперь такую необходимую функцию как IP-псевдонимы. По умолчанию, когда Вы запускаете график, каждый виртуальный пользователь имеет один и тот же IP-адрес. Но в реальности, когда ваше приложение находится под нагрузкой, дела обстоят не так. Для некоторых типов приложений это может повлиять на распределение нагрузки и даже на работу отдельных функций приложения. Благодаря данной возможности, вы можете создавать виртуальных пользователей, которые работают каждый со своего хоста.
Чтобы сделать это, настройте IP-псевдонимы на хост-компьютере и включите IP-псевдонимы в графике. При запуске графика кажется, что сетевой трафик генерируется множеством хостов. IP-псевдонимы позволяют сконфигурировать агент таким образом, что возникает впечатление, что во время пробного запуска HTTP-теста нагрузка идёт с разных IP-адресов.
Цифровые сертификаты
Цифровой сертификат – это файл, который связывает открытый криптографический ключ и лицо (им может быть пользователь или организация). Доверенная сертифицирующая организация выпускает цифровые сертификаты, которые затем используются для аутентификации пользователей и организаций и их доступа на Web-сайты, почтовые серверы и другие защищённые системы. Хранилище сертификатов – это архивный файл, который содержит любое количество цифровых сертификатов, возможно выданных различными сертифицирующими организациями.
При помощи Rational Performance Tester V7.0 вы можете:
- Создавать цифровые сертификаты
- Получать к ним доступ при помощи пула данных
- Связывать эти пулы данных с тестами
Для этого нужно создать хранилище цифровых сертификатов при помощи прилагаемой программы KeyTool, работающей из командной строки. Цифровые сертификаты позволяют записывать и запускать тесты для серверов, использующих SSL через HTTP и для приложений, которым необходимы клиентские цифровые сертификаты для аутентификации пользователей.
Другие функции
В заключение, рассмотрим несколько дополнительных функций, вошедших в версию V7.0:
- Когда вы записываете HTTP-приложение при помощи браузеров Firefox или Mozilla, вам больше не нужно настраивать браузер.
- Точки верификации содержания теперь поддерживает ожидаемые и неожидаемые результаты.
- Процедура замены имени хоста описана теперь в Помощи.
- Документация по сервисам выполнения тестов содержит более подробные примеры.
- Performance Testing SDK (комплект разработчика ПО) доступен в качестве опции при установке.
Создание скрипта тестирования производительности
Давайте рассмотрим простой пример теста производительности. Вы будете подвергать небольшой нагрузке (очень маленькой, чтобы никого не разозлить) сервер BookPool.com. Поскольку мы работаем с данным примером, мы подробно рассмотрим лишь некоторые новые свойства. Другие просто упомянуты, с тем, чтобы вы о них знали.
Чтобы создать тестовый скрипт, выполните следующие шаги.
- Откройте Create New Test в мастере Recording wizard.
- Выберите HTTP Recording как показано на Рисунке 1 и нажмите Next.
Рисунок 1. Создание нового теста при помощи мастера записи
- Введите имя скрипта, как показано на Рисунке 2. Данный тест выполняет поиск и добавляет книгу в корзину, поэтому пример называется
bookpool, что отражает его основное назначение.
Рисунок 2. Ввод имени теста
- Нажмите Finish.Запустится Recorder, как показано на Рисунке 3. Данная операция может занять несколько минут.
Рисунок 3. Запуск Recorder
- Если вернуться назад к Rational Performance Tester, как показано на Рисунке 4, можно увидеть, что Recorder Control регистрирует действия, выполняемые вами во время записи.
Рисунок 4. Управление Рекордером в Rational Performance Tester
После запуска Recorder, Rational Performance Tester открывает в браузере страницу ReadMe, как показано на Рисунке 5. На этой странице дана информация о некоторых распространенных случаях тестирования производительности. (Примечание: В зависимости от конфигурации может просто загружаться страница about:blank.)
Рисунок 5. Страница ReadMe Rational Performance Tester в Firefox
- Это панель запуска теста. В адресную строку введите URL www.BookPool.com и начните запись тестов.
- В диалоговое окно поиска введите
Software Testing и нажмите Search, как показано на Рисунке 6.
Рисунок 6. Диалоговое окно поиска
- Когда загрузится страница с результатами, нажмите кнопку Add to Basket, чтобы вывести первую книгу из результатов поиска. Когда я создал этот тест, такой книгой была How to Break Software: Functional and Security Testing of Web Applications and Web Services (Как сломать ПО: функциональное тестирование и тестирование безопасности Web-приложений и Web-сервисов) (которая, к слову, является замечательной книгой). См. Рисунок 7.
Рисунок 7. Пример первой возвращённой книги
- Когда загрузится страница корзины (Shopping Cart), закройте браузер. Закрытие браузера даст сигнал Rational Performance Tester остановить запись. Затем Rational Performance Tester сгенерирует скрипт и откроет его в редакторе тестов, как показано на Рисунке 8.
Рисунок 8. Тест производительности: редактор тестов
Тестовый редактор составляет список HTTP-страниц по заголовку. Если их развернуть, можно увидеть данные запроса и ответа по каждой странице. Можно воспользоваться редактором, чтобы просмотреть или отредактировать тест, который был автоматически сгенерирован из записываемой сессии или, если отважитесь, можно написать код теста с нуля.Следует учесть, что в версии V7.0 Common Options (стандартные опции) и HTTP Options представлены в виде вкладок в разделе Test Element Details, тогда как раньше они были на одном экране. Вы также должны проверить чекбокс Enable response time breakdown в нижней части представления.
- Если нажать на вкладку Common Options как показано на Рисунке 9, вы увидите, где указываются цифровые сертификаты для вашего теста.
Рисунок 9. Цифровые сертификаты на вкладке Common Options
В данной статье мы ничего не будем делать с цифровыми сертификатами, однако мы рассмотрим ошибки времени отклика системы.
- Чтобы увидеть разницу, не выбирайте опцию Enable response time breakdown элемента
AddToCart. Вместо этого, включите данную опцию для страницы Shopping Basket, как показано на Рисунке 10.
Рисунок 10. Выбор опции Enable response time breakdown для страницы Shopping Basket
Теперь можно создать график, чтобы можно было запустить тест.
Создание графика
Графики позволяют группировать тесты, устанавливать их порядок, а также запускать тесты на удаленных машинах. График может быть очень простым, например, когда один виртуальный пользователь запускает один тест, или очень сложным, когда сотни виртуальных пользователей в различных группах запускают разные тесты в разное время. Как вы вероятно уже знаете, при помощи графика вы можете:
- Группировать тесты, чтобы эмулировать действия различных пользователей
- Устанавливать порядок, в котором запускаются тесты: последовательно, случайно или в определённом порядке
- Устанавливать количество запусков для каждого теста
- Запускать тест с определенной частотой
- Запускать один тест или несколько на удаленных машинах
После того, как вы создали график, который описывает поведение системы, вы можете запустить его либо используя последовательные сборки тестируемого приложения, либо постоянно увеличивая количество виртуальных пользователей.
Создание графика:
- Правой кнопкой мыши нажмите на проект и выберите New > Performance Schedule.
- В мастере Performance Schedule wizard введите имя графика и нажмите Finish, как показано на Рисунке 11.
Рисунок 11. Мастер Performance Schedule Wizard
- Будет создан новый график с одной группой пользователей, как показано на Рисунке 12.
Рисунок 12. New Performance Schedule
Группы пользователей позволяют группировать тесты в логической последовательности, используя различные свойства, описывающие различные типы пользователей вашей системы. На Рисунке 12 показана одна группа, которая содержит 100% всех пользователей, участвующих в тестировании. С тем, что мы имеем на данный момент, получается, что 100% пользователей выполняют поиск, добавляют книгу в корзину, потом в последний момент передумывают и уходят на другой сайт, чтобы сравнить цены.
Для более реального распределения пользователей вы должны создать группы для тех, кто смотрит, покупает, продает и проверяет состояние заказа. Затем надо будет создать скрипты, описывающие каждое из этих действий.
Также учтите, что в этом представлении есть множество новых вкладок. Мы не станем в этой статье рассматривать их все, только несколько. Прежде всего, добавим тест к группе пользователей.
- Правой кнопкой мыши нажмите на группу пользователей, а затем выберите Add > Test.
- В диалоговом окне Select Performance Tests выберите AddToCart и нажмите OK, как показано на Рисунке 13.
Рисунок 13. Тест, добавленный к графику
Перед тем, как продолжить, посмотрите, где находятся IP-псевдонимы.
- Если нажать на группу пользователей, вы увидите IP-псевдонимы в таблице в разделе Schedule Element Details. Настраивать опцию IP aliasing вы будете при конфигурировании удаленного выполнения. В нашем случае просто оставьте выбранной опцию Run this group on the local computer, как показано на Рисунке 14.
Рисунок 14. Использование псевдонимов для элемента User Group 1
- Далее необходимо изменить время запуска для пользователей. Выберите ScheduleOne, корневой каталог для графика.
- На вкладке General в разделе Schedule Element Details выберете чекбокс Add a delay between starting each user, как показано на Рисунке 15.
Рисунок 15. Определение количества пользователей и времени задержки между запуском для каждого пользователя
- В поле Delay введите
100
миллисекунд, снова см. Рисунок 15. Имейте в виду, что Number of users (количество пользователей) установлено равным пяти.
Важно:
Пожалуйста, не устанавливайте более пяти или десяти пользователей. Я уверен, что BookPool.com вовсе не желает, чтобы их сервер подвергся атаке "отказ в обслуживании".
- Выберите вкладку Think Time и очистите чекбокс Limit think times to a maximum value, как показано на Рисунке 16. Я не сторонник искусственного ограничения времени принятия решения. Обратите внимание, что есть множество других опций, например Vary the think time by a random percentage (Случайный выбор времени принятия решения).
Рисунок 16. Установка времени принятия решения
- Наконец, выберите вкладку Response Time Breakdown и отметьте чекбокс Enable collection of response time data и набор тестовых данных AddToCart.
- После выбора тестов установите опцию Detail level в состояние High (посмотрим, что может делать этот инструмент).
- Так как уровень детализации – высокий (что может замедлить выполнение), ограничьтесь для данного теста одним пользователем.Когда это сделано, вкладка Response Time Breakdown должна выглядеть, как показано на Рисунке 17.
Рисунок 17. Установка опций ошибок отклика системы
Теперь ваш график готов к запуску.
Запуск графика
Самая трудная часть позади! Чтобы запустить график, сделайте следующее.
- В Test Navigator выберите ScheduleOne.
- Правой кнопкой мыши нажмите на графике и выберите Run > Run Performance Schedule.
Будет запущен ваш тест и генерация отчета. Вы увидите все отчеты, которые видели в ранних версиях, плюс несколько новых опций и функций. Например, отчеты, которые содержат среднее время реакции системы, теперь также предоставляют стандартное отклонение по времени. К тому же, теперь можно создавать отчет для определённого временного интервала. Мы не будем рассматривать все отчеты, рассмотрим только новые опции ошибок отклика системы.
- Многие отчеты можно найти, нажав правой кнопкой мыши на странице в любом отчете по умолчанию, как показано на Рисунке 18.
Рисунок 18. Нажатие правой кнопкой мыши на странице с опциями отчета
Вы увидите несколько опций, в том числе:
-
Display Response Time Breakdown Statistics (Отображение статистики по ошибкам времени отклика системы)
-
Display Host Response Time Breakdown (Отображение ошибок времени отклика хоста)
-
Display Page Element Responses (Отображение откликов элементов страницы)
- Если вы выберете Display Page Element Responses, отобразится среднее время для каждого элемента страницы, как показано на Рисунке 19.
Рисунок 19. Display Page Element Responses
- Если вы выберете Display Response Time Breakdown Statistics, появится мастер Selection Wizard, как показано на Рисунке 20. Здесь можно выбрать отдельный элемент.
Рисунок 20. Мастер runtime breakdown Selection Wizard
Здесь можно переходить по страницам и просматривать время отклика по каждому URL.
- Выберите URL и нажмите Finish, чтобы просмотреть подробные методы для данной страницы, как показано на Рисунке 21.
Рисунок 21. Времена отклика на уровне метода
- Если вы выберете Display Host Response Time Breakdown, появятся различные всплывающие опции отчета, как показано на Рисунке 22. Стоит заметить, что в реальном проекте тестирования (не в примере из моей статьи), вероятно, вам придется собирать данные с различных серверов (web-сервер, сервер приложения, сервер базы данных, и т. д.) В таком случае, в отчете могут быть отражены данные об ошибках отклика системы для каждого сервера тестируемой системы.
Рисунок 22. Опции Host Response Time Breakdown
- Выберите Average Base Time (seconds). Вы должны увидеть отчет, похожий на показанный на Рисунке 23
Рисунок 23. Ошибки хостов для среднего нормативного времени
Есть и другие опции формирования отчетов, но поверьте, если вы поэкспериментируете недельку только с описанными опциями, вы потратите время с пользой. Начните с этого. Затем посмотрите описание других опций формирования отчетов в Помощи.
Следующие действия
Данная статья дает основы нагрузочного тестирования с Rational Performance Tester V7.0. При помощи данного инструмента можно выполнять и другие виды тестирования производительности, но для начала этого достаточно. Когда вы начнете уверено работать с основными функциями тестирования, можете попробовать и другие возможности.
Как правило, если вы будете осваивать новую функцию каждый раз, когда запускаете инструмент, это не станет для вас непосильной задачей. Очень полезен справочник Rational Performance Tester Help, кроме того имеются хорошие ресурсы по тестированию производительности на Web-сайте IBM® developerWorks®. Я бы порекомендовал вам ознакомиться с некоторыми статьями продвинутого уровня или зайти на форум Performance and VU Testing, указанный в разделе Ресурсы.
Ресурсы Научиться
Получить продукты и технологии
Обсудить
Об авторе  | |  | Майкл Келли в настоящее время является независимым консультантом, а также занимается обучением работе с инструментами тестирования IBM Rational. Он консультирует, пишет и выступает по вопросам тестирования ПО. В данный момент он работает руководителем программы в Ассоциации по обеспечению качества Индианаполиса и является директором с неопределённым кругом обязанностей Ассоциации тестирования ПО. Связаться с ним можно по адресу Mike@MichaelDKelly.com. |
Выскажите мнение об этой странице
|  |