Перейти к содержимому

Фотография

Схема проведения нагрузочного тестирования


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 areconster

areconster

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 23 мая 2007 - 12:45

Есть следующая проблема:

на сервере БД работает приложение (толстый клиент), записывающее данные в базу, которое необходимо для регистрации определенных событий. Там же работает терминальный сервер Citrix, на который логинятся ежедневно более 100 пользователей и регистрируют события с помощью этого клиента. Поток операций известен. Как организовать нагрузочное тестирование в этом случае?
  • 0

#2 JimR

JimR

    Опытный участник

  • Members
  • PipPipPipPip
  • 253 сообщений
  • ФИО:Ручко Дмитрий Иванович
  • Город:Москва

Отправлено 23 мая 2007 - 14:34

Не понял, а в чем вопрос?
Вам неясно как проводить нагрузочное тестирование или в каком-то конкретном месте непонятки?

Может быть тогда Вы опишите то, как собирались организовывать нагрузочное тестирование, когда Вам поставили эту задачу. А потом укажете - какой именно момент вызывает затруднение?
  • 0
Дмитрий Ручко
InfoTeCS

#3 a66at

a66at

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Victor Ichalov

Отправлено 23 мая 2007 - 17:30

Есть следующая проблема

Просмотр сообщения

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

#4 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 23 мая 2007 - 21:03

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

А чем родной Citrix клиент с пользовательским вводом не подходит что надо делать какой-то кастомный?
  • 0
Дмитрий Шевченко

HP Software

#5 a66at

a66at

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Victor Ichalov

Отправлено 24 мая 2007 - 08:20

А чем родной Citrix клиент с пользовательским вводом не подходит что надо делать какой-то кастомный?

Просмотр сообщения

Я полагаю, приемлемость этого варианта уже была рассмотрена, до того как задать вопрос.
  • 0

#6 areconster

areconster

    Новый участник

  • Members
  • Pip
  • 16 сообщений

Отправлено 24 мая 2007 - 09:21

Планировалось организовывать тестирование так:

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

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

Можно также запускать с одной машинки скрипты под разными пользователями, но это тоже не будет адекватно моделировать ситуацию.
  • 0

#7 a66at

a66at

    Постоянный участник

  • Members
  • PipPipPip
  • 184 сообщений
  • ФИО:Victor Ichalov

Отправлено 24 мая 2007 - 10:12

Citrix-клиентом логинимся на сервер, там запускается тестовый скрипт

Просмотр сообщения

А для Вас точно приемлемо использовать для нагрузочного тестирования скрипты написанные в стиле функциональных? Ну там, нажать мышкой туда, подождать появления формы с таким-то названием и т.п.
В этом случае в LoadRunner и правда есть другое принципиальное решение на которое намекает Dmitry_NJ, которое заключается в том, чтобы снять траффик между терминальным сервером и клиентом и выразить его через API к протоколу который используется при этом обмене. Соответственно, скрипты получившиеся таким образом проигрываются на нагрузочноых станциях и моделируют действия на входе терминального сервера.
  • 0

#8 SALar

SALar

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 2 298 сообщений
  • Город:Москва


Отправлено 24 мая 2007 - 15:32

Есть следующая проблема:

на сервере БД работает приложение (толстый клиент), записывающее данные в базу, которое необходимо для регистрации определенных событий. Там же работает терминальный сервер Citrix, на который логинятся ежедневно более 100 пользователей и регистрируют события с помощью этого клиента. Поток операций известен. Как организовать нагрузочное тестирование в этом случае?

Просмотр сообщения

На ваш вопрос было очень неплохо отвечено Михаилом Воротягиным ("Аплана") буквально во вторник. Он говорил, что этот форум читает, но пишет редко. Но мало ли. Михаил, у вас прекрасная возможность ответить.
  • 0

-- 

Сергей Мартыненко

Блог 255 ступеней (байки для оруженосца)

facebook (Дети диаграммы Ганта)

ВебПосиделки клуба имени Френсиса Бэкона 

 


#9 Buger

Buger

    Новый участник

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Михаил

Отправлено 24 мая 2007 - 21:16

Здраствуйте Сергей и areconster!
Приятно встретить человека в сети с кем довелось общаться лично)

Попытаюсь рассказать об общем подходе нагрузочного тестирования терминальных систем в частности на основе 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 гостей, 0 анонимных