Тестирование производительности Web-приложений для мобильных устройств при помощи IBM Rational Performance Tester

Два способа тестирования на примере использования WebSphere Everyplace Mobile Portal (WEMP)

В этой статье рассказывается о двух различных способах настройки IBM® Rational® Performance Tester для записи и генерации запросов, имитирующих нагрузку от беспроводных или мобильных устройств. Кроме того, авторы рассматривают проблемы, связанные с этими подходоми, а также предлагают изучить эффективные методы реализации такой настройки. Эти методы построены на успешном опыте одного из крупных операторов связи и могут использоваться в качестве модели для тестирования производительности Web-приложений для мобильных устройств.

Джигар Н. Капаси, разработчик архитектуры ПО, IBM  

Джигар Капаси (Jigar Kapasi) является разработчиком архитектуры ПО и консультантом в подразделении IBM India Software Lab и работает в группе High Performance On Demand Solutions (HiPODS). В настоящее время он возглавляет рабочую группу, которая работает над комплексом инструментов обеспечения производительности сервисной платформы Service Delivery Platform для компании Bharti Telecom. В последнее время предоставляет консультации по вопросам повышения производительности в области архитектуры, тестирования, отладки и использования инструментария отдельным заказчикам. Джигар уже 10 лет (более 9 из них в IBM) работает в этой сфере; кроме того, он занимался разработкой инструментов автоматизации тестирования, Web-разработкой и разработкой решений MQSeries L3 Service. Он имеет ученую степень бакалавра наук по вычислительной технике от университета города Бангалор.



Ракеш Даш, разработчик системного ПО, IBM

Ракеш Кумар Даш (Rakesh Kumar Dash) является разработчиком системного ПО в центре технологий Java компании IBM. Его деятельность связана, преимущественно, с разработкой протокола RMI (Remote Method Invocation - средство для создания объектов, допускающих вызов своих методов из другой виртуальной Java -машины) и посредника запросов к объектам (Object Request Broker - ORB). В сферу его интересов также входят сервис-ориентированная архитектура (SOA), Web-сервисы, общая архитектура брокера запросов к объектам (CORBA - Common Object Request Broker Architecture) и операционные системы.



05.08.2009

Введение

Обычно инструмент 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-портала
image of log-in screen
Рисунок 2. Страница World Clock Portal
Image of Web Portal Page

В данном примере сгенерированный скрипт получил имя 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
image of test element details
  1. Чтобы изменить строку User-Agent, в заголовке запроса скрипта измените значение для браузера Internet Explorer на значение, соответствующее мобильному устройству.

SonyEricssonP900/R102

  1. Изменение строки User-Agent можно проконтролировать на вкладке Protocol Data рабочей области RPT после сохранения изменений (рисунок 4).
Рисунок 4. Вкладка Test Protocol Data
image of workspace
  1. Необходимо также добавить параметры новых транзакций для наиболее важных страниц, например, TPS (transactions per second, транзакций в секунду).

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

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

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

Рисунок 5. Параметры плана testSchedule
image of workspace
  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
image of workspace

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

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

Использование 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
image of workspace
  1. Выполнив описанные шаги, создайте новый план тестирования производительности с именем testSchedule (рисунок 9). Этот план будет запускать скрипт с другими виртуальными пользователями для моделирования отправки запросов с мобильных устройств Nokia-N70.

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

Рисунок 9. Новый план тестирования производительности testSchedule
image of workspace
  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.

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

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

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

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational, SOA и web-сервисы
ArticleID=418376
ArticleTitle=Тестирование производительности Web-приложений для мобильных устройств при помощи IBM Rational Performance Tester
publish-date=08052009