Rational PerformanceStudio - средство автоматизированного тестирования распределенных сетевых приложений.

Степанов И.С.



Если вы производите сложные программные продукты, вкладываете значительные средства и ресурсы в их разработку и хотите быть уверены в их стабильной и надежной работе до того, как начнете внедрение, вам необходимо убедиться, что программное обеспечение работает так, как оно проектировалось и как вы этого ожидаете. Используя Rational PerformanceStudio вам нужно всего лишь несколько компьютеров для того, чтобы в лабораторных условиях эмулировать сложное окружение реального мира клиент/серверных и Интернет взаимодействий и произвести всестороннее тестирование вашей распределенной системы.

На основе PerformanceStudio вы можете создать тестовую лабораторию с центром активности, который будет эмулировать сотни и тысячи пользователей, посылающих и получающих информацию, воспроизводя тем самым сложное взаимодействие между вашим клиентским приложением и базами данных, другими приложениями и Web серверами. В такой лаборатории командным пунктом становится компьютер, который при инсталляции PerformanceStudio был определен как Мастер. С этого компьютера вы организуете тестирование, наблюдаете за процессом и анализируете результаты выполнения тестов сэмулированными пользователями графического интерфейса (GUI) и виртуальными пользователями (VU).

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

При организации работы вашей тестовой лаборатории вы можете загрузить сам Мастер-компьютер работой по воспроизведению скриптов, а можете перераспределить задачи выполнения скриптов между несколькими компьютерами - Агентами, которые высвободят ресурсы Мастера. Используя компьютер Мастер в сочетании с его Агентами для воспроизведения скриптов можно создать значительно более мощную и реалистичную нагрузку при тестировании характеристик производительности серверов. Агенты могут воспроизводить различные комбинации VU и GUI скриптов, обеспечивая тем самым дополнительную гибкость и масштабирование при организации тестов в сложных гетерогенных сетевых структурах. Если Мастер-компьютер работает только на MS Windows NT, то Агенты могут быть установлены на различные платформы MS Windows и UNIX.

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

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

Типы тестов

Тесты производительности (Performance Tests) позволяют определить, работает ли многопользовательская система в соответствии с требуемыми стандартами при изменяющихся нагрузках. В результате выполнения тестов измеряются времена отклика системы на какой-либо из запросов, и на основе собранной статистической информации делаются заключения о характеристиках системы. Тесты производительности выполняются с помощью программы LoadTest. При этом тестировании типично используется нагрузка сервера большим количеством виртуальных пользователей. Например, вы можете установить таймер для одного VU, чтобы определить, сколько времени займет выполнение запроса, когда тысячи других VU посылают запросы на тот же самый сервер в то же самое время. Термин 'тесты производительности' включает нагрузочные, стрессовые, конкурирующие и конфигурационные тесты. Совокупность этих тестов позволяет ускорить цикл тестирования производительности и достигнуть значимых и точных результатов.

Нагрузочное тестирование (Load Tests) выполняется тогда, когда нужно определить время отклика серверов или клиентских приложений при изменяющейся нагрузке. Нагрузочное тестирование также используется тогда, когда нужно вычислить, какое максимальное количество транзакций может выполнить сервер за определенный временной отрезок. Если клиент/серверная система использует распределенную архитектуру или средства балансировки нагрузки – нагрузочное тестирование может быть использовано для того, чтобы проверить правильность выбранных методов для балансирования или конструирования системы.

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

Стрессовое тестирование (Stress Test) - это проверка работы системы в экстремальных условиях, т.е., когда испытуемая система искусственно ставится в условия, которые могут привести к сбою в работе как клиентской или серверной части приложений, так и всей системы в целом.

Способов организации стрессового тестирования может быть великое множество, например:

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

Конкурирующее тестирование (Contention Test) выполняется как комбинация GUI и VU на одном или нескольких компьютерах, для того чтобы эмулировать действительное многопользовательское окружение. Например, можно создать тест, когда несколько GUI пользователей и множество виртуальных пользователей в одно и тоже время будут обращаться к той же самой базе данных для обнаружения проблем в управлении многозадачностью или блокировках. Без автоматизированного средства тестирования такие тесты, требующие точной синхронизации действий большого количества пользователей, выполнить практически невозможно.

PerformanceStudio позволяет создавать очень сложные сценарии многопользовательского тестирования с вовлечением в этот процесс нескольких компьютеров с большим количеством GUI и VU пользователей. При этом, например, пользователи одного из компьютеров будут ожидать результатов выполнения действий пользователями другого компьютера и только потом вступать в процесс тестирования. Например, пользователи на одном из компьютеров добавляют записи в базу, а на другом ждут завершения выполнения этого скрипта, а затем читают внесенные записи и т.п.

