Тестування продуктивності Web-додатків для мобільних пристроїв за допомогою IBM Rational
Два способи тестування на прикладі використання WebSphere Everyplace Mobile Portal (WEMP)
Зазвичай інструмент 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
- При використанні браузера RPT за промовчанням, тобто Internet Explorer, буде створено новий проект з ім'ям SimpleProject та новим тестом для запису подій.
- Виконавши запис для прикладу Web-порталу, ми отримаємо сторінку входу до системи порталу, показану малюнку 1.
- Виконайте вхід до системи.
- Виконайте запис послідовності подій, а потім зупиніть запис, закривши вікно браузера. У прикладі на малюнку 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) , щоб змоделювати запит за протоколом Wireless Application Protocol) або запит до порталу мобільних пристроїв (рисунок 3).
Рисунок 3. Параметри скрипта TestClockWeb1a


- Щоб змінити рядок User-Agent, в заголовку запиту скрипта змініть значення для браузера Internet Explorer на значення, яке відповідає мобільному пристрою.
- Зміна рядка User-Agent можна проконтролювати на вкладціProtocol Data робочої області RPT після збереження змін (рисунок 4).
Малюнок 4. Вкладка Test Protocol Data


- Необхідно також додати параметри нових транзакцій для найважливіших сторінок, наприклад TPS (transactions per second, транзакцій в секунду).
Буде створено новий план тестування продуктивності з ім'ям testSchedule.
Примітка. У нашому прикладі ми задали для параметра think time (час на роздум) значення 2 секунди перед виконанням тесту (за замовчуванням використовується час, зафіксований у процесі запису тесту).
(У прикладі, показаному на малюнку 5, тест за планом буде виконуватися з 5 користувачами та 10 ітераціями - це відображено на вкладціGeneral.)
Рисунок 5. Параметри плану testSchedule


- Щоб дізнатися, чи надходять запити від порталу для мобільних пристроїв або від Web-порталу, використовуйте моніторинг журналів сервера порталу. Витяг з журналу, поданий у лістингу 1, показує, що це приклад WAP-запроса.
Лістинг 1. Журнал сервера порталу показує, що запит надходить від WAP-порталу
- Щоб дізнатися про тип пристрою, з якого надходить запит, перегляньте журнали. Для цього прикладу ви побачите записи, аналогічні лістингу 2.
Лістинг 2. У журналі відображено тип пристрою
Аналогічно, у разі використання іншого пристрою та відповідної зміни скрипту, журнали сервера порталу відображають характеристики цього пристрою. Як альтернативу для визначення типу пристрою, що надіслав запит, можна використовувати журнали багатоканального сервера Multi-Channel Server (MCS) (листинг 3).
Примітка. Multi-Channel Server – це компонент WEMP, який генерує специфічний контент для різних пристроїв.
Щоб увімкнути запис журналів MCS, необхідно вказати значення debug у файлі mcs-jlog.xml для властивості com.volantis.mcs .
Другий спосіб. Використання браузера Mozilla Firefox та модуля розширення для зміни заголовків Modify Headers.
У другому методі використовується браузер Mozilla Firefox; потрібна умова - встановлення наступних модулів розширення для цього браузера:
- Modify Headers
- XHTML Mobile Profile
- wmlbrowser
Щоб застосувати цей метод, виконайте такі дії.
Рисунок 6. Модуль розширення для Firefox Modify Header


Малюнок 7. Сторінка порталу Sample


