Тестирование Web-приложений при помощи IBM Rational Performance Tester

Источник: developerworks
Джигар Н. Капаси, разработчик архитектуры ПО, IBM Ракеш Даш, разработчик системного ПО, IBM

Введение

Обычно инструмент IBM Rational Performance Tester (RPT) используется для генерирования Web-трафика. Однако в некоторых ситуациях для того чтобы понять характеристики производительности системы, необходимо смоделировать нагрузку от беспроводных устройств. В нашей статье рассказывается о методах, позволяющих решить эту задачу путем нестандартного использования имеющихся функций RPT. Сервер WebSphere Everyplace Mobile Portal (WEMP) используется в качестве примера серверного компонента, принимающего запросы беспроводных устройств.

Первый метод. Использование стандартного браузера Microsoft Internet Explorer

В первом методе стандартный браузер Microsoft Internet Explorer используется для настройки инструмента Rational Performance Tester дляа генерации запросов беспроводных устройств к серверу портала и сбора показателей производительности. Источники запросов могут различаться по значениям параметра User-Agent. Например, для Internet Explorer значение User-Agent является следующим:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Это значение в скрипте Rational Performance Tester можно заменить на значеним, соответствующим мобильному или беспроводному устройству. Чтобы внести такие изменения, достаточно отредактировать заголовки запросов в скрипте, сгенерированном RPT. Впоследствии скрипт автоматически применит эти изменения везде, где используется строка User-Agent.

Ниже приведены значения строки User-Agent для нескольких распространенных беспроводных устройств:

  • OpenWave-OPWV-SDK UP.Browser/7.0.2.3.119 (GUI) MMP/2.0 Push/PO
  • NokiaN70-NokiaN70-1/1.0552.0.7Series60/3.0Profile/MIDP-2.0Configuration/CLDC-1.1
  • NokiaN93-NokiaN93i-1/10.0.025
  • Sony Ericssion-SonyEricssonP900/R102

Использование Rational Performance Tester с браузером Internet Explorer

  1. При использовании браузера RPT по умолчанию, т. е. Internet Explorer, будет создан новый проект с именем SimpleProject и новым тестом для записи событий.
  2. Выполнив запись для примера Web-портала, мы получим страницу входа в систему портала, показанную на рисунке 1.
  3. Выполните вход в систему.
  4. Выполните запись последовательности событий, а затем остановите запись, закрыв окно браузера. В примере на рисунке 2 показана страница портала World Clock

Рисунок 1. Страница входа в систему Web-портала
 

Рисунок 2. Страница World Clock Portal
 

 

В данном примере сгенерированный скрипт получил имя TestClockWeb1. В ходе теста должен использоваться User-Agent SonyEricssonP900/R102. Мы заменили соответствующую строку User-Agent оригинальной строкой для Internet Explorer (Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727), чтобы смоделировать запрос по протоколу WAP (Wireless Application Protocol) или запрос к порталу для мобильных устройств (рисунок 3).

Рисунок 3. Параметры скрипта TestClockWeb1a
 

 

  1. Чтобы изменить строку User-Agent, в заголовке запроса скрипта измените значение для браузера Internet Explorer на значение, соответствующее мобильному устройству.

SonyEricssonP900/R102

  1. Изменение строки User-Agent можно проконтролировать на вкладке Protocol Data рабочей области RPT после сохранения изменений (рисунок 4).

Рисунок 4. Вкладка Test Protocol Data
 

 

  1. Необходимо также добавить параметры новых транзакций для наиболее важных страниц, например, TPS (transactions per second, транзакций в секунду).

Будет создан новый план тестирования производительности с именем testSchedule.

Примечание.
В нашем примере мы задали для параметра think time (время на размышление) значение 2 секунды перед выполнением теста (по умолчанию используется время, зафиксированное в процессе записи теста).

(В примере, показанном на рисунке 5, тест по плану будет выполняться с 5 пользователями и 10 итерациями - это отражено на вкладке General.)

