SlideShare a Scribd company logo
Нагрузочное тестирование клиент-
     серверных приложений
         Алексей Якимович. IBA
Пилотный проект по нагрузочному
             тестированию Lotus Notes
Бизнес цель проекта: Нужно организовать нагрузочное тестирование
   клиент-серверного ПО на платформе Lotus Notes, чтобы понять и
   улучшить характеристики системы.
Цели пилотного проекта:
3. Понять существует ли техническая возможность проведения
   нагрузочного тестирования.
4. Создать тестовый стенд, на котором можно провести испытания
   производительности.
5. Написать программные скрипты, эмулирующие реальные действия
   пользователя и понять особенности написания скриптов для
   терминалов.
6. Провести пробное нагрузочное испытание с небольшим количеством
   виртуальных пользователей, чтобы доказать принципиальную
   возможность проведения нагрузочных испытаний для большого
   количества пользователей и понять связанные с этим проблемы.
7. Понять требования к программному и аппаратному обеспечению для
   создания тестового стенда, эмулирующего работу большого
   количества пользователей.
Проблемы нагрузочного
            тестирования клиент-серверного
                          ПО
Написание нагрузочных скриптов
  для клиент-серверных
  приложений технически и
  организационно является
  сложной задачей:
• Трафик между клиентом и
  сервером может не                        Нагрузочное ПО
  обрабатываться приложениями
  по нагрузке (например, он
  может быть зашифрован).
• Распознавание интерфейса для
  некоторых видов приложений не                 Протоколы
  возможно из за отсутствия
  библиотек распознавания.
• Обработка протоколов трафика    Клиент
                                                            Сервер

  или библиотеки распознавания
  интерфейса должна быть либо
  разработана с нуля либо
  куплена.
Терминальное ПО как решение
        проблем распознавания интерфейса
Решением проблем нагрузочного тестирования клиент-серверного ПО
 является использование терминального ПО. В этом случае интерфейс
               “стандартизируется” терминальным ПО.
Терминальный сервер Сitrix
                        XenApp

       Виртуализация приложений на стороне сервера абстрагирует
     пользовательский интерфейс от логики выполнения приложения.



                                                      Application Hub



                  ICA Протокол
ICA Клиент




                                 XenApp Server
Тестовый Стенд
     Генератор Нагрузки                     Сервер Citrix XenApp                     Сервер Lotus Domino

    IBM Rational Performance
           Tester 7.0
                               100 Мбит/с                               100 Мбит/с
                                              Lotus Notes
                                                     Lotus Notes
                                                                                     Lotus Domino     Прикладное ПО
                                                          Lotus Notes

                                                   Win Server 2008                                  Win Server2003
                                                   Citrix XenApp 5.0



Ограничения тестового стенда:
•    OC на XenApp сервере была 32х битной, что ограничило возможности
     расширения памяти. -> Для реального стенда нужна 64- битная ОС
•    Для каждого приложения Lotus Notes на сервере XenApp нужно от
     50Мb памяти.
•    Сеть была 100Мбит/с -> Для реального стенда нужна будет 1Gbit/c
     сеть.
•    Ограничение графических ресурсов генератора нагрузки. Безопасно
     запускать 20-40 пользователей на одном генераторе.
IBM Performance Tester -
             написание нагрузочных скриптов
Что показало написание нагрузочных скриптов для Сitrix:
•   Только штатный выход из приложения. Lotus - это не web приложение,
    когда браузер можно закрыть в любой момент.
•   Элементы интерфейса не распознаются, взаимодействие идет по
    координатам.
•   Распознавание и синхронизация страниц замедляют выполнение
    скрипта, но улучшают выполнение скриптов.
•   Нужно избегать использование мыши,когда это возможно.
•   Скрипты должны быть достаточно простыми и тестировать только
    определенную функциональность.
•   Отсутствие распознавания элементов интерфейса приводит к тому,
    что запись и отладка скриптов нагрузки занимает в 3-4 раза больше
    времени, чем, например, для web приложений.
IBM Performance Tester –
                 нагрузочное тестирование
Что показало показало нагрузочное тестирование Lotus:
2. Нельзя использовать синхронизацию действий виртуальных
   пользователей (rendezvous points).
