Схема проведения нагрузочного тестирования
#1
Отправлено 23 мая 2007 - 12:45
на сервере БД работает приложение (толстый клиент), записывающее данные в базу, которое необходимо для регистрации определенных событий. Там же работает терминальный сервер Citrix, на который логинятся ежедневно более 100 пользователей и регистрируют события с помощью этого клиента. Поток операций известен. Как организовать нагрузочное тестирование в этом случае?
#2
Отправлено 23 мая 2007 - 14:34
Вам неясно как проводить нагрузочное тестирование или в каком-то конкретном месте непонятки?
Может быть тогда Вы опишите то, как собирались организовывать нагрузочное тестирование, когда Вам поставили эту задачу. А потом укажете - какой именно момент вызывает затруднение?
InfoTeCS
#3
Отправлено 23 мая 2007 - 17:30
Ну если от влияния терминального сервера и клиентов отвлечься никак нельзя, то плохо Вам будет, наверное. Может быть сделать кастомную версию толстого клиента, которая по соответствующему ключу командной строки будет выполнять сразу всю операцию без пользовательского ввода и запускать её в цикле в скрипте, который запускается при логине. А уж нужное количество логинов как-нибудь организовать на нагружалках.Есть следующая проблема
#4
Отправлено 23 мая 2007 - 21:03
А чем родной Citrix клиент с пользовательским вводом не подходит что надо делать какой-то кастомный?Может быть сделать кастомную версию толстого клиента, которая по соответствующему ключу командной строки будет выполнять сразу всю операцию без пользовательского ввода и запускать её в цикле в скрипте, который запускается при логине.
#6
Отправлено 24 мая 2007 - 09:21
создается несколько виртуальных машин, с которых Citrix-клиентом логинимся на сервер, там запускается тестовый скрипт, измеряющий время отклика пользовательских форм.
Но не понятно, где писать эти скрипты, поскольку необходимо запускать несколько экземпляров среды тестирования под каждым пользователем, а это существенно будет аффектить естественность процесса.
Можно также запускать с одной машинки скрипты под разными пользователями, но это тоже не будет адекватно моделировать ситуацию.
#7
Отправлено 24 мая 2007 - 10:12
А для Вас точно приемлемо использовать для нагрузочного тестирования скрипты написанные в стиле функциональных? Ну там, нажать мышкой туда, подождать появления формы с таким-то названием и т.п.Citrix-клиентом логинимся на сервер, там запускается тестовый скрипт
В этом случае в LoadRunner и правда есть другое принципиальное решение на которое намекает Dmitry_NJ, которое заключается в том, чтобы снять траффик между терминальным сервером и клиентом и выразить его через API к протоколу который используется при этом обмене. Соответственно, скрипты получившиеся таким образом проигрываются на нагрузочноых станциях и моделируют действия на входе терминального сервера.
#8
Отправлено 24 мая 2007 - 15:32
На ваш вопрос было очень неплохо отвечено Михаилом Воротягиным ("Аплана") буквально во вторник. Он говорил, что этот форум читает, но пишет редко. Но мало ли. Михаил, у вас прекрасная возможность ответить.Есть следующая проблема:
на сервере БД работает приложение (толстый клиент), записывающее данные в базу, которое необходимо для регистрации определенных событий. Там же работает терминальный сервер Citrix, на который логинятся ежедневно более 100 пользователей и регистрируют события с помощью этого клиента. Поток операций известен. Как организовать нагрузочное тестирование в этом случае?
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#9
Отправлено 24 мая 2007 - 21:16
Приятно встретить человека в сети с кем довелось общаться лично)
Попытаюсь рассказать об общем подходе нагрузочного тестирования терминальных систем в частности на основе Citrix-сервера.
Какие из известных мне инструментов поддерживают тестирование Citrix
(может есть еще, буду рад узнать)
1 IBM Rational Perfomance tester 7.0.0.2
2 HP Mercury Load Runner 8.1 FP4
Весь вопрос в деньгах, как обычно, и в требованиях к задаче.
При нагрузочном тестировании Citrix-приложений создаются множественные аккаунты (имя пользователя и пароль в домен, либо на сервер Citrix) - по одному для каждого виртуального пользователя. Если этого не сделать, т.е. попытаться работать под одним пользователем, то второй и последующие пользователи, логинящиеся под тем же аккаунтом, который был использован первым виртуальным пользователем, будут автоматически перенаправлены в сессию, созданную этим первым пользователем. Если рассматривать эту ситуацию на реальных пользователях, то это будет означать, что если пользователь А залогинился под пользователем Б и пользователь Б после этого захотел залогиниться на Citrix-сервер, то пользователь А будет автоматически отключен от сервера.
Итог: для того чтобы иметь возможность моделировать работу X пользователей, у нас должны быть созданы X аккаунтов до начала проведения испытаний. Избежать операции подключения к терминальному серверу в ходе нагрузочного тестирования невозможно, поэтому, не имея необходимого числа аккаунтов, нет возможности проводить нагрузочное тестирование.
По этой же причине Citrix-сервер должен быть специально сконфигурирован полностью закрывать (уничтожать) сессии после того, как Citrix-клиент (виртуальный пользователь) закрыл соединение (не важно по какой причине - сам или в результате ошибки при выполнении скрипта). По умолчанию, Citrix-сервер сконфигурирован сохранять такие сессии до следующего раза, когда этот же клиент откроет новое соединение.
Второй оригинальный способ:
Создать X-копий приложения на Citrix сервере.
Таким образом, каждый пользователь работает со своей копией приложения с одним логином.Данный вариант подходит, с некоторым ограничением, для тестирования одной БД.
Надо обсудить, как это скажется на самом сервере.
Аналогична ли инициализация одной копии приложения X пользователями, варианту инициализация X-приложений одним пользователем.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных