Microsoft Пусть не иссякнет в Microsoft тот дух товарищества, который возможность единомышленникам из АСЕ Team написать эту книгу.
PERFORMANCE TESTING MICROSOFr WEB APPLICATION Microsoft ACE Team ТЕСТИРОВАНИЕ ПРОИЗВОДИТЕЛЬНОСТИ WEB-ПРИЛОЖЕНИЙ Microsoft ACE Team Москва 2003 004.45 Microsoft Corporation М59 Тестирование производительности Web-приложений Microsoft Пер. с англ. Ч М.: дом Русская 2003.
- 352 ил.
ISBN 5-7502-0224-0 Эта написана группой специалистов Microsoft, ших и настроивших сотни Web-сайтов и Web-приложений, Ч Application Consulting and Engineering (ACE) Team (группа консалтинга и приложений Microsoft). Она познакомит вас с новинка ми в области тестирования, анализа и настройки производительности Web-приложении. В книге применение для планирования и выполнения тестов производительности, настрой ка средств профилирования, а также анализ данных о производитель ности Microsoft IIS, упрааляемого кода и SQL-уровня. Также здесь описана методология, которую Microsoft применяет ного тестирования собственных, наиболее загруженных и высокопро сайтов.
Книга состоит из 10 и предметного указателя, и снабжена ком пакт-диском, содержащим примеры кода.
004. ББК Подготовлено к изданию по лицензионному договору с Microsoft Corpo ration, Редмонд, Вашингтон, США.
Application Expert Ч охраняемый товарный знак компании Corporation. ActiveX, BackOffice, JScript, Microsoft, Microsoft PowerPoint, Visual Basic, Visual InterDev, Visual ) +, Visual SourceSafe, Visual Win32, Windows и Windows NT яв ляются товарными знаками или охраняемыми товарными знаками кор порации Microsoft в США и/или других странах. Все другие товарные знаки являются соответствующих фирм.
Все названия компаний, организаций и а также имена лиц, используемые з примерах, и не имеют никакого ния к реальным компаниям, организациям, продуктам и лицам.
й издание на английском Microsoft Corporation, Microsoft Corporation, ISBN (англ.) й и к изданию, издатель ISBN 5-7502-0224-0 дом Редакция, Благодарности XI Введение XII Для кого написана эта книга XII Материалы на прилагаемом к книге компакт-диске XIII Как пользоваться прилагаемым компакт-диском Требования к конфигурации XIV Обзор глав книги XV Поддержка ГЛАВА 1 ОСНОВЫ АНАЛИЗА ПРОИЗВОДИТЕЛЬНОСТИ Важность тестирования и настройки производительности Эффекты старых и новых технологий Что такое Платформа Стандартные протоколы UDDI Что такое Web-сервис Необходимость Web-сервисов для поддержки типов устройств Необходимость Web-сервисов для тестирования Web-производительности Целевые показатели производительности Поведение пользователей при взаимодействии с компьютером Тестирование производительности вашего приложения Планирование анализа производительности 1 Создание эффективных нагрузочных сценариев 1 Исполнение нагрузочных сценариев Анализ результатов измерения VI Оглавление ГЛАВА 2 ПОДГОТОВКА И ПЛАНИРОВАНИЕ ТЕСТИРОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ Определение целевых параметров производительности Допустимое время отклика Пропускная способность и число одновременных пользователей Анализ потенциального роста производительности Профиль активности пользователей Профиль активности сервера Идентификация пользовательской активности Web-приложения Выявление лузких мест в серверной части приложения Ключевые метрики производительности Моделирование реальной среды работы приложения Составление плана тестирования производительности Заключение ГЛАВА 3 ТЕСТИРОВАНИЕ С ПОМОЩЬЮ ACT Основы Что такое ACT Microsoft ACT на компьютер Базовые понятия ACT Динамические тесты Параллельные пользователи и параллельные сессии ACT Пользователи и группы Cookie Заголовки Аутентификация и шифрование Использование SOAP с ACT Обработка состояния отображения Защита Web-сайта от ошибочного нагрузочного тестирования Запуск ACT Обзор пользовательского интерфейса ACT Создание тестового сценария Исполнение нагрузочного теста Заключение..... Оглавление VII ГЛАВА 4 МОНИТОРИНГ ПРОИЗВОДИТЕЛЬНОСТИ ПРИЛОЖЕНИЯ С ПОМОЩЬЮ СИСТЕМНОГО МОНИТОРА Использование системного монитора Наблюдение за производительностью в реальном времени Частота замеров Генерация и просмотр журналов Мониторинг удаленных компьютеров Объекты, счетчики и применяемые для выявления лузких мест места при использовании процессора Решение типичных проблем, связанных с перегрузкой процессора Объект System места при работе с диском Как ACT Team выявила лузкое место подсистемы Влияние архитектуры дисковой подсистемы на производительность Память Как ACT Team выявила утечку памяти Создание и настройка оповещений Заключение ГЛАВА 5 АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ РАБОТЫ В СЕТИ Проведение анализа сетевой производительности приложения Сетевые задержки Сетевые Уменьшение числа сетевых обменов Передаваемые данные Уменьшение объема передаваемых данных Задержки обработки Сокращение задержек обработки Время отклика Пользовательские сценарии Работа с Microsoft Network Monitor Сбор сетевого трафика Оглавление Работа с Application Expert фирмы Compuware 1 Анализ сетевых данных с помощью Application Expert Заключение ГЛАВА 6 АНАЛИЗ И НАСТРОЙКА ПРОИЗВОДИТЕЛЬНОСТИ Особенности конфигурации и параметры производительности Расширения имен файлов для Аутентификация в Конфигурационные файлы Знакомство с Web-приложением Профилирование Web-приложения Файлы журнала Трассировка на уровне кода Счетчики системного монитора Советы по настройке производительности Состояние приложения и состояние сессии Кэширование в Отключение состояния отображения 1 ADO.NET Типичные лузкие места Web-уровня Масштабируемость на Масштабирование вширь, масштабирование вверх или настройка производительности? Когда масштабировать Как масштабируется Заключение 1 ГЛАВА 7 АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ КОДА и производительность Microsoft Language Компилятор по требованию Возможность предварительной компиляции Жизненный цикл Web-приложения Период загрузки Ч домены приложения 1 Период выполнения - взаимодействие Период выполнения Ч сбор мусора Период выполнения Ч исключения 1 Оглавление Счетчики производительности Memory Объект CLR Loading Объект CLR Объект CLR Exceptions Объект CLR Security Профилирование управляемого кода Знакомство с Compuware DevPartner Studio Использование AppMetrics для наблюдения за компонентами Enterprise Использование AppMetrics для предварительного мониторинга Мониторинг рабочего приложения Заключение ГЛАВА 8 АНАЛИЗ Выявление мест Наш инструментарий Проблемы блокирования Настройка индексов Анализ планов выполнения Индексы Правильный выбор индексов Заключение ГЛАВА 9 ОЦЕНКА ЭФФЕКТИВНОСТИ ПОСРЕДСТВОМ ТСА Одновременные подключения: термин без четкого определения Обработка одновременных запросов на сервере Одновременные в ТСА Преимущества проведения ТСА Пять этапов ТСА Этап 1: создание профиля пользователя Этап 2: нагрузочный тест для определения затрат на действия пользователя Этап 3: расчет стоимости каждого действия пользователя Этап 4: оценка пропускной способности сайта Этап 5: проверка пропускной способности сайта X Оглавление ГЛАВА 10 МОДЕЛИРОВАНИЕ:
ПРОГНОЗА ПРОИЗВОДИТЕЛЬНОСТИ Прогнозирование и оценка производительности с помощью ТСА Усложненное моделирование производительности Технология моделирования производительности моделирования Методы моделирования производительности Инструменты моделирования производительности инфраструктура технологии оценки производительности Indy Архитектура Indy Итоговое сравнение ТСА и моделирования производительности Создание сценариев что, если с помощью Indy Заключение указатель Об авторе Группа Microsoft Application and Consulting Engineering (ACE) Team выражает свою благодарность всем тем, кто оказал нам помощь и поддержку при работе над книгой. мы го ворим спасибо нашим шефам Ч Майку (Mike Adams) и Трейси Шелл (Tracy Shell), в то, что работа над кни не помешает исполнению нами своих основных тей. Далее, несколько технических редакторов обеспечили точ ность материала книги. Мы признательны Мэтту Однеру IMatt Odhner) за проницательные замечания no ACT в главах, с третьей, Джиму Пирсону Pierson) за редактирование гла 5, Иону (Fabio Yeon) и Митике Ману (Mitica Manu) Ч за главу 6, Эрику Рэхнеру (Eric Rachner), Чаду Диллинжеру (Chad Dellinger) и Митика Ману (Mitica Manu) за их вклад в создание седьмой главы. Отзывы по главе предоставили Джули ус Чен (Julius Chen) и Кен Хендерсон (Ken Henderson), тогда как рецензентом девятой стал один из обладателей патента no TCA (Transaction Cost Analysis Ч анализ стоимости транзакции) Ч Дэ вид (David Guimbellot). Кроме того, в работе над гла 9 участвовал Перри Кларк (Perry Clarke), также обладатель патента no TCA, и Крис Лоусон (Chris смышленый ин терн, любезно согласившийся выполнить верификационные те сты ТСА. Мы выражаем искреннюю благодарность группе MSN Enterprise Tools и особенно Джонатану Хардвику (Jonathan Hard wick) и Стасису Папаэфстафиу потратив шим много времени и сил на десятую главу. Мы также хотели бы отметить помощь в редактировании, которую оказал Роберт Дил лингем (Robert Dillingham) Ч программный менеджер из АСЕ Team. Кроме того, говорим спасибо Джулиане Алдоус (Juliana Aldous) и Линн (Lynn Finnel} из Microsoft Press за их тер пение, которое они проявляли, пока мы работали над книгой. И, наконец, мы очень благодарны Prakriya) из группы Framework, который помог направить изложение материала в правильное русло.
За написание книги нас заставило жгучее желание поделиться нашим опытом и знаниями, полученными при рабо те в группе Microsoft Application Consulting and Engineering (ACE) Team, в задачи которой входит анализ производительности не которых из наиболее загруженных Web-приложений и В мы занимались определением численных параметров производительности и времени отклика, идентифи кацией лузких мест, а также оптимизацией и настройкой Web масштаба В общем, всем тем, что по зволяет повысить Microsoft.
Наша группа занимает позиции в области анализа производительности и разрабатывает сервисы настройки произ водительности мирового уровня. В этой книге изложена логия, которая появилась на при работе в условиях ной и сложной среды корпоративной интра- и экстасети Microsoft.
Для кого написана эта книга Так как анализ производительности Web Ч весьма новая область (в сравнении с разработкой программ, где традиционно выделя ются роли разработчика, специалиста по тестированию и сопро аудиторию, которой предназначается эта книга, сложно. Однако можно доподлинно утверждать, что она окажется полезной каждому, кто отвечает за обеспечение адек ватной производительности построенных на основе Microsoft. Специалисты групп найдут в книге описание конкретных приемов анализа произво дительности приложений. Менеджерам, отвечающим за плани рование производительности наверняка при годятся рекомендации о том, как включить анализ производитель ности в цикл разработки, определить требования к аппаратным средствам и вычислить потенциальные затраты на развитие ин фраструктуры.
Введение XIII Материалы на прилагаемом к книге компакт-диске Прилагаемый к книге компакт-диск содержит:
Х автоматически запускающееся меню доступа к ресурсам ком пакт-диска;
Х примеры из книги;
Х о ASP;
Х шаблоны системного монитора;
Х программу установки Х презентацию Compuware Application Expert (в формате Micro soft Х оригинальную версию книги, Как пользоваться прилагаемым Программа StartCD предоставляет интерфейс до ступа к содержимому компакт-диска. Если у вас на компьютере режим автозапуска, то данная программа сама, когда вы вставите компакт-диск. Если же он отключен, за пустите 5tartCD.exe из корневого каталога компакт-диска и вос пользуйтесь появившимся на экране меню Start. Из него ны все ресурсы диска, в том числе ссылки, вызывающие уста новку программ, необходимых для просмотра содержащихся на нем файлов, и ссылки на поддержки Microsoft Press, Файлы примеров Тестовые сценарии ACT, обсуждаемые в книге, хранятся в папке Sample Files на прилагаемом компакт-диске. Чтобы скопировать их на диск, запустите Setup.exe из папки Setup и указаниям. Для установки требуется около 5 про странства на жестком диске. Чтобы удалить установленные при меры, Панель затем Ч и уда ление программ и выберите соответствующий пункт.
Таймеры ASP Документ в формате Word, описывающий создание ASP таймера с помощью Microsoft Visual Basic Scripting Edition (VBScript) или в папке на компакт-диске.
XIV Введение Шаблоны для системного монитора Шаблоны для системного монитора Ч это готовые счетчики про также записанные на компакт-диске (каталог Chapter04). С их помощью быстро запустите мониторинг про IIS (Internet Information Services) или SQL Server.
Презентация PowerPoint: Application Expert Compuware Application Expert рассматривается в пятой главе.
Презентация в папке на прилагаемом ком пакт-диске иллюстрирует некоторые часто используемые возмож ности Application Expert.
книги текст книги находится на компакт-диске в формате, под держивающем текстовый поиск. Для установки запустите из папки eBook. Для просмотра вам потребуются Microsoft Internet Explorer 5.01 (или более поздний), а также щие компоненты HTML Help. Если Internet Explorer 5.01 (или бо лее не установлен на вашем то програм ма установки предложит вам Internet Explorer 5.5 в минимальной конфигурации, необходимой для просмотра электронной книги.
При установке ваша настройка не изменится. Если вы работаете в ОС Windows NT 4.0, Microsoft Windows Microsoft Windows XP. то для запуска электронной книги вам потребуются административные права. Если у вас таких прав нет, но на компьютере установлен Internet Explorer 5.01 (или более поздний), то для просмотра книги достаточно открыть perftest.CHM в папке Требования к Х Microsoft Windows XP или Windows 2000.
Х Microsoft Visual Studio Enterprise Developer или Enterprise Architect.
Ниже приведены требования для работы Visual Studio Х компьютер/процессор ПК с процессором типа Pentium II, 450 МГц;
Х 96 Мбайт для Windows 2000 Professional;
Мбайт для Windows XP Professional;
Введение XV Х диск 2.5 Гбайт, включая не менее 500 на си стемном диске;
Х дисковод привод CD-ROM или DVD-ROM;
Х дисплей VGA (800 х 600) или с более высоким разре шением, Х операционная система Windows 2000 или Windows XP;
Х Microsoft Mouse или совместимое устройство.
Обзор глав книги Эта книга состоит из четырех в каждой из которых опи сана соответствующая фаза процесса тестирования производи тельности (табл.
Фазы тестирования производительности Фаза тестирования Главы Исполнение Анализ Моделирование 9, Далее приведен краткий обзор каждой главы. Тем, кто не любит читать все подряд, он даст общее представление об излагаемых темах.
Глава Основы анализа В главе 1 рассказывается о месте производитель ности в цикле разработки программного обеспечения и поясня почему тестирование производительности не менее важно, чем функциональное тестирование. Мы расскажем о том, как результаты производительности позволяют полу чить более реалистичные сценарии развертывания приложения и существенно снижают проектные расходы. Кроме того, здесь описаны используемой в этой книге методологии тести рования производительности.
Глава 2: и планирование тестирования Прежде чем приступить к тестированию производительности, необходимо собрать определенную информацию о тестируемом XVI Введение приложении. В главе 2 перечислены информации, которую должен собрать тестер, а также источники ее получения, в том числе публикуемые развития журналы работы IIS, журналы производительности и функциональные приложения.
3: Нагрузочное с помощью ACT Так как в книге обсуждаются Web-приложения, созданные исклю чительно с помощью ПО и технологий Microsoft, то в инструмента нагрузочного тестирования мы Microsoft Application Center Test (ACT). ACT Ч это относительно ин струмент. В главе 3 приводится его подробный обзор, в том чис ле создание с помощью ACT тестовых а также обсуж даются проблемы написания сценариев для Web-приложений, 4: Мониторинг приложения с помощью системного монитора System Monitor (Системный монитор) Ч основное средство для анализа производительности Web-приложения. 4 познако мит вас с System Monitor и наиболее часто используемыми счет чиками производительности, а также с их применением для иден тификации мест, связанных с использованием процессо ра, диска и памяти.
Глава 5: Анализ производительности работы в сети В глазе 5 обзор анализа производительности.
Его назначение Ч определение страниц или приложе ния, на пересылку которых требуется наибольшее мендации АСЕ позволяют выявить медленно работающие стра ницы или функции путем сбора всего трафика приложе ния с помощью Network Monitor и последующего анализа собран ных данных с экстраполяции отклика для конечного пользователя, объемов передаваемой информации и числа обменов (round trip).
Глава 6: Анализ и настройка производительности Web-уровня Данные, собранные на уровне IIS, помогут вам выявить лузкие места в коде на промежуточном уровне или на SQL. Из этой вы узнаете, как интерпретировать содержи мое журналов и монитора производительности для поиска этих Введение XVII лузких мест. Кроме того, здесь содержатся рекомендации по устранению лузких мест на уровне IIS.
Глава 7: Анализ управляемого кода Для успешного производительности Web-приложе ний на основе Microsoft абсолютно необходимо знать спо собы анализа и профилирования кода, В главе рассмотрены характеристики непосредственно на производительность Web-приложения на основе Здесь также описаны основные счетчики ности и два полезных приложения для профилирования производительности управляемого кода.
Глава 8: Анализ SQL-уровня места на SQL-уровне снижают производительность Web приложений на порядок. Кроме того, идентификация и устране ние лузких мест в части в некоторых случаях крайне сложны. Для правильной диагностики и устранения проблем на уровне Microsoft SQL Server требуется высокий профессионализм в области SQL. В главе 8 описаны некоторые, наиболее простые методы профилирования активности SQL Server, обнаружения лузких мест и последующего устранения проблем путем оптими зации кода SQL Server и изменения архитектуры базы данных, Глава 9;
Оценка эффективности ТСА В главе 9 подробно о методологии Microsoft для расчета стоимости транзакции Значения ТСА необходимы для измерения возможностей Web-сайта по обслуживанию пользователей;
они также оценивать изменения, внесенные в приложение с целью улучшения произ водительности.
Глава прогноза производительности Задача моделирования производительности Ч точное предска зание характеристик производительности. Для этого мо исследовать предлагаемую систему во ее полноте, от аппаратных и сетевых ресурсов до оптимизации кода, прежде чем приступать к окончательному созданию хотя бы одного из ее компонентов. В главе рассказывается о том, когда моделиро вание производительности позволяет заменить иные методы Введение оценки производительности, о разных методах моделирования и в которых они применяются. Также приведен обзор современных средств моделирования производительнос ти и подробно рассматривается использование набора инстру ментальных средств на примере проекта Microsoft Мы приложили максимум чтобы устранить возмож ные неточности з книге и на прилагаемом к ней компакт-диске.
Однако от ошибок никто не застрахован, поэтому Microsoft Press для замеченных опечаток специальную страницу:
Получить доступ к Microsoft Press Knowledge Base и запрос по возникшей у вас проблеме можно по адресу:
Если у вас есть вопросы или идеи относительно дан ной книги или прилагаемого компакт-диска, просим их в Microsoft Press одним из способов:
Обычная почта:
Microsoft Press Performance Testing Microsoft Web Applications Editor One Microsoft Way Redmond, WA 98052- Электронная почта:
MSPINPUT@MICROSOFT.COM обратите внимание, что поддержка продуктов по указанным выше адресам не оказывается. Информацию о под держке можно получить на Web-сайте Microsoft Product Support:
когда стратегия компании Microsoft позволила по лучить унифицированный способ с информацией, ствами и включение в традиционные настольные при ложения становится не опцией, а требованием.
понадобится доступ к своим офисным приложе ниям с любого подключенного к Интернету будь то браузер компьютера, устройство PDA (Personal Digital или телефон с поддержкой WAP (Wireless Application Protocol). И чтоб реализовать такую возможность, разработчикам придется приложить массу усилий. К Web-приложениям будут предъявляться те же требования по производительности, надеж ности и расширяемости, что и к их настольным аналогам. Боль ше внимания будет тестированию и произ водительности на протяжении цикла разработки программ по мере выявления различных влияющих на произво дительность.
Важность тестирования и настройки производительности Разработчикам необходимо иметь в виду, что к приложению, доступ к которому будет осуществляться по Интернету, одновре менно смогут обращаться сотни тысяч пользователей. А значит, из-за нагрузки на систему возможны непредсказуемые задерж ки, в результате чего у пользователей создастся плохое впечат ление о приложении. С стороны, адекватные тесты и на стройка приложения для обеспечения оптимальной производи 2 тельности в условиях больших нагрузок доказывают оптимальную работу программы, а также поставляют необходимые для планирования расширения аппаратных средств в будущем.
Следующий реальный пример с какими трудностя ми приходится сталкиваться в адекватного тестиро вания производительности.
Реальный Ч сетевой Поток новостей об атаке на Всемирный центр и привел к трафика Web-сайта Microsoft. В последу ющие дни он не уменьшился, так интерес общества к этом событию. В результате стра с этого сайта до неприемлемого а Web-серверы каждые критического доступной же было установлено, что в результате роста рез ко увеличились уточки памяти, которая имела место на этом сайте и ранее, Описанная в этой книге методология заранее предотвра тить снижение Web-сай та даже в случае всплесков.
экстраординарными тех, что имели место 11 сентября 2001 года.
вопрос;
образом решается го и, К сожалению, на данный вопрос нет ответа. методологии постоян но развиваются, чему способствует возникновение новых позволяющих получить более точные Для простого иногда достаточно набора статических как для сложного 1 электронной точное предсказание реакции при в условиях невозможно без производительности и сценари динамических нагрузок. Так как приемлемая производи тельность Web-сайта зависит от используемого приложения и анализ Основы анализа можно считать более чем наукой. Тем не менее задача эффективного тестирования производительности в том, чтобы уровни Х какими оно были, Эффекты старых и новых технологий Хотя данная книга в основном посвящена тестированию произ водительности построенных на Microsoft Framework, описанная методология обладает также ной совместимостью с приложениями Windows (Windows Distributed interNet applications Architecture). Так как на момент этой книги часть еще не успе ет перейти на и no-прежнему будет применять традицион ные Web-приложения на основе ASP, мы логию анализа производительности, которая годится как для сервисов так и для Windows DNA. Там где нужно, для Windows мы покажем специальные способы. Изюминка методологии Ч определение критических метрик производительности, таких, как время отклика, ная способность и масштабируемость. Как показано в следующем примере, задание требуемых параметров производительности на этапе планирования определяет критические точки в процессе тестирования производительности.
пример Ч параметры сайта Для электронной коммерции Microsoft мы определяем максимальную пропускную от дельных пользователя, например добавлений товаров в корзину и заказа то Мы и каждого Х сценария по отдельности, и при мого смешанного теста. 8 первом случае для каждого сценарий, больше не Второй пример тест) более точно происхо дящее на реальном сайте при различных см. след. стр.
Глава ти, назначаемых разным типам транзакции. Определение пропускной коммерции Microsoft зависит целевых когда по заказов 8 секунду, любая должна загружаться за секунд, средняя на серверах не должна 70%, а памяти период должен оставаться время выдачи при более загрузке до секунд, то сайта считается неприемлемой, В этот момент следует определить, чем неприемлемое Таким произ в фазе опре критические точки во фазы Когда планирование параметров производительности заверше определяются способы использования программных инстру ментов моделирования нагрузки для доведения Web-приложений до их критических точек производительности. Задача фазы тес тирования Ч выявление реальных пределов ти И, наконец, наша методика следовать все уровни приложения с эффективных при емов анализа для идентификации лузких мест и формулирова ния предложений по повышению производительности.
Что такое Эта книга посвящена тестированию производительности прило для и многие из приводимых в ней примеров напи саны с помощью Framework, поэтому сначала необходимо рассказать о том, что же такое Наш опыт доказывает, что без глубоких знаний используемых приложением, эффективное тестирование производительности крайне затруд нительно, если вообще возможно. Однако материал книги можно считать лишь введением в Microsoft Более подроб ная информация о перспективах опубликована на Основы анализа производительности Платформа Что такое Или какие сервисы плат форму Платформа Ч это набор средств и операционных сред, используемых создания, предоставле ния и использования Web-сервисов что делает возможным создание интегрированной Web-среды, посредством интеллектуальных устройств и базирую щейся на открытых стандартах. Ниже перечислены основные компоненты платформы Х Framework Ч это среда для создания, и исполнения XML и других Она состоит из двух частей: исполняющей среды (common language runtime, и библиотек классов, включа ющих Enterprise Services, и Windows Forms.
Х Visual Studio Ч полнофункциональная среда разработки приложений для платформы Microsoft Х Mobile Internet Toolkit Ч это набор программных интерфей сов для обмена информацией с мобильными устройствами типа PDA и смартфонов, а также инфраструктура.
Х Серверы Enterprise включают Application Center 2000, BizTalk Server 2000, Commerce Server 2000, Exchange Server 2000, Internet and Acceleration Server, Host Integration Server 2000, Mobile Information Server 2001 и SQL Server 2000.
Х Ч это набор базовых Web-сервисов XML, кото рые будут поставляться Microsoft;
однако Web-сервисы XML может кто угодно.
На рис. 1 -1 показано, как основные компоненты платформы друг с другом, обеспечивая доступ пользова к приложениям из любого места и с любого устройства.
Разработчики могут применять Framework для создания Web-сервисов. CLR Ч это механизм, исполнять управляемый код. С его помощью разработчики Web-сервисов интегрируют и исполняют код, написанный на разных языках программирования. созданные на основе Framework, исполняются на серверах Enterprise и доступны в любое время, из любого места и с помощью любых устройств.
Глава Framework ;
Х Web-сервисы Win Forms Библиотеки классов базовых исполняющая Серверы Enterpise Windows 2000 (Server, Datacenter любого места, посредством любого устройства Рис. 1-1. Базовые компоненты пример Ч служба сованной работы нескольких фирм на основе летите и, чтоб не терять в решили заняться с его на утро. Поскольку не имеют доступа к системе шей фирмы, вы не можете просмотреть их расписания и запрос на Кроме того, во еремя полета Интернет доступен только бильного телефона или беспроводного PDA. Однако, если Основы анализа производительности системы как зашей фирмы, так и фирм-по на основе и про из Mobile то вам Х удастся не только расписание ваших но и запрос на совещания с помо беспроводного PDA или телефона благо даря различным 8 это потому что фирмы и теперь (т. е. интегрированы посредством различных..
программных интерфейсов), а Web-сервисы планирования вам совещание с любого устройства. Многие уже гают все они используют решения, не друг с Стандартные протоколы Тот факт, что в основе лежат открытые Интернет-стандар ты, делает Framework расширяемой и позволяет легко вза имодействовать с другими решениями, построенными или не построенными на основе Web. Основными стандартами, зуемыми для поддержки Web-сервисов, считаются:
Х XML Markup Language Ч расширяемый язык раз Х SOAP Object Access Protocol Ч протокол дос тупа к объектам);
Х HTTP (Hypertext Transfer Protocol Ч протокол пересылки гипер текста).
XML Ч текстовый язык, который очень похож на повсеместно распространенный HTML;
он позволяет определять новые HTML подобные описывающие как структуру документа ные), так и содержимое (данные). XML потребовался из-за присущих HTML врожденных проблем. противоре чащие друг другу стандарты HTML, из-за чего разные браузеры обрабатывают одни и те же теги no-разному. Это означает, что приходится создавать для разных браузеров разные версии одного HTML-документа. До настоящего време 8 Глава ни усилия по созданию международных стандартов HTML не увенчались успехом. Кроме того, HTML обладает неадекватной ссылок. Ссылки HTML жестко зашиваются в докумен ты и при изменении любой из них необходимо отыскать и изме нить все ее вхождения. XML позволяет связывать ссылки с лю бым элементом и создавать ссылку, на несколько мест сразу, и это эффективный способ преодоления ограниче ний HTML.
также использует новейший XML-стандарт, ранее известный под названием SDL Description а теперь WSDL (Web Services Description Language Ч язык описания Web сервисов). Как следует из названия, WSDL предназначен для опи сания Он применяется для создания или файла который другим сервисам для определе ния функциональных предоставляемых данным Web-сервисом. Протокол SOAP считается базовым форматом передачи команд и данных между объектами и приложениями.
Близкий по функциональным возможностям к (Remote Procedure Call Ч удаленный вызов SOAP использу ет XML для передаваемой информации. XML делает SOAP простым, доступным для восприятия открытым и расширяемым.
Спецификация UDDI также использует возможности спецификации UDDI Description, Discovery u Integration описа ние, поиск и интеграция), которая создание Web-сервисов. Помещая в такие реестры информацию о предо ставляемых Web-сервисах, а также другие данные, компании облегчают их поиск всем желающим. Native Inte gration Methodology Ч методология интеграции для Интернета) обеспечивает возможность XML-взаимодействия между системами и открытый набор стандартов. INIM работает с любой ОС, моделью программирования или сетью и обеспечи вает доступ к существующему коду как к Web-сервису, что по зволяет разным системам взаимодействовать друг с другом.
Основы анализа UDD! определяет стандарт публикации и поиска информации о Web-сервисах.
Что такое Web-сервис Ч это, в основном, порталы, предоставляющие услуги, которыми нельзя воспользоваться от куда-либо еще, Одно из неудобств подобных сервисов Ч слож ность обмена информацией между компаниями. В частности, даже контактную и другую личную информацию приходится на каждом таком сайте заново. Web-сервисы Ч это фраг менты приложений, данные услуги другим приложениям и пользователям. Примером Web-сервиса может служить Microsoft Passport, предоставляющий средства аутентификации. Приложения обращаются к Web-сервисам по средством стандартных Web-протоколов и форматов данных (т. е. HTTP, XML и SOAP) независимо от способа реализации дан ного Web-сервиса. В Web-сервисах, представляющих собой кра еугольный камень модели Microsoft нены преимущества разработки с использованием компонентов и Web. Web-сервисы XML превращают Web-сайты, доступные ра нее только для просмотра, в вычислительные узлы, которые спо собны сами предоставлять методы, а также вызывать методы других Web-сервисов. Использование XML. обеспечивает обмен данными между любыми ОС и сетями посредством сервисов XML и SOAP, которые связывают ранее несовместимые или несхожие друг с другом системы (например, удается обеспечить доступ к приложению, исполняющемуся на компьютере Macintosh, Unix или Linux, посредством устройства на базе Windows СЕ).
Web-сервисы это программные решения, доступные через любому устройству, поддерживающему Web. На сегод таким устройством Web-браузер на вашем компью тере, однако от устройств архитектура устра нит данное ограничение. XML Ч это промышленный стандарт, и в настоящее время он поддерживается во всех продуктах Micro soft, включая последнее поколение серверов. Framework встроена во все продукты Microsoft Visual Basic Microsoft Visual C++ и Microsoft Visual Глава пример Ч Microsoft Passport На предусмотрено таких как адресная или к Passport из де. в насчитывающий бо лее миллионов активных учетных число кото рых растет со скоростью более в Хотя Passport более 1, ежемесячно, Web-сайт посещается редко, так как Web-сервис Необходимость Web-сервисов для поддержки новых типов устройств поддерживающим работу с Web, требуются серви сы, предоставляемые На сегодняшний день их уже достаточно много. Все они мобильны, малы, интеллектуаль ны и способны взаимодействовать друг с другом. Как известно, пользователям нужна информация из множества разных источ ников, и причем немедленно. Приложения, поставляющие ин формацию в любое время и в любом месте, должны работать на разных клиентских платформах, значительно различающихся по возможностям. Перспективы, которые открывает XML-ориенти рованная программная модель иллюстрирует следующий пример.
пример Ч приготовь свою джакузи заранее вы возвращаетесь домой после гого перелета. Вы мечтаете, чтобы в к приходу нагрета до нужной температуры. Благода Web-сервисам, этот футуристический сценарий лег ко осуществим, если термостат джакузи использует По заранее заложенному алгоритму данный компонент Web-сервисов выясняет время и определяет поездки из аэропорта о текущей дорожной обстановке. воз можно благодаря так как ваша домашняя сможет Основы анализа производительности реальном времени информацию о рейсах в стандартном XML-формате. существует холо дильник со встроенным устройством, оснащенным Это способно в кете через заданные ные и среды с зашитыми решени на это Необходимость Web-сервисов для тестирования Web-производительности Радикальное изменение способов доставки информации ствам требует новых методов тестирования и настройки произ водительности Подобно тому как традиционные платформы не успевают за современными технологиями, тради ционные методологии функционального тестирования не в состо янии адекватно определить производительность и выявить лузкие места в новых.NET-приложениях. В мире необходим подход к традиционному циклу разработки обеспечения, постоянное эффектив ное тестирование производительности. мотив написа ния данной книги Ч желание познакомить вас с этими новыми требованиями.
Целевые показатели производительности из общих представлений о Web-сервисах на основе которое вы получили, прочитав предыдущие разделы, становится очевидной огромная важность быстрого доступа к этим серви сам различных устройств в любое время и в любом месте. Про изводительность можно рассматривать с разных сторон, но наи более с точки зрения группы АСЕ является увеличение производительности путем сокращения лузких мест, увеличива ющих время ожидания пользователя. Снижение времени ожида ния пользователя Ч наша основная так как это единствен ная метрика производительности, с которой пользователи име ют дело непосредственно. Масштабируемость и готовность (availability) как важные условия достижения оптимального вре мени отклика будут рассмотрены весьма подробно. Их значи Глава мость отнюдь не снижается от того, что пользователь их не ви дит. Без масштабируемости и готовности от клика безусловно, окажется плохим. В конечном счете именно по быстроте реакции приложения пользователь судит об качестве приложения.
Поведение пользователей при взаимодействии с компьютером Несмотря на то, что Интернет стал достоянием широкой публи ки лишь в последнее десятилетие, исследования времени откли ка при с компьютерами проводились с момента появления последних. В статье Response Time Man-Computer написанной Миллером Miller) в году для осенней конференции Fall Joint Computer Conference, Vol. 33, перечислены поведения з зависимости от времени от клика компьютера:
Х секунды Ч это предел, до которого пользователь счита ет, что система реагирует на его действия мгновенно, то есть кроме отображения никакой обратной свя зи не Х 1,0 секунда Ч если время отклика не превышает это значе ние, поведение пользователя не меняется, хотя он и замеча ет задержку;
при задержке в интервале от 0,1 до секунды дополнительная обратная не нужна, хотя у пользователя и теряется ощущение неопосредованной рабо ты с данными;
Х секунд Ч это предельное когда внимание пользо вателя еще сосредоточено на экране;
если оно пользователи отвлекаются на другие дела в ожидании, пока компьютер не закончит процесс, поэтому необходима обрат ная связь, сколько осталось времени до его При подобных задержках обратная связь особен но важна, если время отклика сильно варьируется, так как при этом не знает, чего ему ожидать.
При измерении времени отклика иногда выясняется, что главная причина большой задержки вам неподконтрольна, и потому уло Основы анализа производительности житься в ограничение 0,1 секунды невозможно. Например, мало что можно поделать с перегрузками Интернета или с медленной телефонной линией, используемой клиентом для доступа в Сеть.
Тем не менее стоит попытаться понять основную при чину большого времени отклика, чтобы повлиять на него всеми возможными способами. Задача книги Ч познакомить вас с методологией этой причины, также под именем место (bottleneck), и исправления ее.
Мы что поможем вам добиться субсекундных времен отклика.NET-приложения при условии интеграции в цикл разра ботки методов тестирования и настройки.
Тестирование производительности вашего приложения С ростом использования Web-сервисов, что приводит к еще большему увеличению трафика, основной проблемой стано обеспечение гарантированной оптимальной производитель ности приложения. Мы предлагаем решение этой проблемы на основе продуманного подхода к определению следующих ключе вых факторов, на производительность:
Х максимальной масштабируемости;
Х средних времен отклика под Х лузких мест, мешающих росту Все это позволит устранить лузкие места и достичь оптимальной производительности.
Кроме того, 8 книге показан альтернативный подход оценки воз можностей Web-приложения по методологии, разработанной Ч ТСА (Transaction Cost Analysis Ч анализ стоимости транзакции). Методология ТСА позволяет оценить будущие ре сурсные потребности Web-приложений путем связывания сто имостей серверных ресурсов, как процессор, со стоимос тями типичных пользовательских Это поможет оценить потенциальный рост нагрузки на и подготовиться к ней за ранее, до того как крупные перемены на рынке или окружаю щем мире вызовут трафик.
Схематично, с высоты птичьего полета, цикл тестирования про изводительности состоит из:
Глава Х анализа производительности;
Х создания эффективных нагрузочных Х нагрузочных сценариев;
Х анализа собранных данных для определения и устранения луз ких мест.
Каждый из этих этапов подробно обсуждается в следующих гла зах. Еще раз обращаем ваше внимание на то, что анализ произ требует глубоко продуманного подхода в сочета нии с опытом и знаниями в области используемых технологий, Схема анализа производительности, описанного в этой показана на рис. 1-2.
среды тестирования критических метрик производительности Определение граничных значений метрик профиля использования сайта 2. Создание сценариев и выполнение нагрузочных тестов Х динамических Х Проверка функциональности сценариев Х Настройка Microsoft Performance Monitor Тесты на задымление для эффективного моделирования загрузки сайта Х Исполнение тестов зводительности 3. Анализ и Х Анализ производительности сети Х Лнализ производительности Х Анализ производительности управляемого кода Х Анализ SQL Х Анализ стоимости транзакции (планирование возможностей] Рис. 1-2. Наша анализа Основы анализа производительности Планирование анализа производительности На этом этапе собирается предварительная информа ция, структурировать и планировать тесты. Данные должны содержать как минимум два элемента: 1) детали, необ для максимально точного воспроизведения реальной среды, G будет работать приложение, и 2) схему исполь зования приложения, включая индикацию критических проблем производительности. Информацию собирают на основе публика ций о прогнозах развития рабочих журналов рабочих журналов производительности, а также функциональных специ фикаций приложения. Качество данных о производительности, собранных перед проведением самих тестов, критически важно.
Они позволяют определить требования к тестовой среде и добятся на всех этапах анализа, от развертывания тестовой сре ды до разбора результатов тестов. Подробно о планировании рассказано в главе 2.
Создание эффективных нагрузочных сценариев После сбора необходимой информации и подготовки среды тес тирования необходимо написать нагрузочные сценарии, точно моделирующие реальный ожидаемый трафик. Для данные следует собирать на реально функционирующем сайте, сочетая их с прогнозами, полученными от аналитиков рынка или бизнес аналитиков. Создание надежных нагрузочных сценариев с помо щью Microsoft Application Center Test (ACT) рассматривается в главе Исполнение нагрузочных сценариев После создания сценариев, моделирующих пиковые нагрузки, проводят нагрузочное тестирование. На этом этапе важно про верить функциональность сценариев, чтобы удостовериться, что они максимально точно моделируют реальный трафик, так как качество нагрузочного теста напрямую связано с качеством сце нариев. Кроме того, перед выполнением собственно нагрузочных тестов, генерирующих показатели производительности, которые будут для определения лузких мест, необходи мо определить оптимальную нагрузку с использованием методо логии, которую мы назвали тестом на задымление (smoke test).
16 Глава Особенности нагрузочного тестирования, включая ключевые тестов на задымление, описаны в главе 3.
Анализ результатов измерения производительности Фаза анализа после того, как нагрузоч ные тесты и собраны их результаты. Сначала необходимо убе диться в том, что нагрузочный тест прошел успешно, так как ка чество данных не может быть лучше, чем качество теста. Этап анализа наиболее технически сложный, поэтому наличие каче ственных исходных данных критически важно для получения до стоверных результатов и выводов. На данный этап следует вы делить большую часть времени, отведенного на анализ произво дительности. Именно по этой причине анализу посвящены три главы книги. В главе 6 описана методология анализа производи тельности Web-уровня. В главе способы профилирования уп равляемого кода. И наконец, глава 8 посвящена методам опре деления мест на уровне данных или SQL-уровне. Опыт показывает, что на SQL-уровне очень часто возникают лузкие ме ста, если код не был надлежащим образом спроектирован и на строен. места на SQL-уровне наиболее опасны, так как масштабирование баз данных посредством кластеризации слож нее, чем возможные приемы масштабирования на Web-уровне.
Конечно, написаны книги, целиком посвященные каждой из этих технологий. Основная наша цель эффективное лузких мест и предложение способов настройки для достижения производительности, Выявление мест К лузким местам, влияющим на время ожидания пользователя, относятся;
пропускная способность приложения и сервера, ско рость соединения по Интернету и перегрузки в Интернете. Про пускная способность сервера (скорость обработки им клиентских запросов) не представляет проблему, так как аппаратные сред ства легко доступны и дешевы по сравнению со средствами, рас ходуемыми на разработку сайта. Пропускную способность сети при условии адекватного мониторинга текущей загруз ки так же, как и серверные аппаратные средства, легко увеличить до как трафик превзойдет текущие возможности. Хотя со единение пользователя с Интернетом в техническом плане дос Основы анализа производительности таточно просто сделать более быстрым, скорость под ключения к Интернету остается малой и будет оставаться до тех пор, пока цены на скоростные соединения не снизятся до приемлемого уровня.
на то, что пропускная способность сети, серверы и подключение к Интернету Ч это доступный тратить на него деньги имеет смысл только для того, чтобы эффективно и результативно его использовать после ности кода а не как прелюдию или замену тестиро и настройки производительности. когда в результа те приложения все возможности текущих аппаратных задействованы самым оптимальным образом, имеет смысл вкладывать средства в новые аппаратные средства и бо лее мощный канал связи с Интернетом.
В каких местах приложения можно получить прирост производительности при использовании надлежащих приемов тестирования и настройки, учитывая необходимость оптимиза ции до расширения аппаратных ресурсов? Очевидно, от повы шения производительности самого кода приложения. Почему?
Начальные расходы на группу разработчиков, менеджеров и те достаточно велики, чтобы требовать максимально эффективного использования этого ресурса. Оптимальный, эф фективный код с наименьшими затратами получают в том слу чае, когда выделяют достаточно времени и ресурсов на тести рование и настройку производительности в процессе традицион ного цикла разработки, а не при последующей модернизации аппаратных и программных средства как реакции на проблемы уже выпущенного продукта. Написав изначально корректный код, вы получите материальные выгоды (сократите расходы на сопровождение) и моральные (признание со стороны пользова телей, о чем свидетельствует рост трафика). В мире важ нейшим фактором оказывается способность приложения быст ро обработать клиентский запрос и возвратить обра батывая в то же время миллионы других запросов. Вот ключевая область, где внимание к адекватной производительности прило жения может оказать основное влияние на снижение времени ожидания пользователей независимо от аппаратных средств и пропускной способности сети. При применении адекватных при 18 Глава тестирования производительности пропускную способность приложения удается точно предсказать, что админис траторам подготовиться к наихудшим ситуации.
Проверка результатов настройки производительности этап анализа производительности Ч в ясной форме донести результаты нагрузочного до разра ботчиков приложения. Это следует делать таким способом, кото рый позволит им оценить и производительность при ложения на основании анализа. Доказательное тес тирование исполнение нагрузочных тестов после ана лиза и и сравнение результатов с предыдущими) считается наиболее эффективным способом отражения резуль татов производительности. Одних лишь предположе о том, что ваши усилия по настройке повысили производи тельность, недостаточно;
это должно быть объективно и убеди тельно доказано! ли время отклика, возросла ли масштабируемость? ли значительно сократить ресурсы сервера, требуемые для обслуживания того же уровня клиентс ких запросов? Вот вопросы, на которые должен ответить квали фицированный анализ производительности, Заключение Теперь, когда вы познакомились с основами и нашей мето дологией анализа, пора заняться главой 2, в которой описан тща тельно продуманный подход к планированию анализа произво дительности. Мы расскажем о том, как на основе анализа тра фика определить средние и пиковые нагрузки, что позво лит определить продуманные и достижимые цели в области производительности на этапе анализа.
Глава Зачастую Web-приложения не соответствуют потребностям и ожиданиям пользователей. Потребители быстро разочаровыва ются в Web-приложении, которое постоянно ошибки, мед ленно отвечает на запросы или часто недоступно. Таким успех начальной раскрутки Web-приложения будет в значитель степени на нет, если нет и правильно процедуры или методологии тестирования. В этой главе описаны ключевые моменты планирования, которые необходимо предусмотреть прежде, чем проводить сами тесты.
Следуя этой вы получите дополнительные выгоды за счет повышения эффективности тестов производительности.
Итак, вам необходимо определить целевые показатели произво дительности, создать профили активности а так же определить при составлении плана тестирования ключевые подлежащие контролю и анализу.
ПРИМЕЧАНИЕ Известно, что многие проекты по терпели потому что тестирование отклады вали на заключительные этапы цикла разработки Web-приложения либо выдвигали слишком сложные требования, которые нельзя выполнить за отведен 20 Глава ное время. Сосредоточьтесь на элементах своего Web-приложения и наиболее частых сцена риях активности пользователей. Если позволяет вре вы всегда сможете вернуться назад и выполнить тесты производительности тех приложе которые применяются редко.
Определение целевых параметров производительности требования к основным параметрам ности абсолютно необходимо Ч это гарантирует, что ваше Web приложение удовлетворит и даже будущие проектные требования. Наилучший подход Ч использовать накопленные исторические данные или результаты обширных маркетинговых исследований. Плохо спланированы, например, те Интернет-ма газины, которые не состоянии справиться с предпраздничным покупательским ажиотажем. Каждый год в прессе появляются сообщения о таких магазинах, которые не в состоянии доставить заказы, медленно обрабатывают команды вы дают сообщения об ошибках Web-сервера или вовсе прекраща ют работу из-за системных сбоев. Все это не только снижает мы продаж, но и вызывает плохие отклики в прессе.
Главные требования к параметрам производительности можно разделить на три категории:
Х допустимое время отклика;
Х пропускная способность и число одновременных пользователей;
Х требования к будущему росту производительности.
Допустимое время отклика Определив, как и когда пользователи будут связываться с вашим Web-приложением, вы можете построить аналогичную табл. где показаны скорости соединения и задержки на ли ниях связи потенциальных пользователей. Это поможет вам определить приемлемое время загрузки каждой страницы при ложения.
Установив, каким образом пользователи будут получать доступ к Web-приложению, вы можете определить целевые параметры и планирование тестирования допустимого времени отклика. Они задают максимально лемую продолжительность обработки команд или загрузки содержимого для разных соединения. Напри мер, при прочих условиях 70-килобайтная страница, бе зусловно, быстрее загрузится по линии DSL со скоростью 256 кбит/с, чем по модему (28,8 кбит/с). временем отклика при использовании модема считается секунд, тогда как для линии DSL оно будет значительно меньше, около 5 секунд.
Параметры допустимого времени отклика полезны при анализе сетевых параметров приложения, который подробно рассматри вается в 5. Задача такого анализа Ч получение прогнозов отклика при различных скоростях соединения и задер определение объемов данных, проходящих через каждый из уровней приложения, а также числа сетевых на каж дом этапе сценария активности пользователя. В отсутствие на копленных данных или о скоростях соединения, которые будут доступны потенциальным пользователям, мы ре комендуем ориентироваться на наихудший В табл. по казаны возможные скорости связи с Интернетом конечных пользователей в наихудшем, среднем и лучшем случаях.
Ожидаемые скорости Пользователь Худший случай Средний случай Лучший случай Скорость Модем кбит/с) DSL (256 кбит/с) Т1 (1,5 Мбит/с) Задержка мс 50 мс Пропускная способность и число одновременных пользователей Чтобы определить параметры пропускной способности и число одновременно обслуживаемых ответьте на следу ющие вопросы:
Х каково текущее или ожидаемое число одновременно обслужи ваемых в заданный период времени;
Х какие выполняет типичный пользователь вашего приложения и к каким страницам пользователи обращаются чаще всего в заданный период времени;
Х сколько сценариев активности пользователей обработает Web-приложение за указанный интервал времени?
22 Глава Наилучший источник информации Ч которые хра в файлах журналов Web-сервера, данные System Monitor и те, которые удается определить при мониторинге активности БД.
При создании совершенно нового Web-приложения для опреде ления ожидаемых пропускной способности и числа одновременных могут понадобиться маркетинго вые исследования. Показатели, полученные двумя этими спосо бами, гарантируют надлежащие уровни параллельной нагрузки при проведении тестов. Если в результате тестов оказывается, что Web-приложение удовлетворяет вашим требованиям по произ водительности и числу можете увеличивать нагрузку до тех пор, пока либо не наткнетесь на луз кое место, либо не будет достигнута максимально возможная пропускная способность. В табл. 2-2 показаны прогнозируемые параметры и профили одновременно обслу живаемых пользовательских сценариев для примера Web-прило жения IBuySpy. На основании данных таблицы можно создать тестовый моделирующий предполагаемую загрузку данного Web-приложения. В столбце показан процент частоты данной пользовательской операции по от ношению ко всем операциям. Предполагаемое количество за час вычислено на основе данных за определенный период вре мени, взятых из журналов (они приведены в следующем разде ле), оно сколько раз данная операция выполняется среднем в течение часа.
2-2. Целевые параметры пропускной способности и числа пользователей Предполагаемое Действия пользователя Доля, % количество за час Поиск 14 1 Выбор 6 6 Добавление в корзину Х 1 Bxoq в систему Регистрация Всего 10 Подготовка и планирование тестирования Анализ потенциального роста производительности Анализ роста если в будущем вы ожидаете увеличение числа вашего приложения.
При тестировании производительности необходимо учитывать рост числа пользователей. Тестирование производительности и устранение с ней проблем на этапе, когда разработка приложения уже завершена, потребует больше времени и средств, чем во время цикла разработки (ЦР). В реальном при мере из главы 1 расходы на поиск и устранение проблем Web приложения по окончании ЦР состоят из: упущенной прибыли из за плохих отзывов в прессе, упущенных которые не захотели ждать загрузки страниц, а также трудо затрат на тестирование и разработку, связанных с поиском ошиб ки и ее исправлением. Требуется немного времени на загрузку в базу дополнительных данных при тестировании производитель ности, однако это позволит убедиться в работоспособности сис темы при больших нагрузках и сэкономит ваши деньги в будущем, Кроме того, прогнозирования будущих лузких мест следует провести тест с уровнями загрузки и количеством одновремен ных пользователей, превышающими ожидаемые. Если вы вите проблемы на ранних этапах жизни своего вам не придется тестировать и настраивать его производительность в будущем, кроме того, впечатление пользователей о нем окажется значительно лучше.
СОВЕТ Создав тестовую БД, содержащую допол нительные заказы, корзины и пр., перед выполнением собственно тестов необходимо погонять ваши тестовые некоторое вре мя (возможно, несколько Пользовательский интерфейс вашего Web-приложения гарантирует правильный ввод данных в систему. Самым быст рым способом генерации тестовой базы считается использование для этой цели напи санных разработчиком. В этом случае можно по ошибке забыть некоторые обновляемые через пользовательский интерфейс Web-приложе ния. Однако главное Ч убедиться в том, что тесто 24 Глава зал база сгенерирована в противном случае вы получите неточные результаты тестов.
Проще всего определить требуемый рост производительности рассчитав прирост загрузки за задан ный период Допустим, количество ваших пользовате растет на в месяц. В табл. 2-3 показан планируемый рост, который можно использовать при проведении нагрузочного тес Здесь предполагается, что в настоящий момент с Web-приложением работает 000 в день и ожи даемый прирост составляет в При расчете прироста не забудьте учесть последствия рекламных акций, в результате которых трафик вашего приложения может увеличиться.
2-3. Ожидаемый прирост нагрузки Период времени Пользователей в день Сейчас 10 Через 3 месяца Через 6 16 Через 9 21 Через месяцев 28 Профиль активности пользователей Для создания профилей активности мы обрати лись к журналам IIS. Это текстовые файлы, содержащие инфор мацию о каждом запросе;
их можно просмотреть обычным тек стовым редактором или в программу анализа журналов. Для получения адекватных средних результатов мы рекомендуем использовать набор журналов по мере за неделю. Чем больше журналов тем более реаль ные профили вы получите. Для иллюстрации про цесса создания профиля активности пользователя мы импорти ровали данные журналов IIS за месяц, полученные в процессе недавнего анализа типичного Web-приложения электронной ком мерции, в одну из программ анализа Эти журналы содержат информацию о просмотрах пользователями страниц, связанных с операциями Вход на начальную страницу, Поиск, Выбор товара, Добавление в корзину и Заказ. Табл. 2-4 мы Подготовка и планирование тестирования создали с помощью анализатора журнала. В момент доступно множество коммерческих анализаторов журналов Ч для любого бюджета. Эти анализаторы способны импортировать, выделить и отобразить типовые образцы трафика 2-4. Профиль активности пользователей Операция/ название Число просмотров страницы страницы Доля, % Начальная страница 720 000 720 Поиск 90 000 i 90 000.
Выбор товара 450 000 216 234 000 Добавление в корзину 360 ! aspx 360 Заказ aspx 90 54 000.
36 000 Всего 1 800 Необходимо понимать различие между обращением и просмот ром страницы. (hit) определяется как запрос к любо му отдельному объекту или файлу тогда как просмотр страницы Ч запрос на выборку и пересылку страни цы HTML, ASP или ссылки на ные элементы. Страница Ч это то, что вы видите по окончании пересылки, она может содержать много других файлов. Просмот ры страницы не включают обращения к картинкам, страницам компонентам фрейма или к формата, отличного от HTML.
СОВЕТ Для простоты не создании профиля активности пользователей пересылку кар тинок и другие подобные запросы. Кроме того, не учитывайте действия инструментов 26 Глава обращающихся к различным страницам Web-прило жения с целью убедиться в что оно функцио нирует нормально.
Профиль активности сервера Профиль активности activity profile) требуется для учета активности и лузких мест в Web приложении на уровне базы данных. Такая информация позволя ет в том, что ваши тесты точны.
Идентификация пользовательской активности Web-приложения Существующие базы данных содержат конкретную информацию о том, как работают пользователи с вашим Web-приложением.
Примерами информации для типичного Интернет-ма газина может служить число созданных корзин, число ных заказов, количество входов в систему, количество выполнен ных поисков и т. д. Для сбора информации достаточно про стых запросов к БД. Их результаты потребуются при создании сценариев пользователей, определении частоты ис полнения тех или иных сценариев активности, а также сборе дру маркетинговой информации для выработки бизнес-решений, Например, сравнив количество созданных корзин с количеством заказов, удастся определить, как часто пользователи решают не делать заказ. Данная информация важна при проектировании нагрузочных тестов с учетом реальной доли тех или иных опера ций. Если реальные заказы 50% от общего числа со зданных корзин, то эти данные можно использовать при прове дении тестов.
Выявление лузких мест в серверной части приложения При тестировании производительности существующего Web приложения удается текущие лузкие места, инициируя такие запросы к серверу БД, которые долго обрабатываются, взаимоблокировки (deadlock) и занимают много ресур сов сервера. Процесс сбора этих данных выполняется на этапе планирования и подразумевает сбор трассировочных данных SQL с помощью SQL Profiler и журналов Performance cogep Подготовка и планирование тестирования в случае типичного Web-приложения информацию об объектах Windows и SQL Server. Иными словами, время трасси ровки SQL должно приходится на тот период, когда тельность приложения из становится плохой. Со бранная информация даст вам более ясную картину причин воз никновения лузких мест. Процесс поиска источников проблем производительности на уровне БД рассматривается в главе 8. Это могут быть блокировки, взаимоблокировки, плохо составленные запросы или медленно работающие хранимые процедуры.
Ключевые метрики производительности Как аналитик производительности, тестер или разработчик вы должны представить примерный план тестирования своего Web приложения, проверку выполнения основных критериев производительности. Если план отсутствует, то требования производительности иногда удается выявить слиш ком поздно для того, чтобы их тестировать. из предыду щего раздела о критериях производительности, теперь опреде лите ключевые метрики, подлежащие контролю и анализу во вре мя самих тестов.
СОВЕТ Критическую точку в Web-приложении можно определять no-разному. Это может ис пользование сервером ресурсов на уровнях, превос слишком большое число ошибок сервера или неприемлемые времена отклика из-за задержек обработки.
Ключевых метрик для теста производительности несколько.
Х Допустимый уровень ошибок Это может пока заться вам спорным, потому что серверные ошибки недопус тимы, так как раздражают пользователя, Однако вполне ве роятно, что вы выявите такие ошибки во время нагрузочного тестирования, потому следует заранее понять причины их возникновения и решить, возможны ли они во время реаль эксплуатации, когда с приложением будут работать реаль ные пользователи. Например, очень часто в начале теста и при его завершении ошибки возникают из-за того, что нагрузка 28 возрастает очень сильно и очень быстро, а также неза вершенных к страницам. Такие ошибки вызваны самим тестом, поэтому их можно игнорировать, так как при реальной эксплуатации они ли возникнут.
Х Допустимая загрузка сервера Это важный параметр тести рования производительности. его с самого начала, сможете определить максимально допустимые уровни на грузки, с которыми справятся ваши серверы. Данный пара метр Ч для определения максимальной нагрузки на ваше Web-приложение во время тестов. Его величина разли чается разных ее следует описать и согласовать с группами разработки, тестиро вания и управления. мы нагружаем Web-уровень до тех пор, пока не достигнем 75-процентной загрузки про цессора. При этом каждый сервер обслуживает примерно 2 000 пользователей, что соответствует нашим требованиям по количеству одновременных Если эти пока затели задокументированы, то группа сопровождения сможет выполнять мониторинг Web-серверов, пики, ког да эта метрика производительности или перекры вается. Тогда для поддержки увеличивающегося группа сопровождения может принять меры по масштабиро ванию Web-приложения.
Х памяти и другие проблемы стабильности Часто эти проблемы возникают при проведении усиленных тестов про изводительности. Например, при исполнении нагрузочного теста в течение краткого периода времени не удается выявить утечку памяти или другую проблему стабильности, так как она проявляется только после длительного периода больших нагрузок. Для решения разных задач тесты выполняются гократно. Например, для определения пропус кной способности Web-приложения проводят короткий одно тест, а затем запускают тест, работающий все выход ные, чтобы определить, способно ли приложение выдержи вать максимальную нагрузку длительное время.
Х Задержки обработки Они происходят практически в любом Web-приложении, где требуется программирование сложных бизнес-правил. Ваша задача Ч свести эти задержки к допус и планирование тестирования Прежде чем начать непло хо определиться с тем, какие значения допустимы, чтобы не тратить время на сообщение разработчикам о проблеме, ко торая таковой не является, так как соответствует целевым параметрам производительности. Примеры допустимых за держек обработки показаны в табл. 2-5. Это 500 миллисекунд на исполнение хранимой процедуры, а также не более чем секундные задержки при обработке Web-страницы (их значе ния получены по журналам работы Web-уровня). В табл. 2- показаны приемлемые метрики производительности. Ваши требования могут быть иными;
основная задача Ч сформу лировать набор требований, вашему прило жению.
2-5. Допустимые уровни метрик Допустимый Метрика Откуда берется уровень Загрузка Performance Monitor < 75% Свободная Performance Monitor > Мбайт Память (страниц в секунду) Performance Monitor Х Время исполнения ASP Performance Monitor < 1 с Задержки в базе данных SQL Profiler < 500 мс Задержки на Web-уровне Из IIS < с Моделирование реальной среды работы приложения Среда тестирования производительности должна быть макси мально приближена к реальной среде работы приложения. Для этого необходимо учитывать производительность и конфигура цию сетевые параметры, схему распределения загруз ки на Web-уровне, а также данные базы. Точное реальной среды работы получение точ ных значений метрик производительности.
СОВЕТ Многие места кода и архитектуры приложения удается выявить, даже использо вание при тестировании аппаратных средств, кото 30 Глава предполагается применять в процессе реальной эксплуатации, не представляется возможным. Хотя оптимальной считается среда, эквивалентная реаль ной, тестировать производительность можно в которую удастся организовать.
Составление плана тестирования производительности План тестирования производительности Ч это стратегия, или формальный прием, всем, участвующим в созда нии Web-приложения, от разработчиков до тестеров и менедже ясно представить себе, как, почему и какая часть ния проходит тест на производительность. В плане тестирования следующие разделы.
Х Обзор приложения Здесь дается краткое описание ния Web-приложения. Также иногда приводятся некоторые маркетинговые прогнозы или результаты анализа накопленных данных.
Х Обзор архитектуры Здесь описываются программные и ап паратные средства, используемые при тестировании дительности, в том числе указывается их отличия от реальной среды эксплуатации приложения. Например, следует тить, что при реальной эксплуатации применяется Web-клас тер из четырех серверов, тогда как при тестировании исполь зуются лишь два сервера.
Х Основные В этом разделе описываются объек ты тестирования Web-приложения. Примерами служат уров ни пропускной способности и одновременных пользователей, а также максимально допустимые времена отклика.
Х Процесс тестирования производительности Здесь приво дятся сценарии активности пользователей, перечисляются ин струменты, необходимые для нагрузочного тестирования, а также все неочевидные моменты при реализации нагрузочных сценариев. Также поясняется, какие времена простоя или ин тервалы раздумий пользователя заложены в тестовые сце нарии.
и планирование тестирования * Тестовые сценарии написание тестовых сценари ев завершится до окончания цикла анализа производительно сти. Однако важно включить их в план тестирования, чтобы они стали доступны при выпуске версии или на следующей фазе цикла тестирования Web-приложения. Так как на написание тестовых сценариев требуется время и уси то их наличие в будущем может существенно сэкономить ваши ресурсы.
Заключение Тестирование производительности считается фазой цикла разработки любого Web-приложения, поэтому ее необхо димо предусмотреть в плане. тесты производительно сти свидетельствуют о что ваше приложение работает хоро шо, а значит, оно будет благоприятно принято пользователями.
Глава Задача нагрузочного тестирования Ч выявить и изолировать лузкие места в Web-приложении в условиях нагрузки.
ние числа лузких мест или их устранение позволит вам добить соответствия установленным требования по трафику или пре взойти их. После выявления лузких мест вы можете настроить Web-приложение и сервер таким образом, чтобы минимизиро вать ожидания конечных значит, улуч шить их впечатление от вашего приложения. Нагрузочное рование testing) состоит в тестировании приложения под для максимальной пропускной способно сти. способность это количество кли ентских запросов, обрабатываемых за некий интервал времени.
Нагрузочное тестирование часто также называют тестировани ем производительности, пиковым тестированием или тестирова нием Web-сервера. Важно отметить, что у каждого приложения требования к производительности.
Основы Моделируя нагрузку Web-приложения, обычно сочетают аппарат ную и программную эмуляции пользователей, осуществляющих реальное с приложением. Аппаратный метод, как правило, требует нескольких выделенных тестовых каждый из которых представляет одного пользователя. Необхо димые аппаратных ресурсов делают данный метод очень Нагрузочное тестирование с помощью ACT дорогостоящим, кроме того, придется затратить массу времени на организацию теста. метод не ни точным, ни самым эффективным способом нагрузочного тести рования, но для некоторых он оказывается един ственно При программном методе действия пользо вателя обычно записываются (перехватываются) некой програм после чего преобразуются в тестовые сценарии. При вос произведении или исполнении тестового сценария один компьютер обычно выступает в качестве контроллера, распрос траняющего тестовый по нескольким клиентским ма шинам. Во время исполнения теста контроллер синхронизирует клиентов для моделирования множества виртуальных а по окончании теста собирает результаты от всех клиентов. Виртуальные пользователи создают нагрузку на сервер ную часть приложения, что позволяет определить степень ста бильности и времена отклика Web-приложения.
В настоящее время разработано множество программных средств нагрузочного тестирования. Хотя назначение каждого из них Ч генерировать нагрузку, моделирующую работу многих кли ентов, в них используются разные синтаксисы сценариев и ме ханизмы моделирования нагрузки. В этой книге рассматривает ся такой инструмент нагрузочного тестирования, как Microsoft Application Center Test (ACT). Прочитав эту главу, вы, конечно же, не станете экспертом no ACT, однако узнаете об особенностях этого продукта и о ключевых концепциях и кото рые мы используем наиболее часто. Мы также покажем, как с помощью ACT создать и проверить сценарии динамического те стирования для точного моделирования нагрузки на Web-прило жение на базе Что такое ACT ACT (Microsoft Application Center Test) Ч это программное сред ство нагрузочного тестирования, позволяющее моделировать загрузку Web-серверов, чтобы получить значения произ водительности, проанализировать и выявить проблемы произво дительности, а также определить предельные возможности ва шего Web-приложения. Для моделирования нагрузки с помощью ACT необходимо записать или создать вручную тестовый сцена моделирующий множественные одновременные соедине Глава ния, страницы в соответствии со сценарием активности пользователя.
Установка Microsoft ACT на компьютер в состав Visual Studio редакции Enterprise и Architect. В Studio входит много различных компонен тов, но для книги мы выберем только те из которые необходимы для работы ACT.
Процесс разбит на три основных этапа. Первый этап показан на рис.
Visual Studio Setup Рис. 3-1. Диалоговое окно Install Windows Component Update Выберите Step The Install Windows Component Update для обновления системных компонентов. Эта опция доступна в диа логовом окне Installation, если зашей системе требуется обнов ление. Если в обновлении компонентов нет необходимости, дан ная опция недоступна.
ПРИМЕЧЕНИЕ Если во время работы программы установки запущена то она может выдавать предупреждения при исполне нии сценариев обращающихся к объек там файловой системы.
Нагрузочное тестирование с помощью ACT После обновления системных компонентов в диалоговом окне Installation становится доступным пункт Step 2: Install Visual Studio Выберите его для установки Visual Studio Мы выб рали минимальную конфигурацию, так как нам толь ко компоненты необходимые работы ACT. Если вы хотите и исполнять проекты и сценарии непосред ственно из интегрированной среды Visual Studio, то позаботьтесь об установке дополнительных компонентов. Application Center Test расположен в списке Select Items to Install раздела Enterprise Development Tools, как показано на рис. 3-2, он выбран по умол чанию.
teM items В X О X 3 D X X 7 D X 7 П X E П X П X Server П X Рис. 3-2. Выбор параметров установки Последний шаг Step 3: Service Releases Check не обя зательно, но настоятельно рекомендуется: в этом случае на ва шем компьютере будут установлены все последние исправления.
Базовые понятия ACT В данном разделе описаны базовые понятия ACT и приведены некоторые которые помогут вам сократить время обу чения, воспользовавшись нашим опытом.
36 Глава Динамические тесты тест считается очень мощным средством ACT, которое дает возможность записать или создать вручную список HTTP-запросов, посылаемых Web-серверу параллельно. Вы так же изменить информацию заголовков, например user-agent, и строку запроса. Сценарии динамических тес тов можно писать на Visual Basic Script (VBScript), Jscript, PERL или любом другом языке сценариев, поддерживающем СОМ. При записи тестового сценария ACT поддерживает только VBScript.
Параллельные пользователи и параллельные сессии ACT Параллельное соединение с Web-приложением, которое выпол запрос или серию содержащихся в тестовом сце нарии ACT, называется сессией (simul taneous browser connection, SBC). Другие инструменты нагрузоч ного тестирования используют такие термины, как поток (stress thread) или пользователь (virtual которые являются синонимами ACT SBC (уровень нагрузки). Нас часто спрашивают: Каково соотношение между SBC и числом параллельных Сопоставление SBC с одновремен но работающими пользователями так как не все гда сколь часто пользователи будут запрашивать стра ницы Web-приложения. сценарии, без интервалов (sleep time) (времени, которое уходит на раз думья пользователя), часто вызывают более высокие нагрузки приложение, чем при просмотре страниц приложения реальным пользователем с помощью Web-браузера. Следовательно, стоит включить в сценарии случайные задержки, сравнимые со време ним раздумья реальных пользователей, для снижения ности запросов к Web-серверу, что более точно сопос тавить один SBC с одной пользовательской сессией и лучше смо делировать реальный Web-трафик.
Пользовательские интервалы простоя При создании тестовых сценариев стоит добавить в них пользо вательские интервалы простоя. Эти позволит моделировать ре альное использование приложения, вводя задержки на раздумья Нагрузочное тестирование с помощью ACT пользователя. вставив интервал простоя сценарий, моделирующий заполнение Web-фор мы, вы точнее смоделируете типичные та как учтете время, требующееся ему для формы. В Sleep является методом объекта Test. При записи в тестовый ACT код:
fEnableDelays = If fEnableDelays = then (0) По умолчанию переменная в начале записанного файла сценария установлена в false. организации задержки на 5 секунд, или на 5 000 миллисекунд, этот код нужно изменить так;
fEnableDelays = If fEnableDelays = then (5000) При необходимости можно использовать функцию случайного ожидания, вставив в тестовый сценарий следующий фрагмент кода и вызывая данную функцию перед каждым запросом:
Function Dim = 5000 ' 5 seconds IMinSleep = 1000 ' 1 second ' Сгенерировать случайное целое в указанном Call ISleep = Int((lMaxSleep - IMinSleep + 1) * + IMinSleep) Call Возвратить величину задержки.
RandomSleep = ISleep End Function Один из минусов использования интервалов задержки Ч то, что таким образом снижается нагрузка со стороны данного кли ента. Это может помешать вам определить истинную параллель ную нагрузку. Аналогично, при недостаточной мощности клиен та, задача обнаружения лузких мест значительно усложняется, так как они при максимальных нагрузках на систе му. сценарий без интервалов ожидания моделирует транзакцию, в которой у пользователя имеется предварительно заполненная форма, отправляемая немедленно. Задание интер валов ожидания моделирует реальный трафик и позволяет точ нее оценить максимальное число параллельных пользователей.
38 Глава При задании случайных интервалов ожидания можно считать, что один SBC равен одному реальному Пользователи и группы Пользователи моделируются ACT динамически путем задания для всех элементов пользователей по умолчанию одного име ни пользователя и пароля. Между SBC и пользователями суще ствует соотношение один к одному. Например, если установить уровень в 25, то для выполнения теста вам потребуется как минимум 25 Если ваше исполь зует анонимную аутентификацию, то ACT генерирует нужных пользователей по умолчанию. Если же требует базовой аутентификации или аутентификации Windows NT LAN Manager (NTLM), вам придется заранее создать имена пользова и пароли. ACT позволяет настроить либо вводя их данные вручную (посредством пользовательского фейса), либо данные из файла. При исполнении тес та у каждого SBC будет уникальное имя пользователя и пароль.
Эти данные доступны сценарию тестирования посредством объекта Test. В следующем примере используется метод позволяющий получить имя текущего пользователя и пароль:
Dim oUser, sUserName, Set oUser = = sPassword = Cookie В большинстве случаев оптимальным вариантом работы с HTTP cookie является передача управления ими ACT. Cookie мож но установить вручную при запуске теста, a ACT будет обраба тываться автоматически. Для любого запроса, содержащего HTTP-заголовок Cookie, ACT покажет реальный ответ, сгенери рованный Web-сервером, и по умолчанию при автоматической записи теста он будет закомментирован. Следующая строка кода сценария будет содержать тот же запрос со значением справки no ACT содержит более подробное ние синтаксиса для работы с Нагрузочное тестирование с помощью ACT Заголовки Заголовки автоматически, но в тексте тестово сценария вы можете изменить такие заголовки, как host, версию HTTP и др.
ПРИМЕЧАНИЕ Если в вашем тестовом сценарии содержится несущая только ин формацию;
cist/samples/browse то ACT добавит набор заголовков по умолчанию, (compatible;
MSIE Win dows NT в качестве заголовка user-agent.
Например, если поведение вашего приложения зависит от зна чения заголовка user-agent разных Web-браузеров), то вы можете изменять заголовок HTTP в запросе, динамически моде лируя использование разных браузеров:
Dim sUserAgent, sSeed = (compatible;
MSIE 6.0;
Windows NT = PowerPC)" sArray(3) U;
en-US;
Gecko/ sSeed = Int((3 * find ) 1) sUserAgent = и шифрование ACT поддерживает большинство распространенных моделей аутентификации и методов интегрированную аутентификацию Windows NT LAN Manager (NTLM), базовую аутентификацию, анонимный доступ, и аутентификацию Microsoft Passport. Однако при автоматичес кой записи поддерживаются не все из перечисленных методов. Для случаев аутентификации и Micro soft Passport разработаны способы, позволяющие обойти это ог раничение (они обсуждаются далее). В следующей таблице опи сана поддержка методов аутентификации при записи и при ис полнении сценария:
40 Глава 3-1. Поддерживаемые методы Метод Запись теста Исполнение теста Да Да Базовый Да Да Windows-интегрированный Нет Да Passport Нет Да Дайджест Да Да Интегрированная Windows-аутентификация ACT поддерживает аутентификации;
однако невозможно записывать ра боты с Web-приложением, если в конфигурации выбрана оп ция интегрированной аутентификации. Некоторые Web-приложе no-прежнему смогут работать, если выбрана или базовая Для таких приложений стоит использо вать следующий прием для записи тестового сценария с щью ACT.
В дополнение к включите и базовую аутен тификацию. Это позволит ACT вести запись в то время, пока другие пользователи вашего Web-приложения автоматически применяют интегрированную аутентификацию.
2. Запишите сценарий ACT. Вам будет предложено ввести домен, пользователя и пароль для доступа к Web приложению.
3. Снова измените конфигурационный файл Web-приложения для запуска только аутентификации.
4. Измените тестовый ACT, закомментировав следую щую строку в каждом запросе:
"Basic 5. Создайте пользователей ACT с надлежащими именами и па ролями.
6. Выполните тестовый сценарий.
Базовая и дайджест-аутентификация ACT поддерживает запись и исполнение сценария для приложе ний, использующих как базовую, так и Нагрузочное тестирование с ACT цию. Для использования базовой или дайджест-аутентификации ACT автоматически добавит в ваш сценарий следующий код:
Basic and Digest Authentication Code "Basic Authentication Code oHeaders.Add "Authorization", "Digest Анонимный метод аутентификации наиболее распространен в Web-приложениях. ACT полностью и автоматически поддержива ет анонимную аутентификацию как при записи так и при их исполнении.
Аутентификация Microsoft Microsoft Passport Ч это группа которые об легчают пользование Интернетом и совершение покупок в тернет-магазинах, предоставляя пользователям единую точку регистрации (sign-in) и возможность быстрых покупок. Сервис единого имени пользователя или регистрации предназ начен для предоставления централизованного, и удобного сервиса, с помощью которого конечные пользователи транзакции. Так как Web-приложения Passport ис пользуют SSL, средство записи сценариев ACT не может работать при задании схемы аутентификации. Вам придется вруч ную написать часть тестового сценария ACT, выполняющего ре гистрацию пользователя, или не использовать Passport во время тестирования. Кроме того, реализация Passport раз личается, так что тестовые сценарии для них могут не совпадать.
Для новых версий Passport тестовые сценарии, вероятно, ся Простой сценарий аутентификации Passport, на писанный ACT Development Team, находится на прилагаемом к книге компакт диске.
42 SSL ACT полностью поддерживает исполнение тестовых сценариев, элементы, зашифрованные с помощью 40-бит ного или Однако запись тестовых для поддерживающего SSL, в ACT не поддержива так как ACT выполняет запись с помощью а при поступлении к нему данные уже зашифрованы. обхода это го ограничения следует отключить SSL на время записи сценария.
Изменение номера порта с 80 на 443 в вызовах снова активизирует использование 5SL. Ниже пока зан синтаксис вызова а также варианты вызова с портами 80 и Синтаксис = Без oConnect = False) С SSL oConnect = 443, Если отключить SSL для вашего нельзя, придется вручную добавить ссылки на зашифрованные страницы, исполь показанный выше синтаксис.
Использование SOAP с ACT SOAP Ч это простой протокол на основе XML для обмена инфор мацией в децентрализованной распределенной среде. Более под робная информация о SOAP опубликована на ACT не содержит встроенной поддержки запро сов SOAP, однако это ограничение можно обойти, сформировав тело вручную конкатенацией строк.
Пример кодирования con = 80, false) req = set headers = = = "POST" = Нагрузочное тестирование с ACT "Host", "(automatic)" & _ & body = & "1.0" & & & & body = body & body = body & body = body & body body & body = body & body = body & body body & body = body & body = body & body = body & body = body & body = body & body = body & body = body & = body set = Обработка состояния отображения Состояние отображения (viewstate) Ч это средство, применяемое для поддержки сессии и использующее скры тые элементы формы на Web-страницах. В ACT нет встроенной поддержки состояния отображения. Однако в следующем при мере показано, как вручную выделить состояния и закодировать его:
cs VIEWSTATE.
If Then 44 Глава = = InStr(Pos1, = + 7, - - 8) = res End If ' вручную:
все вхождения на viewst = все вхождения на viewst = fleplacefviewst, Можно обойтись без VIEWSTATE (и всех данных Post) установив следующее = Защита Web-сайта от ошибочного нагрузочного тестирования поддерживает Robots Exclusion используемый раз работчиками автоматизированных пользовательских агентов (лроботов) и администраторами определения областей Web-приложения, доступных определенным пользова тельским агентам. Чтобы запретить ACT отправлять запросы Web-серверу, вы можете создать файл robots.txt в каталоге сервера и добавить в него следующие строки:
ft Stress Agent это строка user-agent посылаемая ACT для собственной / Запрещает работу ACT со всеми частями Web-сайта Disallow;
/ При исполнении теста с защищенным robots.txt, ACT будет исполняться, не генерируя никаких запро сов. При этом на панели состояния строка: Ro bots.txt denied access to Web ПРИМЕЧАНИЕ В некоторых случаях применение протокола не позволит вам выполнить тест, например при тести ровании Passport. Поэтому ACT позволяет отключить эту проверку в диалоге Properties проекта те имя проекта правой кнопкой и Properties).
Нагрузочное тестирование с помощью ACT Запуск ACT Этот раздел можно считать отправной точкой в освоении утили ты нагрузочного ACT. Мы кратко опишем пользо интерфейс, а также рассмотрим процесс создания сценариев тестирования. Здесь приведены примеры записи сце нариев тестирования с нуля и использования ACT для непосред ственного нагрузочного тестирования SQL-уровня и рекоменда ции по исполнению нагрузочных сценариев с помощью ACT. Кроме того, мы коснемся таких тем, как оптимальное число сценариев тестирования, выбор подходящего числа тестовых клиентов, а также оптимальный уровень нагрузки (измеряемый в SBC).
Обзор пользовательского интерфейса ACT интерфейс ACT весьма прост. После запуска программы вы увидите окно, показанное на рис. 3-3.
Center Test provides of your Web Use ttiat meets accuracy rt.fferem unique might Be appropriate fty traffic -Х.,.
Test Properties Test can be to you Center How gel Рис. Начальное окно ACT Окно разделено на секции Ч левую и Левая исполь зуется для а правая Ч для отображения информации.
46 Глава Дерево на панели содержит узел ACTSamples, представляющий проект ACT. Одновременно может быть открыт только один проект. По умолчанию проект хранится в папке с тем же именем внутри папки C:\Documents and Documents\ACT Projects. Файл проекта с расши рением находится в папке и содержит указатели на все элементы проекта, как тесты и отчеты.
ПРИМЕЧАНИЕ Если размещения папки My Documents вы используете сетевой каталог, то пользовательской записи ACTUser необходимо пре доставить на чтение и запись в него, про тивном случае ACT не сможет исполнять тесты. На панели состояния при этом появится сообщение ACTUser does not have permissions to the folder.
На следующем уровне дерева расположены Tests, Results и подробно о них рассказано в следующих разделах.
Tests В этом узле перечислены все созданные пользователем сценарии тестирования. При выборе тестового сценария его код отобра жается в панели, где его можно корректировать. У каж дого тестового сценария имеются параметры, управляющие его исполнением, например длительность. Для просмотра парамет ров теста щелкните его правой и выберите Properties.
На экране появится страница свойств, показанная на рис. 3-4.
создания новых сценариев тестирования щелкните узел Tests правой кнопкой и выберите New Test из контекстного меню. В контекстном меню для данного теста имеются команды на его запуск и остановку. Один клиент ACT может ис полнять только один тест.
Results Этот узел отображает в правой панели результаты исполнения всех прогонов каждого тестового Изображение на эк ране после щелчка узла Results показано на рис. 3-5.
Нагрузочное тестирование с помощью ACT Рис. 3-4. Параметры теста fa Test r г Туи 1) Name: Type 4;
PM Test Notes:
By: t Б Length:
to 3th Pe Byte:
to Last Byte:
Рис. 3-5. Просмотр результатов теста Правая сторона экрана разделена на три части. Вверху перечис лены все ранее тесты. каждого в порядке 48 Глава убывания времени показаны результаты прогонов. Для просмот ра результатов теста нужно выбрать соответствующий прогон, тип отчета из раскрывающегося списка Report и затем Ч кате горию из списка. Все детали отчета отобразятся в нижней части правой панели экрана.
ACT различные категории отчетов Ч Overview, Graphs и Requests. Вы можете просматривать такую информацию, как число запросов в секунду (requests per second, RPS), до последнего байта (Time To Last TTLB), статистику просмот ра страниц и даже счетчики Вся эта инфор мация в файловой системе в виде XML-документов.
Подробности см. в справочной системе ACT.
Users В этом узле перечислены группы которые могут использоваться тестами. группу, вы отобразите в пра вой панели список ее пользователей. Чтобы добавить нового пользователя и пароль, просто выберите на панели пус тую строку и введите нужные значения. Для удаления пользова теля выделите нужную строку и нажмите клавишу Del. Полезной является поддерживаемая ACT возможность импорта имен пользователей и паролей из текстового файла в формате с раз делителем-запятой. Для этого выделите группу пользователей и затем Import Users из меню Actions.
браузерной сессии, устанавливаемой ACT, требуется имя пользователя и пароль для подключения к Web-приложению.
Именно здесь задаются пользователи для тестирования прило жения, использующего или интегрированный методы аутентификации.
ПРИМЕЧАНИЕ Чтобы не вводить перед каждым прогоном теста, вам следует создать группу и затем завести в ней нужное число пользо вателей. Количество пользователей в группе долж но быть больше или равно количеству SBC. Кроме того, если Web-приложение настроено на аноним ные вы можете включить автомати ческую генерацию пользователей (на вкладке Users).
Нагрузочное тестирование с помощью ACT Создание тестового сценария Для демонстрации работы ACT в качестве инструмента нагрузоч ного тестирования мы несколько тестовых сценариев, использующих средства поиска и просмотра IBuySpy. Ч это электронный магазин, предназначенный для платформы и технологий Мы используем приложение IBuySpy повсюду в книге. Про смотреть работу можно по адресу pystore.com/. Со страницы вы также можете загрузить его для установки у себя.
Для простоты сопровождения тестовых сценариев мы рекомен дуем вам создавать каждого нового тестового проекта от дельный проект ACT в собственной папке. Тогда по окончании цикла тестирования вы сможете заархивировать всю папку, что бы сохранить все тестовые сценарии и данные. создания про екта выберите New Project из меню File. В диалоговом окне New Project укажите проекта. Для простоты мы назвали проект IBuySpy, а место его размещения изменили на В ре зультате в папке C:\Project\ будет создана папка IBuySpy. После дняя останется пустой до тех пока вы не сохраните проект при этом будет создан вместе с некоторыми другими файлами, составляющими проект. Для каждого тесто вого прогона ACT создает отдельные отчетов в формате XML, содержащие свойства теста, свойства группы и клиентов.
Запись сценария тестирования Проще всего создать сценарий тестирования путем записи дей ствий пользователя Web-приложения. Для того чтобы начать сес сию записи, щелкните узел кнопкой и выберите из контекстного меню New Test Ч на экране появится мастер New Test. Щелкните Next и затем выберите Record A New Test. Щелк ните кнопку Next и затем Ч кнопку Start Recording. В этот момент запустится браузер, используемый вами по умолчанию, и вы смо жете выполнить следующий пользовательский поиска.
Направьте браузер по адресу >/.
2. Введите boat в поле Search, расположенное в правом верхнем углу Web-страницы.
50 Глава 3. Щелкните Go для поиска.
Закончив исполнение пользовательского сценария, щелкните кнопку Stop Recording. Все запросы, выданные во время сессии, отобразятся в окне но пока их нельзя изменить. Щелкни те Next и укажите имя сценария. Щелкните Next еще раз и за тем Ч Finish. Вновь записанный тест должен в дереве панели окна.
приведена выдержка из сценария, использующего сред ство поиска IBuySpy.
vbs Option Dim fEnableDelays fEnableDelays = False Sub Dim oRequest, oResponse, If fEnableDelays = True then (0) Set oConnection = 80, If (oConnectton is Nothing) Then "Error: to create connection to Else Set oRequest = = = "GET" = "HTTP/1.0" set oHeaders = image/x-xbitmap, _ "User-Agent", (compatible;
Windows NT Set oHesponse = Нагрузочное тестирование с помощью ACT If is Then "Error: Failed to receive response for URL to + Else = End If End If End Sub Sub Dim strStatusCode If fEnableDelays = True then Set oConnection = 80, If (oConnection is Nothing) Then "Error: Unable to create connection to YourServerName" Else Set oRequest = = = "GET" = set oHeaders = "Accept", "User-Agent", (compatible;
NT Set oResponse = If (oResponse is Nothing) Then "Error: Failed to receive response for URL to + Else strStatusCode = End If End If End Sub 52 Глава Sub Dim If = True then (20) Set oConnection = 80, false) If (oConnection is Nothing) Then "Error: Unable to create connection _ to Else Set oRequest = = = "GET" "HTTP/1.0" set oHeaders = oHeaders.
"Accept", "User-Agent", (compatible;
Windows NT Set oResponse = (oResponse is Nothing) Then "Error: Failed to receive response for URL to " + Else strStatusCode = End If End If End Sub Sub SendRequest17() oResponse, strStatusCode If fEnableDelays = then (6910) Set oConnection = 80, false) If (oConnection is Nothing) Then Нагрузочное тестирование с помощью ACT "Error: Unable to create connection to Else Set oRequest = = = "POST" = "HTTP/1.0" = False * "User-Agent", (compatible;
6.0;
Windows NT 5.1)" "no-cache" = Set oResponse = oConnection.Send(oRequest) If (oResponse is Nothing) Then "Error: Failed to receive response for URL to + Else = End If End If End Sub Sub call SendRequest1() call call call SendRequest17() End Sub 54 Глава записанного сценария тестирования Как каждый запрос инкапсулирован в подпрограмме с именем где # Ч порядковый номер. Все вызо вы этих подпрограмм собраны в подпрограмме Mainf). Началь ной точкой исполнения считается верхняя часть сценария тести где и инициализируются переменные.
Отсюда исполнение переходит к последней строке, где вызыва ется Внутри вызываются запросы, после чего исполнение сценария завершается. При последующих прогонах описанные выше шаги повторяются.
Приведенный код использует ACT, подключение к Web-серверу и отправку запросов. Эти объекты составляют модель тестовых объектов. Корнем данной ной модели является объект Test, В данном конкретном сценарии используются объекты Headers и Request. ACT также поддер живает Application Model, которую можно использовать для про граммного запуска тестов. Более подробно этих объектных моделях рассказано в электронной справке no ACT.
Записанный нами сценарий поиска демонстрирует, как выдаются HTTP-запросы СЕТ и POST Кроме того, здесь показано использование заголов ков запроса. Например, чтобы заставить ACT обрабатывать cookie при исполнении сценария автоматически, вы можете добавить следующую строку кода, как показано в приведенном ранее сценарии тестирования:
При отправке содержимого тела запроса, как в случае HTTP-ме тода POST, ACT автоматически определит длину содержимого с использованием следующей строки кода, что также показано в приведенном ранее сценарии:
Исследуя данный сценарий и сценарии тестирования из проекта поставляемого вместе с Studio вы изу чите объектную модель, что позволит вам самостоятельно эффек тивно создавать и модифицировать тесты.
Нагрузочное тестирование с ACT Создание сценария тестирования вручную Шаг 2 мастера New Test создать тест, содер жащий одну строку:
Аргумент предыдущего вызова может изменен на обраще ние к странице как показано ниже:
Левая начальной страницы IBuySpy содержит ссылки на все категории товаров. При перемещении мыши по категориям товаров на панели состояния отображается Добавляя к сце нарию тестирования другие строки, похожие на строку доступа к начальной странице, вы создадите сценарий, моделирующий просмотр продуктов. Для организации выбора ссылок на разных прогонах сценария потребуется допол нительный код. Пример такого сценария показан далее.
Option Explicit ' Назначение: просмотр разных товаров в случайном порядке, ' это пример сценария ACT, различных категорий товаров в произвольном Dim i, sParams, СДЕЛАТЬ:
-На Security свойств IIS -включить только интегрированную аутентификацию, -Заменить значения из примера значениями для вашего сайта, -Установить и пароль.
= ссылку на текущего пользователя, сгенерированного ACT, Set oUser = = sServerName & 56 Глава = новое зерно для случайных чисел.
случайное число от 0 до 6.
= * случайное число в трассировочный файл.
"i = & Select i = sParams = sParams = Case sParams = Case sParams = Case sParams = Case sParams = End Select начальную страницу.
категорию товара.
& sServerName & & sParams) конец пользовательского сценария.
4 sServerName Нагрузочное тестирование с помощью ACT тестовый сценарий генерирует пользователей автомати чески, а Web-приложение настроено на интегрированную аутен тификацию. Для входа на получает ссылку на сгенерированный после чего посред ством свойств этого имя и пароль. Прежде чем запустить данный сценарий, необходимо локальную учетную запись этого пользователя на Web сервере.
ПРИМЕЧАНИЕ Последний запрос в сценарии стирования показывает, как добавить маркер в нал IIS W3SVC). В нашем примере мы выб рали так как эта строка данных не ин терпретируется Web-прилжением. Таким образом, вы можете подсчитать количество выполненных пользовательских сценариев (транзакций) по окон чании тестового прогона. Этот прием применяется и в другом случае: при определении пропускной спо собности Web-приложений, когда разные парамет ры используются для обозначения разных транзак ций, выполняемых на одной и той же Web-странице.
Создание нагрузочных сценариев для SQL-уровня ACT позволяет выполнять SQL-вызовы посредством ADO (ActiveX Data Кроме того, ACT поддерживает создание ких потоков, благодаря моделировать несколько одновременных подключений к базе данных. Эта возможность также если на текущем этапе цикла разработки уровень Web и уровень данных еще не готовы к работе.
ПРИМЕЧАНИЕ Необходимо убедиться в что опции SQL Server (то уровень изоляции транзакций) для сессии SQL, создаваемой сценарием и сессии, используемой Ч идентичны.
Начав с пустого тестирования, подключитесь к SQL Server и выполните хранимую процедуру или любой динамичес 58 Глава SQL-оператор. Например, алгоритм поиска G приложении IBuySpy вызывает следующую хранимую процедуру:
N'search Следующий сценарий тестирования демонстрирует подключение к SQL Server напрямую с использованием Scripting Library и ADO и вызов реализации средства поиска приложения на уров не базы данных. Кроме он содержит пример выборки дан из внешнего файла.
Option Explicit ' Назначение: тестирование SQL-уровня посредством ADO.
Данный пример сценария AST выполняет SQL-вызовы посредством ADO. Параметры для хранимой процедуры поиска этот сценарий берет из внешнего файла.
Dim oFso, Dim sUserName, sPath ' СДЕЛАТЬ:
- Установить sServerName.
- Создать пользователя SQL Server с привилегиями на базу данных Store.
- Проверить путь к файлу sServerName = sUserName = sPassword = sPath = an ADO Connection object Set oSQLConn = sConnStr = & sServerName & & sUserName & & sPassword sConnStr ' Открыть текстовый файл со строками Нагрузочное тестирование с помощью ACT = Set =,1) до достижения конца файла.
Do While <> строку поиска из файла, = строку поиска в журнал ACT.
' Выполнить хранимую процедуру ProductSearch.
ProductSearch = &.....
Loop текстовый файл.
Set oCsvFile = Nothing Set oFso = Nothing соединение с базой данных.
Set oSQLConn = Nothing параметров теста перед исполнением сценария Перед исполнением теста необходимо установить не которых его параметров. Для этого используют страницу теста. Можно задать следующие параметры.
Х Test Load Level Ч уровень нагрузки (вкладка этого необходимо установить количество параллельных сессий. Одну такую сессию можно считать виртуаль ным пользователем, работающим с приложением. Например, если вы хотите смоделировать десять параллельных подклю к установите данное значение о 10.
ACT запустит SBC, каждая из которых будет исполнять те стовый 60 Глава Х Test Duration Ч длительность теста (вкладка Здесь возможно два варианта: задать либо время, либо число повто рений для всех сессий. Если параллельных сессий равно а число повторений Ч 100, то каж дая из этих сессий выполнит столько чтобы их об щее количество не превысило 100. При нагрузочном тести ровании мы обычно задаем длительность, указывая временное значение, достаточное для прогрева и выхода на стабиль ные режимы работы. Необходимый интервал времени мож но определить, наблюдая за степенью загрузки процессора или количеством запросов в секунду во время предварительных прогонов тестового ACT позволяет устранить вли яние на отчеты начальных переходных процессов Ч для это го достаточно указать начальное время.
Х Detailed Reporting Ч детализация отчетов (вкладка ACT может вывести сводную статистику запросов для каждой страницы или просто общую статистику по всем запросам. Для получения подробных отчетов необходимо установить флажок поле detailed test results диалога Advanced Settings. Данный диалог вызывается щелчком кнопки Advan ced, которая расположена на закладке General.
ПРИМЕЧАНИЕ Для времени ции отчетов и во избежание исчерпания памяти при длительных прогонах мы комендуем отключить этот параметр для ге нерирующих большое количество разнотипных за просов.
Х Users Ч пользователи (вкладка Users). ACT может вать автоматически, либо вы можете задать группу, содержащую указанных Когда это не обходимо, группу, в которую вы добавили мож но выбрать на данной закладке диалога свойств. Количество пользователей з группе задается не меньше, чем число парал лельных сессий. Обратите внимание, что на каж дом прогоне в сценарии действует один и тот же пользова тель, если только сценарий не вызывает метод GetNextUser Нагрузочное тестирование с ACT объекта Test. Подробно методы объекта Test описаны в инте рактивной системе ACT.
Х ACT способно автоматически сгенерировать для теста. Чтобы воспользоваться данной возможностью, вам сначала необходимо создать группу Затем, выделите ее и Generate Users из меню Action. На экране появится диалоговое окно Generate Users, где задают ся количество пользователей, префикс для идентификаторов пользователей и пароль. Чтоб вновь созданную группу, ее следует явно назначить некоторому тесту.
Х Counters Ч счетчики (вкладка Counters). Вкладка Counters отображает те же счетчики, значения которых собираются Performance Monitor. Вы можете установить длительность ин тервала сбора данных, задав значение в поле Collection interval. Для добавления счетчиков щелкните кнопку Add и затем выберите в диалоге Browse Performance Counters компьютер и нужные счетчики. Они отобразятся о спис ке Performance Counters Counters.
Изменение сценария для устранения повторов данных Обычно возвращаемое Web-приложениями, гене рируется в зависимости от вводимых пользовате лем данных. Часто слой данных в таких приложениях реализован с помощью системы управления базой данных, подобной SQL Server. По этой причине простая запись действий с последующим их воспроизведением не точно соответствует поведению приложения в реальности. Например, в сценарий пользователь ской активности включено применеие поисковых приложения. При записи сценария фиксируется только одна стро ка поиска. Многократное воспроизведение такого сценария не станет моделью реального трафика, так как поисковый запрос и его результаты могут быть Результаты теста ся неадекватными, так как не действиям ных вводящих разные строки поиска.
Автоматическая запись Ч это быстрый и простой способ создать начальный сценарий, который можно использовать для фикса ции большинства, хотя и не всех таких, как мето ды СЕ Т и POST. Записанный начальный сценарий иногда требу 62 Глава ется модифицировать реализации динамического вводимых данных. Например, пользовательский может содержать регистрацию записи в При записи сценария фиксируются и регистрационные данные, например имя При воспроизведении такой сценарий не будет работать, так как данный пользователь уже зарегистрирован. Поэтому сце нарий необходимо модифицировать так, чтобы при каждом но вом его прогоне задавалось иное имя пользователя. Для этого, например, сценарий должен считывать регистрационные данные из текстового файла. Чтобы сценарий работал в течение указанного времени или заданное число повторений, вам следует предоставить достаточный входных данных.
ПРИМЕЧАНИЕ Чтобы при каждом прогоне не тестовые данные большого объема заново, перед первым выполнением теста SQL базы данных приложения следует заархивиро вать и потом из архива перед по следующими прогонами. Тогда вы сможете много кратно использовать те же самые тестовые данные.
Иногда данные, сгенерированные на одном шаге, например CUID, на адрес, необходимо использовать на шагах. В таких случаях тестовый сценарий должен вы полнять разбор выданного запроса, чтобы извлечь из них данные для последующего использования. Для этих целей ACT предоставляет позволяющий работать с ре зультатами клиентского Web-запроса. Пример использования та Response см. в разделе Обработка состояния отображения.
Отладка сценариев тестирования в ACT Для помощи при отладке сценариев тестирования ACT предо ставляет файл журнала, в который сообщения записываются во время прогона теста. По умолчанию журнал называется АСТТга ce.log и хранится в папке ACT. На вклад ке Debugging в проекта вы можете изменить располо жение этого ограничить его максимальный размер (по Нагрузочное тестирование с ACT достижении которого он удаляется и начинается заново), а так же включать или отключать ведение журнала. Средства про граммного управления трассировкой предоставляет объект Test.
Свойство TraceLevel позволяет задавать уровни трассировки, а пользовательские сообщения могут выводиться в журнала вызо вом метода Trace. Журнал трассировки также используют для обнаружения ошибок во исполнения Следующий пример устанавливает уровень трассировки, при котором в жур нале фиксируются все сообщения, и выводит одно сообщение:
= - ' Свойство tracelevel иметь одно из следующих ' -1: всю ' 0;
отключить журнал;
V. регистрировать только внутреннюю информацию программы;
' 2: генерировать только внешнюю информацию, выводимую методом Это установка по умолчанию level is set to & ПРИМЕЧАНИЕ Обратите внимание, что при зна чении TraceLevel no в ACTTrace.log не ничего, кроме мых вызовами Верификация сценариев тестирования Перед выполнением реального теста сценарии тестирования необходимо Некоторые сценарии способны только данные из базы, тогда как другие могут обновлять или удалять данные. Следует проверить, например, производимых им изменений данных. Так, если сценарий выполняет вставки, можно подсчитать количество строк в базе до и после прогона теста и сравнить их с ожидае мыми результатами. Количество строк, вставляемых при испол нении активности пользователя человеком, должно совпадать с количеством строк, вставляемых за один прогон сце нария тестирования, Другой полезный прием верификации функциональности сцена рия Ч просмотр журналов IIS. Сравнивая журнал 64 Глава IIS при исполнении сценария активности пользователя человеком с журналом, полученным при прогоне теста, можно убедиться в что все запросы тестом в правильном поряд ке. Иногда приложения выполняют некоторые действия с помо щью клиентских сценариев, и такие действия автоматически не записываются ACT. Исследование журнала IIS поможет вам вы явить подобные случаи.
ПРИМЕЧАНИЕ Хотя в этой глазе упоминается Microsoft Internet Information Server, ACT можно ис для тестирования производительнос ти любого Web-cepsepa.
Для сценария тестирования также фиксируют с помощью SQL Profiler выполняемые SQL-операторы и сравнива ют их с ожидаемой последовательностью вызовов. Подробнее настройка SQL Profiler обсуждается в 8.
Сценарии и тестовые клиенты ACT Developer Edition не для исполнения на скольких компьютерах. Его лицензионное соглашение допускает одновременно работу не более одного клиента. В зависимости от тестируемого приложения одна клиентская не всегда способна сгенерировать достаточную нагрузку для вашего Web-приложения, сама не став при этом источником проблем.
ПРИМЕЧАНИЕ Признак того, что клиентская ма шина стала лузким местом, Ч полная загрузка на ней таких как процессор, память и сете вая плата. Можно также определить производитель ность, прогнав а затем повторить SBC между несколькими клиентами. с полнительными клиентами производительность зна чительно возрастает, то можно с уверенностью полагать, что клиент стал лузким местом.
Для генерации достаточной нагрузки на большинство Web-при ложении, которые нам приходилось тестировать, требовалось несколько клиентских машин. Единственный способ сделать это Нагрузочное тестирование с помощью ACT с помощью ACT Ч приобрести дополнительные копии Visual каждого дополнительного компьютера. Затем придется создать тесты вновь, задав параметры и на каждой машине. Для простоты просто папку про екта целиком на каждую клиентскую машину, измените входных данных, если это откройте проект и запус тите тест.
ПРИМЕЧАНИЕ Максимальное количество брау сессий в ACT разно 2000. Для одной клиен тской машины этого должно хватить. Если по какой то причине вам понадобится больше 2000 соедине ний для одного компьютера, вы можете изменить значения параметров проекта напрямую в XML, но после этого страницы свойств проекта нельзя от крывать в пользовательском интерфейсе ACT. Кро ме того, с помощью дополнительного вызова Connection в сценарии тестирования удается удво ить число соединений на поток управления.
Несколько тестовых необходимо также использовать, если ACT в любой момент времени для данного клиента способ но исполнять только один тест. Обычно в приложении имеется больше одного сценария, и для исполнения нескольких сценари ев параллельно (смешанный тест) вам потребуется по мере по одной клиентской машине на каждый.
Здесь встает вопрос о необходимом числе сценариев тестирова ния. Следует применить один большой сценарий тестирования, исполняющий все сценарии активности пользователя, или же много сценариев Ч по одному на каждую актив ность? Мы предпочитаем создавать отдельные сценарии, так как это позволяет прогонять их по отдельности и определять места в каждом из В качестве альтернативы предлагается следующий прием для исполнения нескольких пользовательских сценариев помощью одного большого сценария тестирования;
Sub * 100) 66 Глава Select Case Case 0 To Call 76 To Call Case 87 To Call End Select End Sub Для приложения мы создали отдельные тестовые сцена рии Просмотр, Поиск, Регистрация и Заказ, которые вы найдете на прилагаемом к книге компакт-диске.
Исполнение нагрузочного теста Требуемые объемы нагрузочного тестирования зависят от поставленных G начале тестирования. Вам необходимо лить критерий, который укажет на достижение необходимых нагрузки. Чтобы помочь приведем некоторые при меры таких критериев:
Х прекратить увеличение нагрузки при очень большом количе ошибок в системном журнале событий или журналах Web-сервера;
Х довести нагрузку до точки, в пропускная способность упадет очень сильно;
Х установить порог использования процессора (например, свы ше 75%);
Х установить порог использования памяти;
Х установить порог времени отклика на запрос страницы;
Х достичь рассчитанного на основании бизнес-правил числа запросов в секунду количества параллельных сессий.
После определения тестовых критериев необходимо выполнить несколько прогонов теста с разными уровнями нагрузки (разным числом Начав с небольших нагрузок и дав тесту поработать достаточное время для исполнения достаточ ного количества пользовательских сценариев, вы сможете опре делить пропускную способность для конкретных сценариев. Уве личивая нагрузку, необходимо следить за загруженностью кли Нагрузочное тестирование с помощью ACT ентской не допуская ее перегрузки. Дополнительные клиенты потребоваться гарантии того, что клиентская машина во время теста не лузким местом или ником ошибок. Во время этих предварительных тестов, которые мы называем тестами на задымление, следите за тем, чтобы серверы приложения выполняли критерии производительно сти. Вы также можете построить графики пропускной способно сти приложения. эти тесты, вы в конце концов нете одного или нескольких пороговых критериев. Они указыва ют, что получены подходящие уровни нагрузки. Теперь вы готовы провести более длительный по тест с соответствующей нагрузкой, используя необходимые средства мониторинга, чтобы минимизировать обращение к серверным ресурсам.
В зависимости от масштабов тестирования вы жете применить один или несколько сценариев. Мы ем для каждого сценария выполнять отдельные тесты в допол нение к исполнению всех сценариев параллельно с определенной каждого в нагрузке. Исполнение сценариев по от дельности позволяет обнаруживать лузкие места, влияющие только на отдельные части приложения. Обнаружив изолирован ные лузкие места, вам при проведении теста будет проще лузкие места, возникающие в результате взаи модействия разных Прогон смешанного сценария тес тирования (когда все сценарии исполняются параллельно) позво лит нагрузить приложение, смоделировав условия, более прибли женные к реальным. В результате вы определите лузкие места, при взаимодействии разных сценариев, такие, как блокировки и тайм-ауты, Другая важная переменная Ч общая продолжительность теста.
Ее значение зависит от того, как быстро приложение способно обрабатывать запросы и выполнять пользовательские транзакции (сценарии). Другими факторами, влияющими на длительность теста, является время, требуемое для достижения состояния, а также имеющиеся объемы тестовых данных. Мини мальная длительность исполнения тестов, используемых для оп ределения способности под обычно со ставляет от 5 до 30 минут.
68 Глава ПРИМЕЧАНИЕ Общее число = Об щее число успешных страниц или число строк SQL, указывающих на завершенный сценарии Количество транзакций в минуту Общее число Время тестового прогона Количество транзакций в секунду Ч Количество транзакций в 60 секунд.
Расширенные под не менее ми и могут длиться до недели. Однако точное значение необходимой продолжительности теста зависит от го приложения. Такие тесты полезны для определения степени стабильности приложения, утечек памяти и монито ринга пропускной способности приложения в условиях продол жительных по времени нагрузок.
Контролируемая среда тестирования Помимо определения адекватного числа сессий и оптимального количества клиентских машин, мы рекомендуем вам выполнять тесты в контролируемой среде. Слово контроли руемая подразумевает, что выделены компьютеры, как нагрузочные клиенты, и компьютеры, являющиеся серверами, на которых установлено приложение. Аппаратные средства этих компьютеров должны максимально соответство вать тем, которые предполагается применять при эксплуатации приложения. Все компьютеры следует объединить в закрытую надлежащей способности. От результатов тес тирования мало пользы, если параметры производительности не удается воспроизвести. Контролируемая среда гарантирует на дежность тестовых результатов, устраняя не относящиеся к тес ту сетевые помехи.
Из-за отсутствия управляемой среды результаты тестирования иногда получаются искаженными, так как они зависят от произ водительности выполняющих поиски в DNS, аутентификацию и т. п. Задержки в сети колеблются при изме нении ее загруженности в зависимости от времени суток, что некоторых случаях также влияет на пропускную способность при ложения. Существование зависимостей от внешних серверов Нагрузочное тестирование с помощью ACT нарушить график тестирования, если у одного из них воз никнут проблемы. Кроме наличие контролируемой среды что нагрузка на серверы приложения генериру ется исключительно тестовыми клиентами.
Заключение Ч это средство, и в будущем, по мере освоения новых его возможности будут только расширяться.
Важность нагрузочного тестирования делает освоение инстру мента нагрузочного тестирования, подобного ACT, необходимым.
Чем быстрее вы изучите этот инструмент, тем быстрее сможете с пользой применить его. Мы надеемся, что эта глава стала для вас быстрым стартом в освоении ACT.
Глава Серверы семейства Microsoft Windows 2000 гра инструмент мониторинга производительности System Monitor (Системный в виде ос настки (snap-in) Microsoft Management Console (MMC). (В преды дущих версиях Windows NT он назывался Performance Monitor или Perfmon.) Эта оснастка наблюдать за производитель ностью систем управления базами данных и аппаратных ресурсов Windows-серверов. Оснасток ММС предус мотрено две: System Monitor (Системный монитор) для ние за в реальном времени и Performance Logs and Alerts и журналы производительности) для ведения жур производительности.
В этой главе мы расскажем о том, как работать с системным монитором, мониторинг каких ресурсов целесообразен и как ин терпретировать значения наиболее часто используемых систем ных счетчиков производительности. Объекты и счетчики произ водительности для Framework обсуждаются в главе счет чики и ASP.NET и IIS Ч в главе 6, а счетчики и объекты в главе 8. Обратите внимание, что в этой главе речь пойдет о серверов Windows 2000, а не о Windows Server, так как на момент написания книги готова была лишь бета версия последнего.
Мониторинг приложения Использование системного монитора Единицы измерения, используемые для мониторинга аппаратных и программные ресурсов системного монитора, называются Счетчики в группы, име нуемые В некоторых у счетчиков также име ются экземпляры. при мониторинге работы процес сора Web-сервера следует наблюдать за значением счетчика % Processor Time загруженности процессора), входящего в со став объекта Processor (Процессор). Если на сервере имеется не сколько процессоров, то можно контролировать либо их общую загрузку, либо значения экземпляров счетчиков для каждого про цессора в отдельности.
Стандартный набор объектов и системного монитора становится доступным сразу же после установки Windows Server. Если на сервере установлены определенные например SQL Server, то также доступны объекты и счетчики, предусмотренные для SQL Server. В этом случае системный мо нитор для сбора информации о работе SQL Server использует удаленные вызовы процедур.
Системный монитор потребляет небольшой объем ресурсов цессора и диска наблюдаемой с его помощью системы, что но иметь виду при измерении и расчете производительности систем и Если мониторинг компьютера выполняет ся удаленно, то системный монитор также потребляет ресурсы сетевой платы. Для очень сильно загруженных систем и прило эти накладные расходы могут иметь значение, особенно при реальной эксплуатации системы. Однако если речь идет о среде, специально организованной для тестирования, то эти на кладные расходы обычно незаметны.
Помимо наблюдения за значениями счетчиков производительно сти монитор позволяет также:
Х наблюдать за выбранными объектами и счетчиками в реаль ном времени;
Х сохранять показания счетчиков производительности в журна лах для последующего анализа;
Х выполнять мониторинг нескольких серверов Windows 2000 с помощью одного экземпляра системного монитора;
72 Глава Х генерировать (alerts), уведомляющие о достиже нии заданных пороговых или условий. Например, можно настроить оповещение таким образом, чтобы при вышении 90-процентного уровня загрузки процессора в сис темный журнал заносилась соответствующая отправ лялось сетевое сообщение, делались пометки в журнале про изводительности, запускалась некоторая программа или вы бы все перечисленные действия;
Х трассировочные события для регистрации опре деленных связанных с процессорами, потоками уп равления, сетевым дом, с файлами или страничными ошибками (в вир туальной памяти). Для интерпретации содержимого журналов трассировки требуются специальные программы. Вы можете создать такую программу, используя API (описанние вы найде те на Трассировка приме няется редко, обычно только службами поддержки В этой подробно рассматриваются первые два метода и кратко оповещений).
Наблюдение за производительностью в реальном времени При наблюдении за производительностью в реальном времени вы можете использовать три формы представления: ги стограмму или отчет. Мониторинг производительности в ном времени полезен тогда, когда вы что ищете либо хотите убедиться в наличии некоторого лузкого места. Если для возникновения места нагрузочный тест должен выпол няться всю ночь, лучше воспользоваться журналами показателей производительности. Подробнее об этом Ч в разделе Генера ция и просмотр журналов.
Диаграмма Отображаемые в реальном времени диаграммы производитель ности отличным способом тенденций и срав нения нескольких экземпляров одного счетчика, например % Processor Time загруженности процессора). Представление в виде диаграммы наиболее популярно, поэтому вам необходи Мониторинг производительности приложения 7:s мо хорошо изучить этот способ, с тем чтобы впоследствии ис пользовать его возможности в полной мере. Диаграмма может иметь вид графика или Пример графика произво дительности показан на рис.
Рис. 4-1. Системный в режиме графика Режим графика Щелкните Start укажите на Programs (Программы), за тем Administrative Tools (Администрирование) и потом щелк ните Performance (Системный 2. Щелкните в дереве на левой панели узел System Monitor (Си стемный монитор) Ч системный монитор отобразится в вой панели.
Возможности мониторинга производительности с мы поясним на Итак, допустим, необхо димо вести мониторинг использования процессорного време ни в многопроцессорной системе. Сначала запускаем систем ный монитор. консоль с открытым системным монитором показана на рис. 4-2.
СОВЕТ Для запуска системного монитора также достаточно ввести из Start полнить).
74 Глава Рис. 4-2. Системный монитор на системной консоли 3. Если монитор находится не в режиме щелкните кнопку View Chart (Просмотр в части правой панели.
Цвет Теперь, когда вы как отображать график работы процес сора, мы познакомим вас с некоторыми систем ного монитора, полезными сборе данных о производитель ности. Некоторые из них характерны только для диаграмм, gpv гие же применяются также в режиме отчетов и гистограмм.
Чтобы различать графики одновременно наблюдаемых парамет ров, применяйте цвета. Цвет можно выбрать из палитры [в крывающемся списке Property Name (Имя диалогового окна System Monitor Properties (Свойства: Системный выбор осуществляется автоматически из системных цветов, определенных с помощью Display (Экран) в Панели управления. При работе с палитрой имейте в виду следующее:
Х Ч это область, окружающая диаграмму;
Х BackColor Ч область данных диаграммы;
Х ForeColor Ч цвет текста и легенды.
Масштаб счетчика Для некоторых счетчиков требуется настройка масштаба. Напри мер, приходится увеличивать масштаб, выраженный в байтах, Мониторинг производительности приложения связанных с памятью. Значение масштаба счетчика экспоненциально от 0,0000001 до Выбирая счетчики для сбора учитывайте их характерис тики. Некоторые счетчики показывают мгновенные значения, то самые последние результаты измерений, а другие Ч усред ненные, то среднее значение двух последних измерений за интервал времени, который их разделяет. Для счетчиков та процессор на многопроцессорном сервере все процессоры перечислены в окне списка Instances (Экземпляры). Системный отображает экземпляры, начиная с 0. Например, для сервера доступны экземпляры с 0 по 3.
Важно учитывать влияние характеристик счетчика на результаты.
Например, при мониторинге показателя (транзак ций/сек) результаты рассчитываются как число транзакций за выбранный интервал Количество транзакций делится на количество секунд в выбранном интервале, Кроме того, осо бое внимание следует уделять пикам для усредненных счетчиков.
Например, в начале наблюдения за счетчиком % Processor Time загруженности может пик загрузки процессора. получения точных показателей загрузки процес сора подождите второго или третьего усредненного значения счетчика.
Имя родительского При мониторинге потоков управления процесса Microsoft dows Explorer нужно выбрать экземпляр Windows Explorer объекта а затем каждый из потоков ис полняющих Windows Explorer (дочерние экземпляры). Дочерние отличаются один от другого индексами экземпляра потока, которые принимают значения О, 1 и так далее для каж дого потока, с префиксом По умолчанию операционная сис тема устанавливает системного монитора таким обра зом, чтобы отображать повторяющиеся экземпляры. Индекс эк земпляра 0 скрыт, нумерация дополнительных начинается с 1. Вы не можете наблюдать за несколькими экзем плярами одного процесса, если не используются индексы экзем пляров.
76 Глава Имя компьютера Каждый объект содержит счетчики, предназначенные изме различных параметров производительности, например ско рости обмена данными для или времени для процессора.
Computer Name (Выбрать счетчики с компьютера) определяет имя компьютера, которое отображаться в нижней части графика.
Будьте внимательны при наблюдении за одними и теми же тами и счетчиками с разных серверов Ч цвета и шрифт, чтобы различать показания разных компьютеров.
Строка значений Строка под содержит статистическую ин формацию по выбранным счетчикам. Включить или выключить отображение строки значений щелкнув правой кнопкой в любом месте диаграммы и выбрав Properties затем выбрав в диалоговом окне Monitor Properties (Свойства;
Системный монитор) вкладку (Общие) и изменив на ней значение флажка поле Value Bar (Строка значений).
В строке значений отображается следующая информация:
Х Last (Последний) Ч последнее значение данного счетчика;
Х Average (Средний) Ч среднее значение данного счетчика;
Х Minimum (Минимум) Ч минимальное значение данного счет чика;
Х Maximum (Максимум) Ч максимальное значение данного счетчика;
Х Duration (Длительность) Ч отображаемое на графике общее время, зависящее от выбранного интервала.
вами значение интервала определяет, как часто должны за меряться значения счетчика. Подробнее об установке тервала Ч в разделе Частота замеров.
Режим гистограммы Режим гистограммы удобен при наблюдении за несколькими эк земплярами одного и того же счетчика. Например, сравнив зна чения счетчика % Read Time (%активности диска при чтении) для всех дисков сервера, удается определить, какой из них пере гружен запросами на чтение. Для переключения в режим Мониторинг производительности приложения щелкните соответствующую кнопку панели инструментов или нажмите Кроме того, можно выбрать пункт Histogram (Гистограмма) на вкладке Genera! (Общие) в диалоговом окне System Monitor Properties Системный монитор).
Рис. 4-3. Режим гистограммы Режим отчета Режим отчета весьма для счетчиков, с логи ческим и физическим вводом-выводом: дисковым или сетевым.
Например, использование режима диаграммы для мониторинга всех процессов, на вашем неудоб так как график или гистограмма будут очень перегружены.
Режим отчета в данном случае обеспечит представление данных удобное для восприятия.
Для отображения данных реального времени в виде отчета щел кните кнопку Report (Отчет) на панели инструментов или введи те + R. Вы также можете выбрать пункт Report (Отчет) на вкладке General (Общие) диалоговом окне System Monitor Properties Системный монитор).
Частота замеров Как при мониторинге производительности в реальном времени, так и при записи параметров производительности в журнал, раз решается установить интервал сбора данных. Он в значительной 78 Глава мере влияет на возможность выявления потенциальных лузких мест. В большинстве случаев величина интервала зависит от типа исследуемого лузкого места. Например, выявления пробле проявляющейся медленно, такой, как утечка памяти, следу ет выбирать более длинный интервал. С другой стороны, если лузкое место проявляется интервал покороче.
Если тип лузкого места и момент его возникновения не установ лен, то для начала можно выбрать интервал в 15 минут.
При выборе интервала следует также учитывать общее время наблюдения. Считывать каждые секунд имеет смысл только тогда, когда общее время не превышает четырех часов.
При наблюдении за системой в течение часов и более интервал не следует выбирать короче 300 секунд (5 минут). При коротких интервалах обновления зачастую генерируются боль шие объемы данных, которые трудно анализировать, особенно если одновременно вы имеете дело с большим числом счетчиков.
Pages: | 1 | 2 | 3 | 4 | Книги, научные публикации