3. Количество виртуальных пользователей ограничено графическими
   ресурсами компьютера. Рекомендуется записывать скрипты нагрузки
   для маленьких размеров экрана и небольшого количества цветов.
4. Из видов нагрузочного тестирования измерение времени отклика для
   различного количества виртуальных пользователей было наиболее
   востребованно и просто получить.
5. Результаты тестирования показали, что время отклика было от 1.5 до 5
   секунд, что является хорошим результатом.
Выводы
1. Виртуализация приложений с помощью терминального ПО позволяет
   проводить нагрузочное тестирование для любых клиент-серверных
   приложений.
2. Для запуска большого количества одновременно работающих клиентов
   нужно создавать высокопроизводительный тестовый стенд.
3. Поскольку нагрузочное ПО работает с интерфейсом на низком уровне,
   то существуют ограничения на создание и выполнение нагрузочных
   скриптов.
Вопросы




 ?
Контактная информация




  AliakseiYakimovich@iba.by

More Related Content

What's hot

05 Bykov Citrix Last
05 Bykov Citrix Last05 Bykov Citrix Last
05 Bykov Citrix Last
Liudmila Li
 
Системы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователейСистемы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователей
Dmitry Satin
 
Разработка сайта: особенности регионального ценообразования
Разработка сайта: особенности регионального ценообразованияРазработка сайта: особенности регионального ценообразования
Разработка сайта: особенности регионального ценообразования
"Rating Runet"
 
Инновационные технологии Softidea в системе образования, Softidea Vision 2010
Инновационные технологии Softidea в системе образования, Softidea Vision 2010Инновационные технологии Softidea в системе образования, Softidea Vision 2010
Инновационные технологии Softidea в системе образования, Softidea Vision 2010
SQALab
 
13 Webibar Seonews
13 Webibar Seonews13 Webibar Seonews
13 Webibar Seonews
guest12a03e
 
ABRACADABRA fest 2009 Moscow
ABRACADABRA fest 2009 MoscowABRACADABRA fest 2009 Moscow
ABRACADABRA fest 2009 Moscow
GoodKarma.me
 
Wyse Präsentation C Itrix S E Russian
Wyse  Präsentation  C Itrix  S E  RussianWyse  Präsentation  C Itrix  S E  Russian
Wyse Präsentation C Itrix S E Russian
Liudmila Li
 
история микропроцессоров
история микропроцессоровистория микропроцессоров
история микропроцессоров
tatianabtt
 
IBM x86 Data Center IT Optimization Strategy
IBM x86 Data Center IT Optimization StrategyIBM x86 Data Center IT Optimization Strategy
IBM x86 Data Center IT Optimization Strategy
SSA KPI
 
Questions RéPonses Uk
Questions RéPonses UkQuestions RéPonses Uk
Questions RéPonses Uk
astrelin
 
corel
corelcorel
M I B%20elements
M I B%20elementsM I B%20elements
M I B%20elements
guestc7318b
 
Sergey Ch Hp Citrix Keynote 2009
Sergey Ch Hp Citrix Keynote 2009Sergey Ch Hp Citrix Keynote 2009
Sergey Ch Hp Citrix Keynote 2009
Liudmila Li
 
бешков Lm Csv Rootconf
бешков Lm Csv Rootconfбешков Lm Csv Rootconf
бешков Lm Csv Rootconf
Liudmila Li
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
wud
 

What's hot (18)

05 Bykov Citrix Last
05 Bykov Citrix Last05 Bykov Citrix Last
05 Bykov Citrix Last
 
Xen virtualization
Xen virtualizationXen virtualization
Xen virtualization
 
Системы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователейСистемы мониторинга и аналитики поведения пользователей
Системы мониторинга и аналитики поведения пользователей
 
Разработка сайта: особенности регионального ценообразования
Разработка сайта: особенности регионального ценообразованияРазработка сайта: особенности регионального ценообразования
Разработка сайта: особенности регионального ценообразования
 
Инновационные технологии Softidea в системе образования, Softidea Vision 2010
Инновационные технологии Softidea в системе образования, Softidea Vision 2010Инновационные технологии Softidea в системе образования, Softidea Vision 2010
Инновационные технологии Softidea в системе образования, Softidea Vision 2010
 
13 Webibar Seonews
13 Webibar Seonews13 Webibar Seonews
13 Webibar Seonews
 
ABRACADABRA fest 2009 Moscow
ABRACADABRA fest 2009 MoscowABRACADABRA fest 2009 Moscow
ABRACADABRA fest 2009 Moscow
 
Wyse Präsentation C Itrix S E Russian
Wyse  Präsentation  C Itrix  S E  RussianWyse  Präsentation  C Itrix  S E  Russian
Wyse Präsentation C Itrix S E Russian
 
история микропроцессоров
история микропроцессоровистория микропроцессоров
история микропроцессоров
 
IBM x86 Data Center IT Optimization Strategy
IBM x86 Data Center IT Optimization StrategyIBM x86 Data Center IT Optimization Strategy
IBM x86 Data Center IT Optimization Strategy
 
Interface team
Interface teamInterface team
Interface team
 
Questions RéPonses Uk
Questions RéPonses UkQuestions RéPonses Uk
Questions RéPonses Uk
 
corel
corelcorel
corel
 
Sat Average
Sat AverageSat Average
Sat Average
 
M I B%20elements
M I B%20elementsM I B%20elements
M I B%20elements
 
Sergey Ch Hp Citrix Keynote 2009
Sergey Ch Hp Citrix Keynote 2009Sergey Ch Hp Citrix Keynote 2009
Sergey Ch Hp Citrix Keynote 2009
 
бешков Lm Csv Rootconf
бешков Lm Csv Rootconfбешков Lm Csv Rootconf
бешков Lm Csv Rootconf
 
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
WUD2008 - Михаил Матвеев, Данила Корнев - Использование контекстной информаци...
 

More from sef2009

технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолит
sef2009
 
риски тестирования
риски тестированияриски тестирования
риски тестирования
sef2009
 
распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Web
sef2009
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитика
sef2009
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейс
sef2009
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009
sef2009
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineering
sef2009
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisy
sef2009
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentacia
sef2009
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
sef2009
 
Sef презентация
Sef презентацияSef презентация
Sef презентация
sef2009
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4
sef2009
 
Sef 2009
Sef 2009Sef 2009
Sef 2009
sef2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsm
sef2009
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Quality
sef2009
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23
sef2009
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Framework
sef2009
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorov
sef2009
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef
sef2009
 

More from sef2009 (20)

технопарк бнту метолит
технопарк бнту метолиттехнопарк бнту метолит
технопарк бнту метолит
 
риски тестирования
риски тестированияриски тестирования
риски тестирования
 
распознавание для Web
распознавание для Webраспознавание для Web
распознавание для Web
 
персональные риски аналитика
персональные риски аналитикаперсональные риски аналитика
персональные риски аналитика
 
ксуп кейс
ксуп кейсксуп кейс
ксуп кейс
 
блинов Java Belarus 2009
блинов   Java Belarus 2009блинов   Java Belarus 2009
блинов Java Belarus 2009
 
александров обучение в сфере Software Engineering
александров   обучение в сфере Software Engineeringалександров   обучение в сфере Software Engineering
александров обучение в сфере Software Engineering
 
Sef Sivakou Tezisy
Sef Sivakou TezisySef Sivakou Tezisy
Sef Sivakou Tezisy
 
Sef Sivakou Prezentacia
Sef Sivakou PrezentaciaSef Sivakou Prezentacia
Sef Sivakou Prezentacia
 
Sef Sivakou Doklad
Sef Sivakou DokladSef Sivakou Doklad
Sef Sivakou Doklad
 
Sef презентация
Sef презентацияSef презентация
Sef презентация
 
Sef
SefSef
Sef
 
Sef Kolotygin.V4
Sef Kolotygin.V4Sef Kolotygin.V4
Sef Kolotygin.V4
 
Sef 2009
Sef 2009Sef 2009
Sef 2009
 
Sef 2009 Itsm
Sef 2009 ItsmSef 2009 Itsm
Sef 2009 Itsm
 
Alexandrov Alex Quality
Alexandrov Alex QualityAlexandrov Alex Quality
Alexandrov Alex Quality
 
Denisv Teamwork April 23
Denisv Teamwork April 23Denisv Teamwork April 23
Denisv Teamwork April 23
 