Конфигурационное тестирование (Configuration Testing). Каждый пользовательский компьютер может иметь различную смесь аппаратных и программных особенностей, которые создают риск того, что создаваемое программное обеспечение будет работать на одном из них, а на другом не будет. Снизить вероятность возникновения таких ситуаций можно применением конфигурационных тестов, когда один раз созданные скрипты для GUI и VU пользователей будут выполняться на компьютерах с различными OS или конфигурациями программных и аппаратных средств. Например, если вы используете несколько типов сетевых карт, вы можете выполнить серию тестов для каждой из них с тем, чтобы определить, какая обладает лучшими характеристиками.

Распределенное функциональное тестирование (Distributed Functional Testing).

Полный цикл функционального тестирования сложного клиент/серверного приложения может потребовать выполнения большого количества скриптов. При этом GUI скрипты будут последовательно выполняться с помощью программы Robot на одном из компьютеров в течение очень долгого времени. PerformanceStudio позволяет значительно ускорить процесс тестирования за счет вовлечения в процесс тестирования большего числа компьютеров и распределения между ними GUI скриптов для выполнения. Все управление процессом тестирования в данном случае берет на себя программа LoadTest, которая собирает информацию ходе процесса тестирования, распределяет скрипты между освободившимися компьютерами и в случае потери сетевого соединения с каким-либо из них, передает выполнявшийся им скрипт на выполнение следующей освободившейся машине.

Типы записи

Выполняемая PerformanceStudio интеллектуальная запись на уровне пакетов гарантирует, что скрипты, которые вы записываете, точно отражают трафик между клиентами и серверами, несмотря на скорость передачи данных.

PerformanceStudio поддерживает три режима интерактивной записи скриптов:

API – Записывает API вызовы из клиентских приложений и клиентских библиотек к серверам. API режим записи является рекомендуемым подходом для всех клиентов, работающих на платформе Windows NT. В этом режиме и PerformanceStudio и клиентское приложение оба устанавливаются на клиентский компьютер.

Network – записывает трафик по TCP/IP протоколу на уровне сетевого интерфейса. Этот тип записи рекомендован тогда, когда клиент не поддерживает API режим записи.

Proxy – в этом режиме записывается тот же самый трафик, что и в режиме записи Network, но для передачи пакетов между клиентом и сервером используется машрутизация через proxy компьютер. Этот специализированный тип записи применяется в высокоскоростных сетях и сетях с коммутаторами.

Типы скриптов

PerformanceStudio работает с двумя типами скриптов – VU скрипты и GUI скрипты.

Скрипты виртуальных пользователей используются для тестирования производительности взаимодействия клиентских приложений и баз данных, web серверов и других серверных приложений. VU скрипты представляют собою запросы к серверам, такие как, например, SQL или HTTP и измеряют времена отклика серверов на эти запросы.

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

Используя PerformanceStudio можно очень просто создавать скрипты - не зная даже вообще и азов программирования. DataSmart технология записи, используемая в PerformanceStudio, позволяет в режиме непосредственной работы с тестируемой системой генерировать готовые к работе скрипты и тестовые данные. Этот уникальный тип записи автоматически замещает все встречающиеся в скрипте строковые данные переменными, вместо которых затем, при воспроизведении, могут быть подставлены данные из ваших баз данных или из подготовленных пулов данных. Подставляя реалистичные данные во время воспроизведения, вы создаете условия более надежной проверки работы, когда виртуальные пользователи достоверно эмулируют действия различных пользователей посылающих запросы серверу.

Вместе с тем, PerformanceStudio позволяет создавать, расширять и изменять скрипты вручную. В качестве языков скриптов в PerformanceStudio используются С-подобный VU-язык для записи скриптов виртуальных пользователей и Basic-подобный SQABasic для записи GUI скриптов. Если вы знаете C – значит вы можете сами писать скрипты для виртуальных пользователей, а если вы знакомы с MS Basic – значит вам не составит труда разобратьсяв в SQABasic кодах. Вы можете расширить возможности скриптов за счет вызова процедур из внешних библиотек и программ.

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

Создание расписаний

Основу процесса тестирования в PerformanceStudio составляют расписания (schedule). Расписания в PerformanceStudio обеспечивают гибкий, настраиваемый путь для создания нагрузки на тестируемую систему, которая бы моделировала многопользовательское окружение реального мира. Используя LoadSmart технологию создания расписаний можно моделировать сложную нагрузку без какого-либо программирования. Например, вы можете моделировать сотни пользовательских запросов, вызывающих стрессовое воздействие на сервер базы данных или тысячи запросов к какой либо странице web сайта.