Рисунок 5. Параметры плана testSchedule
 

 

  1. Чтобы узнать, исходят ли запросы от портала для мобильных устройств или от Web-портала, используйте мониторинг журналов сервера портала. Выдержка из журнала, представленная в листинге 1, показывает, что это - пример WAP-запроса.

Листинг 1. Журнал сервера портала показывает, что запрос исходит от WAP-портала

                
[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null
[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O *******hdrValue*****null
[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null


[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null
[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O *******hdrValue*****null
[28.07.07 18:32:06:590 GMT+05:30]  c2cd097 SystemOut     
O WAP request Header property: x-network-info; Context msisdn: null

  1. Чтобы узнать тип устройства, от которого исходит запрос, просматривайте журналы. Для данного примера вы увидите записи, аналогичные листингу 2.

Листинг 2. В журнале отражен тип устройства

                
[28.07.07 18:31:12:691 GMT+05:30] 68f3d093 PmiRmArmWrapp I PMRM0003I:  
parent:ver=1,ip=10.5.72.57,time=1185620240612,pid=319690,reqid=8843,event=1
 - current:ver=1,ip=10.5.72.57,time=1185620240612,pid=319690,
reqid=8844,event=1 type=JDBC detail=select POLICY
 , VALUE , REVISION from VMPOLICY_VALUES where PROJECT = 
'mobile-portal' and NAME = 'SonyEricsson-P900' elapsed=22

Аналогично, в случае использования другого устройства и соответствующего изменения скрипта, в журналах сервера портала будут отражены характеристики этого устройства. В качестве альтернативы для определения типа устройства, отправившего запрос, можно использовать журналы многоканального сервера Multi-Channel Server (MCS) (листинг 3).

Примечание. Multi-Channel Server - это компонент WEMP, который генерирует специфический контент для различных устройств.

Листинг 3.

                
com.volantis.mcs.devices.DevicesHelper Servlet.Engine.Transports : 4
  User Agent is 'SonyEricsson-P900'

Чтобы включить запись журналов MCS,.необходимо задать для свойства com.volantis.mcs значение debug в файле mcs-jlog.xml.

Второй метод. Использование браузера Mozilla Firefox и модуля расширения для изменения заголовков Modify Headers.

Во втором методе используется браузер Mozilla® Firefox®; необходимое условие - установка следующих модулей расширения для этого браузера:

  • Modify Headers
  • XHTML Mobile Profile
  • wmlbrowser

Чтобы применить этот метод, выполните следующие шаги.

  1. После установки и перезапуска Firefox выберите в меню Tools команду Modify Headers.
  2. Укажите номер MSISDN и значение user agent вашего мобильного телефона. Перед вводом URL портала, который будет использоваться для моделирования нагрузки от мобильного телефона, браузер и модуль расширения должны быть запущены.

На рисунке 6 показано, что в этом примере в качестве user agent задан телефон Nokia N70.

Рисунок 6. Модуль расширения для Firefox Modify Header
 

 

После ввода URL портала вы увидите страницу портала, показанную на рисунке 7, в точности соответствующую странице, которую вы наблюдали бы при непосредственном использовании телефона Nokia N70.

Рисунок 7. Страница портала Sample
 

 
 
 
 
 
 
 

 

Использование IBM Rational Performance Tester с браузером Mozilla Firefox

Чтобы записать сценарий и смоделировать нагрузку, укажите те же значения в модуле записи HTTP в Rational Performance Tester. В ходе записи для фиксации событий, моделирующих нагрузку от беспроводных устройств через Firefox, выполните следующие шаги.

  1. Измените браузер по умолчанию для HTTP Recorder на Mozilla Firefox:
    1. Выберите из меню команды Windows > Preferences > Test > HTTP Recording.
    2. В поле Application выберите значение Mozilla.
    3. В поле Application path укажите путь к установочному каталогу Firifox в вашей системе.
  2. Создайте тестовый проект и назовите его SimpleTest.
  3. Запустите новый сеанс модуля HTTP recorder с именем TestPurchase, чтобы запустить экземпляр браузера Mozilla Firefox.
  4. Запустите модуль расширения Modify Headers, а затем введите URL портала, чтобы вывести на экран страницу портала.

Примечание.
Окно Modify Header следует открыть и активизировать только после того, как Rational Performance Tester запустит браузер Firefox. Если окно Modify Header активизируется раньше, чем начнется запись, то будет возвращена следующая ошибка: "The recording contains NO Protocol Data for any installed Test Generator." Эта ошибка вызывается отсутствием HTTP-трафика, маршрутизируемого через модуль записи на сетевом прокси-сервере, на порту 1080 локального сервера.

  1. Просмотрите страницу и выполните действия, которые необходимо включить в запись.
  2. Чтобы остановить запись, закройте окна браузера Firefox и модуля расширения Modify Headers.

После этого модуль записи инициирует генерацию скрипта TestSample (рисунок 8). Чтобы добиться правильного вычисления времени отклика и показателя числа транзакций в секунду, этот скрипт необходимо изменить, добавив транзакции для каждой страницы. Эта мера поможет разобраться в зафиксированных в процессе записи изменениях производительности.

Запись в этом примере включает переход к первой странице портала WPS, которая иначе называется страницей Sample. На этой странице находятся ссылки на две другие страницы портала для мобильных устройств - . svt_portlet_mobile_world_clock и svt_portlet_welcome_page. В процессе записи теста выполняется навигация по этим страницам, затем окно браузера закрывается, а модуль записи RPT автоматически генерирует скрипт TestSample.

Рисунок 8. Параметры скрипта TestSample
 

 

  1. Выполнив описанные шаги, создайте новый план тестирования производительности с именем testSchedule (рисунок 9). Этот план будет запускать скрипт с другими виртуальными пользователями для моделирования отправки запросов с мобильных устройств Nokia-N70.

Примечание.
Время на размышление (think time) в этом случае установлено на 2 секунды (по умолчанию используется время, зафиксированное в ходе записи теста).

Рисунок 9. Новый план тестирования производительности testSchedule
 

 

  1. Запустив план тестирования производительности, используйте мониторинг журналов сервера портала для того, чтобы проконтролировать, действительно ли запросы моделируют нагрузку от Nokia-N70 с ожидаемым MSISDN.

В листинге 4 приводится пример трассировки, подтверждающий имитацию нагрузки.

Листинг 4. Пример вывода, подтверждающего имитацию нагрузки

                
"[28.07.07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O WAP request Header property: x-network-info; Context msisdn: 9810400684
[28.07.07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O *******hdrValue*****cdp, 919810009263, oasidujho
[28.07.07 15:57:31:813 GMT+05:30] 1b90825f SystemOut     
O WAP request Header property: x-network-info; Context msisdn: 9810400684


Записанный в журнале номер MSISDN и идентификатор User-Agent соответствуют тем значениям, которые были указаны и активизированы в настройках модуля расширения Modify Headers перед записью тестового сеанса.

В качестве альтернативы можно изучить журналы многоканального сервера MCS для других устройств, как показано в листинге 5.

Листинг 5. Пример подтверждения имитации путем изучения журналов сервера

                
com.volantis.mcs.devices.DevicesHelper Servlet.Engine.Transports : 4
  User Agent is NokiaN70.


Совет.
Чтобы включить запись журналов MCS, установите для свойства com.volantis.mcs в файле mcs-jlog.xml значение debug.

Показатели производительности отражают производительность в процессе выполнения и предоставляют значимую информацию. Вы можете указать желательное число транзакций для каждой страницы.

Моделирование реальных сценариев при помощи IBM Rational Performance Tester

Хотя представленные здесь шаги описаны достаточно подробно, чтобы можно было понять, как использовать Rational Performance Tester для тестирования портлетов, они не учитывают наличие функции кэширования. Например, если для отправки запросов от разных пользователей используется одно устройство, Nokia-N70, то могут использоваться данные из кэша MCS/WEMP. Чтобы моделировать реальные сценарии и получать полезные результаты, рекомендуется использовать функцию для работы с пулами данных в Rational Performance Tester и указывать для разных пользователей параметры нагрузки от различных мобильных устройств.


Страница сайта http://www.interface.ru
Оригинал находится по адресу http://www.interface.ru/home.asp?artId=21488