Content Migration Framework
Content Migration FrameworkContent Migration Framework
Content Migration Framework
 
25.04.09 Sidorov
25.04.09 Sidorov25.04.09 Sidorov
25.04.09 Sidorov
 
21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef21 05 2009 Grigorash Surova Sef
21 05 2009 Grigorash Surova Sef
 

якимович нагрузочное тестирование клиент серверных приложений

  • 1. Нагрузочное тестирование клиент- серверных приложений Алексей Якимович. IBA
  • 2. Пилотный проект по нагрузочному тестированию Lotus Notes Бизнес цель проекта: Нужно организовать нагрузочное тестирование клиент-серверного ПО на платформе Lotus Notes, чтобы понять и улучшить характеристики системы. Цели пилотного проекта: 3. Понять существует ли техническая возможность проведения нагрузочного тестирования. 4. Создать тестовый стенд, на котором можно провести испытания производительности. 5. Написать программные скрипты, эмулирующие реальные действия пользователя и понять особенности написания скриптов для терминалов. 6. Провести пробное нагрузочное испытание с небольшим количеством виртуальных пользователей, чтобы доказать принципиальную возможность проведения нагрузочных испытаний для большого количества пользователей и понять связанные с этим проблемы. 7. Понять требования к программному и аппаратному обеспечению для создания тестового стенда, эмулирующего работу большого количества пользователей.
  • 3. Проблемы нагрузочного тестирования клиент-серверного ПО Написание нагрузочных скриптов для клиент-серверных приложений технически и организационно является сложной задачей: • Трафик между клиентом и сервером может не Нагрузочное ПО обрабатываться приложениями по нагрузке (например, он может быть зашифрован). • Распознавание интерфейса для некоторых видов приложений не Протоколы возможно из за отсутствия библиотек распознавания. • Обработка протоколов трафика Клиент Сервер или библиотеки распознавания интерфейса должна быть либо разработана с нуля либо куплена.
  • 4. Терминальное ПО как решение проблем распознавания интерфейса Решением проблем нагрузочного тестирования клиент-серверного ПО является использование терминального ПО. В этом случае интерфейс “стандартизируется” терминальным ПО.
  • 5. Терминальный сервер Сitrix XenApp Виртуализация приложений на стороне сервера абстрагирует пользовательский интерфейс от логики выполнения приложения. Application Hub ICA Протокол ICA Клиент XenApp Server
  • 6. Тестовый Стенд Генератор Нагрузки Сервер Citrix XenApp Сервер Lotus Domino IBM Rational Performance Tester 7.0 100 Мбит/с 100 Мбит/с Lotus Notes Lotus Notes Lotus Domino Прикладное ПО Lotus Notes Win Server 2008 Win Server2003 Citrix XenApp 5.0 Ограничения тестового стенда: • OC на XenApp сервере была 32х битной, что ограничило возможности расширения памяти. -> Для реального стенда нужна 64- битная ОС • Для каждого приложения Lotus Notes на сервере XenApp нужно от 50Мb памяти. • Сеть была 100Мбит/с -> Для реального стенда нужна будет 1Gbit/c сеть. • Ограничение графических ресурсов генератора нагрузки. Безопасно запускать 20-40 пользователей на одном генераторе.
  • 7. IBM Performance Tester - написание нагрузочных скриптов Что показало написание нагрузочных скриптов для Сitrix: • Только штатный выход из приложения. Lotus - это не web приложение, когда браузер можно закрыть в любой момент. • Элементы интерфейса не распознаются, взаимодействие идет по координатам. • Распознавание и синхронизация страниц замедляют выполнение скрипта, но улучшают выполнение скриптов. • Нужно избегать использование мыши,когда это возможно. • Скрипты должны быть достаточно простыми и тестировать только определенную функциональность. • Отсутствие распознавания элементов интерфейса приводит к тому, что запись и отладка скриптов нагрузки занимает в 3-4 раза больше времени, чем, например, для web приложений.
  • 8. IBM Performance Tester – нагрузочное тестирование Что показало показало нагрузочное тестирование Lotus: 2. Нельзя использовать синхронизацию действий виртуальных пользователей (rendezvous points). 3. Количество виртуальных пользователей ограничено графическими ресурсами компьютера. Рекомендуется записывать скрипты нагрузки для маленьких размеров экрана и небольшого количества цветов. 4. Из видов нагрузочного тестирования измерение времени отклика для различного количества виртуальных пользователей было наиболее востребованно и просто получить. 5. Результаты тестирования показали, что время отклика было от 1.5 до 5 секунд, что является хорошим результатом.
  • 9. Выводы 1. Виртуализация приложений с помощью терминального ПО позволяет проводить нагрузочное тестирование для любых клиент-серверных приложений. 2. Для запуска большого количества одновременно работающих клиентов нужно создавать высокопроизводительный тестовый стенд. 3. Поскольку нагрузочное ПО работает с интерфейсом на низком уровне, то существуют ограничения на создание и выполнение нагрузочных скриптов.
  • 11. Контактная информация AliakseiYakimovich@iba.by

