Тестування продуктивності Web-додатків для мобільних пристроїв за допомогою IBM Rational Performance Tester, Різне, Програмування, статті

Введення


Зазвичай інструмент 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 для декількох поширених бездротових пристроїв:



Використання 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 ®; необхідна умова – установка наступних модулів розширення для цього браузера:


Щоб застосувати цей метод, виконайте наступні кроки.



  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
 

 
 
 
 
 
 
 

 

Використання 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.


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


Моделювання реальних сценаріїв за допомогою Rational Performance Tester


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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*