Використання Rational Performance Tester із браузером Mozilla Firefox
Щоб записати сценарій та змоделювати навантаження, вкажіть ті самі значення у модулі запису HTTP у Rational Performance Tester. Під час запису для фіксації подій, що моделюють навантаження від бездротових пристроїв через Firefox, виконайте такі кроки.
- Змініть стандартний браузер для HTTP Recorder на Mozilla Firefox:
- Виберіть із меню командиWindows > Preferences > Test > HTTP Recording.
- У поліApplication виберіть значенняMozilla.
- У поліApplication path вкажіть шлях до настановного каталогу Firifox у вашій системі.
Примітка. Вікно Modify Header слід відкрити та активізувати лише після того, як Rational Performance Tester запустить браузер Firefox. Якщо вікно Modify Header активізується раніше, ніж розпочнеться запис, то буде повернуто таку помилку: "The Recording contains NO Protocol Data for any installed Test Generator." Ця помилка викликається відсутністю HTTP-трафіку, що маршрутизується через модуль запису на мережевому проксі-сервері, порту 1080 локального сервера.
- Перегляньте сторінку та виконайте дії, які потрібно включити до запису.
- Щоб зупинити записування, закрийте вікна браузера Firefox та модуля розширення Modify Headers.
Після цього модуль запису ініціює генерацію скриптаTestSample (рисунок 8). Щоб домогтися правильного обчислення часу відгуку та показника кількості транзакцій за секунду, цей скрипт необхідно змінити, додавши транзакції кожної сторінки. Цей захід допоможе розібратися у зафіксованих у процесі запису змінах продуктивності.
Запис у цьому прикладі включає перехід до першої сторінки порталу WPS, яка інакше називається сторінкою Sample. На цій сторінці знаходяться посилання на дві інші сторінки порталу для мобільних пристроїв - . svt_portlet_mobile_world_clock та svt_portlet_welcome_page . Під час запису тесту виконується навігація по цих сторінках, потім вікно браузера закривається, а модуль запису RPT автоматично генерує скрипт TestSample.
Рисунок 8. Параметри скрипта TestSample


- Виконавши описані кроки, створіть новий план тестування продуктивності під назвою testSchedule (рисунок 9). Цей план запускатиме скрипт з іншимивіртуальними користувачами для моделювання надсилання запитів із мобільних пристроїв Nokia-N70.
Примітка. Час роздумів (think time) у цьому випадку встановлено на 2 секунди (за замовчуванням використовується час, зафіксований під час запису тесту).
Рисунок 9. Новий план тестування продуктивності testSchedule


- Запустивши план тестування продуктивності, скористайтеся моніторингом журналів сервера порталу для того, щоб проконтролювати, чи дійсно запити моделюють навантаження від Nokia-N70 з очікуваним MSISDN.
У лістингу 4 наводиться приклад трасування, що підтверджує імітацію навантаження.
Лістинг 4. Приклад виведення, що підтверджує імітацію навантаження
Записаний у журналі номер MSISDN та ідентифікатор User-Agent відповідають тим значенням, які були вказані та активізовані у налаштуваннях модуля розширення Modify Headers перед записом тестового сеансу.
В якості альтернативи можна вивчити журнали багатоканального сервера MCS для інших пристроїв, як показано у лістингу 5.
Лістинг 5. Приклад підтвердження імітації шляхом вивчення журналів сервера
Порада. Щоб увімкнути запис журналів MCS, встановіть для властивості com.volantis.mcs у файлі mcs-jlog.xml значення debug .
Показники продуктивності відображають продуктивність у процесі виконання та надають значну інформацію. Ви можете вказати бажану кількість транзакцій для кожної сторінки.
Моделювання реальних сценаріїв за допомогою Rational Performance Tester
Хоча описані тут кроки описані досить докладно, щоб можна було зрозуміти, як використовувати Rational Performance Tester для тестування портлетів, вони не враховують наявністьфункції кешування. Наприклад, якщо для надсилання запитів від різних користувачів використовується один пристрій Nokia-N70, то можуть використовуватися дані з кешу MCS/WEMP. Щоб моделювати реальні сценарії та отримувати корисні результати, рекомендується використовувати функцію для роботи з пулами даних у Rational Performance Tester та вказувати для різних користувачів параметри навантаження від різних мобільних пристроїв.