Editor's Notes

  1. <number>
  2. В настоящее время под понятием «терминальный сервер» понимается следующее:• Консольные сервера (Console Servers), которые часто используются для подключения к Unix-системам. Это позволяет администраторам подключаться к серверам через сеть.• Сервера сетевого доступа (Network Access Servers). Подобные системы функционируют в качестве шлюзов, предоставляя доступ к «закрытым» ресурсам. В качестве примера можно привести системы доступа в Интернет – клиент открывает браузер, сервер провайдера просит указать логин и пароль и в случае, если данные правильные, предоставляет доступ.• Сервера, использующиеся для «централизованных вычислений» (centralized computing). Существует две современные модели централизованных вычислений: в первой модели терминальный сервер обеспечивает Windows или Linux десктоп для многих пользовательских терминалов, во второй модели обычный компьютер выступает в ролитерминального сервера.Рассмотрим примеры. Широко распространенные в настоящее время системы Citrix XenApp и Windows Terminal Services позволяют обеспечить эффективную удаленную работу многих пользователей с помощью одного терминального сервера. Встроенный в Windows XP Remote Desktop позволяет удаленному пользователю запускать приложения на удаленной машине, отображая информацию на локальном компьютере, но только для одного пользователя в конкретный момент времени.Встроенный в Windows XP Remote Desktop представляет собой второй тип «серверов централизованных вычислений», т.е. позволяет удаленному пользователю запускать приложения на удаленной машине, отображая информацию на локальном компьютере, но только для одного пользователя в конкретный момент времени. Если следовать историческому определению терминала, то ни Citrix MetaFrame, ни Microsoft Terminal Services не являются терминальными системами, но возможна аналогия: Citrix Server – это по сути аналог мэйнфрема, а Citrix Client – аналог терминального устройства.
  3. XenApp сервер предоставляет доступ к приложениям через коммуникационный протокол ICA (Independent Computing Architecture), который позволяет разделить выполнение приложения и пользовательский интерфейс. Приложение выполняется на сервере и XenApp перехватывает показ интерфейса приложения и посылает эту зашифрованную информацию приложению клиента ICA, работающего на компьютере пользователя. Все пользовательские действия (работа с клавиатурой, мышью) посылаются обратно на сервер XenApp.Citrix XenApp обеспечивает возможность записи нагрузочных скриптов поскольку является промышленной и распространенной терминальной системой.Как известно, инструменты нагрузочного тестирования генерируют скрипты путем обработки «перехваченного» трафика между клиентом и сервером. В частности для ODBC-приложений скрипт будет представлять собой набор команд (lrd_open_connection, lrd_open_cursor, lrd_fetch ит.д.)1. При записи скриптов для терминальных систем инструменты нагрузочного тестирования используют совершенно другой подход – они записывают не трафик, а действия с интерфейсом приложения, т.е. скрипт будет представлять собой набор команд (ctrx_key, ctrx_mouse_click и т.д.).В некотором смысле можно считать, что терминальные нагрузочные скрипты подобны GUI-скриптам, которые используются при функциональном тестировании, однако в отличие от последних, для терминальных нагрузочных скриптов нет ограничения «в конкретный момент времени на конкретном компьютере может быть запущен только один GUI-скрипт», т.е. на одном компьютере может эмулироваться одновременная работа многих терминальных пользователей.
  4. Был создан тестовый стенд, изображенный на слайде. Генератором нагрузки была рабочая станция с установленным IBM Rational Performance Tester 7.0. В будущем, для создания большой нагрузки, можно будет использовать несколько рабочих станций с установленным Performance Tester. Возможности этого приложения позволяют создавать нагрузку с нескольких компьютеров одновременно.На сервере Citrix XenApp было установлено 10 клиентов Lotus Notes. Один клиент Lotus Notes требует от 50 Мб памяти. Соответственно, запуск, например, 500 клиентов потребует около 25 Gb оперативной памяти на Citrix сервере. На текущем Citrix сервере было установлено 4 Gb памяти. Текущая лицензия на Citrix позволяет создать серверную “ферму” из нескольких серверов, где можно установить требуемое количество Lotus клиентов. Для создания реальной нагрузки нужно будет от двух Сitrix XenApp серверов с 16Gb памяти каждый.Сервером СЭД Канцлер был выделенный компьютер с Win Server 2008 и 4Gb оперативной памяти. Тестовый стенд работал в сети с пропускной способностью 100 Мбит/с. Для моделирования реальной нагрузки весь стенд должен работать в сети с пропускной способностью 1 Гбит/с.
  5. Следует учитывать некоторые особенности и ограничения, существующие при написании нагрузочных скриптов:• При записи скрипта выход из приложения должен быть штатным!• Во время воспроизведения Citrix-скриптов часто необходимо синхронизировать действия, для того чтобы скрипты выполнялись успешно. Синхронизация представляет собой координацию действий внутри скрипта, таких как ожидание появления окон или доступности элементов интерфейса. К примеру, Вы можете добавить проверку появления нужного окна, прежде чем нажимать в нем какую-либо кнопку. Rational Performance Tester позволяет автоматически генерировать функции синхронизации, однако также существует возможность добавления этих функций вручную.• для обеспечения лучшего распознавания элементов интерфейса тестируемого приложения можно использовать так называемый Citrix Agent, который устанавливается на сервереCitrix MetaFrame и позволяет записывать дополнительную информацию об объектах Citrix- клиента, а также сохранять текст, содержащийся внутри объектов (например, в объектах типа Edit-box) в буфере.• по возможности во время записи скриптов следует использовать клавиатуру и избегать использование мыши всякий раз, когда это возможно.
  6. Следует учитывать некоторые особенности и ограничения, существующие при выполнении нагрузочного тестирования:• Нельзя синхронизировать действия пользователей (rendezvous points) в определенные моменты времени, чтобы нагрузить определенный функционал.• при записи Citrix-скриптов и их последующем воспроизведении следует помнить, что настройки Citrix-клиентов на генераторах нагрузки (Load generators) должны быть одинаковыми и соответствовать настройкам, которые были установлены на компьютере, с которого производилась запись скриптов (Desktop colors, Screen Resolution, System Font etc.); не рекомендуется изменять размеры окон либо перемещать окна во время записи скрипта.• рекомендуется, чтобы видеокарта была одинаковой на всех генераторах нагрузки и соответствовала машине, на которой записывались скрипты• существует ограничение на количество виртуальных пользователей, запускаемых на одном генераторе нагрузки, которое связано с доступными графическими ресурсами компьютера, на котором функционирует генератор нагрузки. В среднем вполне безопасно запускать 20-40 виртуальных пользователей на одном генераторе нагрузки.• для того чтобы увеличить количество виртуальных пользователей, запускаемых на одном компьютере, необходимо создавать «виртуальные генераторы нагрузки». Для создания нового виртуального генератора нагрузки необходимо открыть терминальную сессию, которая в итоге становится виртуальным генератором нагрузки. На каждом виртуальном генераторе нагрузки можно в среднем запускать от 20 до 40 виртуальных пользователей. Следует помнить, что терминальные сессии имеют только 256 цветов (это ограничение не относится к ОС Windows 2003), поэтому при использовании виртуальных генераторов нагрузки записывать скрипты следует также через терминальную сессию2. В крайнем случае, можно на машине, с которой производится запись скриптов, установить 256цветов, однако такой вариант не очень надежный и не всегда позволяет использовать возможности bitmap-синхронизации3.