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

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

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

Необходима большая активность в вопросах проектирования и управления системами клиент-сервер. Им необходимо знать наперед предполагаемую мощность и требования к машинам клиентов, а не дожидаться реакции сети на новые приложения. Они должны предвидеть, что может случиться при подключении дополнительных пользователей через год-полтора. Тестирование с большой загрузкой помогает лучше планировать производительность.

Два подхода

Есть два способа проведения тестирования. Первый - оценочный контроль, при котором для выполнения транзакций привлекается небольшое число, порядка двадцати, ПК. На основании производительности контрольной группы делается заключение о производительности 100 или 1000 ПК. Второй способ получил название "многопоточный контроль посредством виртуального пользователя". Заключается он в использовании одной многопроцессорной машины (как правило, под ОС Unix) для имитации сотен ПК.

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

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

Одно из преимуществ многопоточного контроля - низкая стоимость. Unix-машина имитирует требуемое число ПК и, следовательно, нет необходимости покупать и устанавливать сотни.

Основные участники

Известны два основных разработчика продуктов тестирования с большой загрузкой: компания Mercury Interactive с продуктами LoadRunner PC и LoadRunner XL (фрагменты из комплекта LoadRunner Client/Server компании) и SQA с продуктом SQA LoadTest.

Оба продукта Mercury выполняют практически одни и те же функции, но по-разному. LoadRunner PC представляет собой усовершенствованную версию WinRunner, автоматизированного инструмента тестирования этой компании. Он автоматизирует прогон тестов WinRunner в режиме распределения по нескольким ПК. Эти тесты запускают ПК клиента, который, в свою очередь, запрашивает и обновляет сервер по всей сети. Записывая действия пользователей при работе с приложениями, WinRunner генерирует сценарий теста. LoadRunner PC размножает его копии и "прогоняет" на разных ПК сети. Так, чтобы сформировать нагрузку, эквивалентную возникающей при работе с двадцатью пользователями, LoadRunner PC прогонит 20 сценариев WinRunner через 20 ПК.

Для контроля производительности приложений при пиковой нагрузке LoadRunner PC дает возможность создать и запустить несколько виртуальных пользователей одновременно. Например, для имитации одновременного входа в систему нескольких пользователей LoadRunner PC назначает "место встречи". Имитируя многопользовательскую нагрузку, можно установить пределы производительности приложений и локализовать неисправности, проявляющиеся только при пиковой нагрузке. Единственное препятствие для использования этого продукта состоит в том, что имитировать можно лишь столько пользователей, сколько машин предполагается установить.

LoadRunner XL выполняет многопроцессорную обработку виртуальных пользователей, посылая SQL-обращения непосредственно на сервер базы данных. Он работает на подключенной к сети Unix-машине. Таким образом, можно имитировать сотни, а теоретически и тысячи виртуальных пользователей ПК. Mercury разрабатывает инструментарий для сбора SQL-вызовов от реальных пользователей. Затем эти обращения могут быть "проиграны" при помощи LoadRunner XL.

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

Продукт SQA LoadTest работает совместно с QA Robot, собственным автоматизированным инструментом тестирования. При помощи сценариев Robot, распределенных посредством LoadTest по сети, запускаются клиентские машины, нагружая сервер базы данных. Ограничение - число доступных ПК. Увы, нельзя имитировать больше виртуальных пользователей, чем есть в наличии.

LoadTest позволяет выполнять различные сценарии на разных машинах и измерять время реакции сервера. Load-Test дает возможность спланировать прохождение тестов по различным машинам, чтобы проверить совместимость оборудования и определить оптимальную конфигурацию аппаратуры и ПО для данного приложения.

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

Компания Compuware недавно выпустила Playback LD, ПО для тестирования при большой загрузке. Playback включает в себя 5 автоматизированных инструментов тестирования. Playback LD имитирует деятельность пользователей путем прогона сгенерированных сценариев, которые размножаются и "проигрываются" при смоделированной нагрузке.

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

Есть и еще один заслуживающий внимания вариант, хотя, строго говоря, его нельзя назвать готовым продуктом - это инструментарий из серии PurePerformix, ПО для тестирования с загрузкой компании Pure Software. PurePerformix воспринимает все действия пользователя, включая нажатие клавиш, перемещение мыши, запросы SQL, генерируемые приложениями, и формирует сценарии, создавая из них "смесь" для моделирования множества пользователей.

Компания Segue Software, производитель межплатформенного автоматизированного инструмента контроля QA Partner, имеет торговое соглашение с Pure Software, так что пользователи могут приобрести QA Partner вместе с продуктами PurePerformix. Учитывая, что QA Partner весьма мощное средство, такой вариант - далеко не самый худший.

Руководство к действию

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

Нидхам говорит: "Тестирование должно быть неотъемлемой частью разработки, маркетинга и поддержки, иначе это просто трата денег. Важно, чтобы набор характеристик, подвергающихся анализу, охватывал все стороны деятельности, а результаты влияли бы на проектирование".

Забегая вперед

Джим Голланд, директор по маркетингу компании Compuware, предостерегает: "Во-первых, необходимо согласовать стратегию построения, контроля и развертывания системы, и во-вторых, - контролировать своевременно, контролировать часто и контролировать полностью".

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


Стефан Р. Квин, Кати Лукас руководят разработкой SQA компании Quintus. Их адреса в электронной почте: srq@stw.com, lucas@quintus.com.

По ту сторону сервера

Хотя термин "тестирование с большой загрузкой" предполагает определение возможности сервера базы данных управляться с множеством запросов, 10-мегабитный канал Ethernet (составляющий львиную долю нынешних корпоративных сетей) частенько представляет собой узкое место.

Дон Лану, главный консультант по технологиям компании Digital Network Services, сказал: "Если задержка в полсекунды или даже больше может считаться нормальной для некоторых приложений, то при поддержке телефонного разговора ответ требуется мгновенный, и сеть должна "уметь разбираться в ситуации".

Приобретая инструментарий типа зондов RMON или сетевых анализаторов Hewlett-Packard, Network General и тому подобных, специалисты берут на вооружение активный подход. Они собирают информацию по сети и знают, что происходит в ней в любое время дня или месяца.

Когда прогнозирование реакции сети на новые прикладные программы станет реальностью, можно будет выполнить имитацию с использованием моделирующих инструментов типа Comnet III компании CACI Products и продуктов семейства Bones компании Systems and Network. Оба инструмента выполняют имитацию локальных и глобальных сетей. При помощи этих инструментов можно провести виртуальный контроль работы с большой загрузкой исключительно самой сети, а не баз данных.


ИНСТРУМЕНТЫ ТЕСТИРОВАНИЯ

LoadRunner Client/Server,

LoadRunner PC,

LoadRunner XL,

WinRunner,
Mercury Interactive

http://www.merc-int.com

SQA LoadTest, SQA

http://www.sqa.com

PurePerformix, Pure Software

http://www.min.com/pure

Playback LD, Compuware

http://www.compuware.com

QA Partner,

Segue Software

http://www.segue.com/home.htm

Visual Test 4.0,

Microsoft

http://www.microsoft.com/vtest.default.htm

Comnet III,

CACI Products

http://www.cacisl.com/index.html

Bones, Systems and Network

http://www.sysnet.com