Строительными блоками каждого расписания тестирования в PerformanceStudio являются эмулируемые пользователи, организованные в группы пользователей, и действия этих пользователей, которые оформлены в виде скриптов. При организации расписания вы можете задать весовой коэффициент участия пользователей в каждой из групп для того, чтобы создать реалистичную модель загрузки сервера базы данных. Например, вы можете задать, что 20% всех пользователей выполняют действия сотрудников Бухгалтерии, 50% - Отдела продаж и 30% -менеджеров по работе с персоналом. Затем вы генерируете скрипты, которые представляют собою деятельность представителей этих групп и добавляете эти скрипты в расписание. Для каждой из групп вы можете определить, какой из компьютеров будет принимать участие в выполнении скриптов.

Другой технологией, которая используется в PerformanceStudio для того, чтобы придать большую реалистичность тестам, является ClientSmart pacing. В основе этой технологии лежит модель, которая автоматически распознает задержки, вызванные действиями пользователя (user delays) и задержки, связанные с работой клиентского приложения (CPU delays) в процессе записи сессии тестирования. Точно воспроизводя во время выполнения скриптов оба типа задержек, тестовые расписания могут с большой степенью достоверности имитировать работу клиентского приложения.

Выполнение расписания тестирование и мониторинг результатов

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

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

Анализ результатов

По завешению последнего теста из расписания, PerformanceStudio автоматически начинает выполнять статистическую обработку результатов и выводит отчеты, которые содержат точные сведения о результатах тестирования, о производительности тестируемого сервера, о его масштабируемости, о его устойчивости при большой загрузке и т.п. Если установки по умолчанию не были изменены, то выводятся только два основных отчета - Производительность и Статус, в которых отображается распределение по времени отклика выполняемых команд и статистика успешного завершения тех же команд..

Если отчеты, создаваемые по умолчанию, не удовлетворяют вашим нуждам, на основе имеющихся данных легко можете создать другие, изменить их вид. Если многообразия средств, предоставляемых PerformanceStudio все-таки недостаточно, то можно воспользоваться входящим в комплект поставки PerformanceStudio профессиональным генератором отчетов Crystal Reports.

В заключение несколько ответов на часто возникающие вопросы при первом знакомстве с продуктом:

Что такое PerformanceStudio? PerformanceStudio это интегрированное средство автоматизированного тестирования любых приложений, работающих в сети на платформах MS Windows или комбинированных MS Windows/Unix.

Для чего предназначен PerformanceStudio? PerformanceStudio измеряет и прогнозирует параметры производительности сетевых приложений.

Для кого предназначен PerformanceStudio? PerformanceStudio предназначен для компаний - разработчиков клиент/серверных, ERP, e-бизнес и WEB приложений.

Какие тесты выполняет PerformanceStudio? PerformanceStudio выполняет нагрузочное тестирование (load testing), стрессовое тестирование (stress testing), тестирование производительности (performance testing), конкурирующее тестирование (contention testing), конфигурационное (configuration testing) и распределенное функциональное (distributed functional testing) тестирование.

Какие требования к системе предъявляет PerformanceStudio при установке?

В зависимости от задач, стоящих перед тестовой лабораторией, PerformanceStudio может устанавливаться на одном или большем количестве компьютеров, включенных в LAN. Основное программное обеспечение устанавливается на компьтере, называемом Мастер (Master). Это должен быть PC-совместимый компьютер с Pentium процессором (166 MHz или лучше). Мастер работает на OS MS Windows NT 4.0 (Service Pack 3 или выше) server или workstation. Минимальные требования к оперативной памяти – 64 Mb + 1-3 Mb на каждого виртуального пользователя. Дисковое пространство для установки c учетом возможности последующей работы – более 200 Mb.

Компьютеры, работающие под управлением Мастера, называются Агентами (Agent). Программное обеспечение Агентов может устанавливаться на PC совместимые компьютеры с Pentium процессорами 166 MHz и лучше. Агенты работают на OS MS Windows NT 4.0 и на UNIX системах, таких как AIX 4.x, HP-UX 10.x или 11.x, Sequent 4.x, Solaris 2.x.

Дополнительная информация

За дополнительной информацией обращайтесь в Interface Ltd.


Interface Ltd.

Tel: 7+(095) 135-55-00, 135-25-19
E-mail: mail@interface.ru
http://www.interface.ru
Подготовили: kurmaz@interface.ru
tkachev@interface.ru

Дата: 26.04.2000