Содержание


Тестирование производительности WebSphere Commerce с помощью Rational Performance Tester

Часть 3. Выявление проблем

Comments

Серия контента:

Этот контент является частью # из серии # статей: Тестирование производительности WebSphere Commerce с помощью Rational Performance Tester

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Тестирование производительности WebSphere Commerce с помощью Rational Performance Tester

Следите за выходом новых статей этой серии.

Ниже приведены рекомендации и методики диагностики ошибок в тестах Rational® Performance Tester.

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

Ссылки и подстановки

Одна из возможных причин ошибок - подстановка неправильных значений в динамические параметры запросов. Эти значения извлекаются из содержимого предыдущего ответа с помощью регулярного выражения. В Rational Performance Tester к извлеченным значениям применяется термин "ссылки". Помимо прочего, ссылки можно использовать для замены параметров, жестко закодированных в запросах.

Rational Performance Tester обеспечивает автоматическую подстановку данных, т.е. находит ссылки и выполняет подстановки без вмешательства пользователя. Однако рекомендуется контролировать ссылки и подстановки вручную. Автоматические подстановки часто используют неточные регулярные выражения, которые могут не найти ссылок для подстановок. Если ссылка не найдена, подстановки в динамические параметры запроса не выполняются, и запрос может работать неправильно.

Подстановка данных предполагает понимание того, что означают параметры запроса и чем они должны быть заменены. В Rational Performance Tester для поиска источников ссылок используется функция Test Search (поиск в тесте).

В примере, показанном на рисунке 1, для AjaxOrderProcessServiceOrderSubmit вместо записанного значения 11028 необходимо использовать динамический параметр orderId. Для поиска сгенерированного динамического параметра orderId используйте диалоговое окно Test Search. Чтобы открыть диалоговое окно Test Search, нажмите Control-H или щелкните правой кнопкой мыши на тесте и выберите Test Search... (см. рисунок 2).

Рисунок 1. Параметр orderId
Параметр orderId
Параметр orderId
Рисунок 2. Поиск orderId
Поиск orderId
Поиск orderId

Поиск значения 11028 осуществляется в HTTP Responses и в поле Content (отмеченные флажки на рисунке 2). Результаты поиска показывают, что в содержимом ответа для AjaxOrderChangeServiceItemAdd найден первый параметр orderId со значением 11028.

Рисунок 3. Параметр orderId найден
Параметр orderId найден
Параметр orderId найден

Для извлечения этого значения можно определить ссылку с регулярным выражением.

С помощью этой ссылки можно заменить значение 11028 параметра orderId в AjaxOrderProcessServiceOrderSubmit. При каждом выполнении теста эта ссылка извлекается и жестко закодированное значение 11028 заменяется.

Если в содержимом ответа для AjaxOrderChangeServiceItemAdd отсутствует параметр orderId, в тесте может произойти сбой. Сбой также может произойти, если формат строки orderId не позволяет регулярному выражению распознать ее. В этом случае необходимо настроить регулярное выражение для распознавания этого формата.

Обработка ошибок в тестах

В тестах можно указать действие, выполняемое при возникновении ошибки или некоторого непредвиденного события. Примерами могут служить таймаут, ошибка точки верификации содержимого или отсутствие параметра (например, orderId). По умолчанию сообщение об ошибке заносится в журнал, и выполнение теста продолжается. Однако в некоторых случаях тест необходимо остановить и выполнить с начала. Rational Performance Testerможет позволяет установить обработку ошибок на уровне плана, составного теста и теста в целом, а также в отдельных элементах теста. Эту установку можно настроить, перейдя на вкладку Advanced для свойств плана, составного теста, теста или элемента теста. Обработку ошибок можно настроить на любом уровне иерархии или даже на нескольких уровнях. Настройка на самом низком уровне всегда имеет приоритет. На рисунке 4 показано поведение Error Handling (обработка ошибок) по умолчанию для HTTP-теста.

Рисунок 4. Error handling
Обработка ошибок
Обработка ошибок

Например, ответ для AjaxOrderChangeServiceItemAdd должен содержать значение orderId. Если извлечь ссылку не удастся, тест должен остановить выполнение этой транзакции, поскольку последующим запросам обработки заказа необходимо значение orderId в качестве параметра.

Используя свойства ссылки orderId, укажите необходимое действие.

Рисунок 5. Изменение обработки ошибок ссылки
Изменение обработки ошибок ссылки
Изменение обработки ошибок ссылки

В зависимости от структуры теста и его местонахождения (внутри цикла или внутри транзакции) выберите вариант выхода. В нашем примере (см.рисунок 6) выбран вариант Exit loop (выход из цикла), поскольку тест находится внутри цикла.

Рисунок 6. Обработка ошибок ссылки
Обработка ошибок ссылки
Обработка ошибок ссылки

Контроль первого появления ошибок позволяет избежать вторичных и посторонних ошибок, а также упрощает выявление проблем.

Регулярные выражения

Регулярное выражение - это последовательность специальных символов, формирующая шаблон поиска. Регулярные выражения также можно использовать в точках верификации содержимого для проверки наличия строки в содержимом ответа. Чаще всего проблемы тестирования бывают вызваны неправильными или неточными регулярными выражениями, которые приводят к сбою извлечения ссылки.

Рассмотрим пример поиска на странице категории ссылки на случайную подкатегорию. В магазине Aurora starter store HTML-код подкатегорий категории Women's Apparel имеет следующий вид:

Листинг 1. HTML-код
<a id="SBN_Dresses" 
href="http://hostname/webapp/wcs/stores/servlet/en/aurorabvt/dresses">Dresses 
<div class="facetCountContainer">(39)</div></a>

<a id="SBN_Sweaters" 
href="http://hostname/webapp/wcs/stores/servlet/en/aurorabvt/sweaters">Sweaters 
<div class="facetCountContainer">(17)</div></a>

<a id="SBN_Handbags" 
href="http://hostname/webapp/wcs/stores/servlet/en/aurorabvt/handbags">Handbags 
<div class="facetCountContainer">(17)</div></a>
Рисунок 7. HTML-страница
HTML-страница
HTML-страница

Одной из подкатегорий категории Women's Apparel является /webapp/wcs/stores/servlet/en/aurorabvt/dresses. Для поиска ссылки Dresses в ссылках на подкатегории ее необходимо выделить в содержимом ответа (см. рисунок 8).

Рисунок 8. Создание ссылки
Создание ссылки
Создание ссылки

В Rational Performance Tester функция автоматической подстановки данных создает для нее свойства, показанные на рисунке 9).

Рисунок 9. Свойства ссылки
Свойства ссылки
Свойства ссылки

Она генерирует регулярное выражение "/hostname(*?)".

Символы в скобках () означают извлечение текста ссылки. Регулярное выражение извлекает /webapp/wcs/stores/servlet/en/aurorabvt/dresses, и это тринадцатое совпадение регулярного выражения.

У этого регулярного выражения есть три главные проблемы:

  • Используется жесткая кодировка hostname (имя хоста).
  • Опция Occurrence number установлена в значение 112.
  • Недостаточный размер извлекаемого текста для определения фактического URL-адреса подкатегории. Регулярное выражение может совпадать с любой строкой, начинающейся с hostname.

Регулярное выражение <a id="SBN_[^"]+" href="http://[^/]+(/[^"]+)", показанное на рисунке 10, решает эту проблему. Оно добавляет больше извлекаемого текста в левую часть ссылки. Для ссылки выбрана опция Random occurrence, означающая любую подкатегорию.

Рисунок 10. Свойства регулярного выражения
Свойства регулярного выражения
Свойства регулярного выражения

Заключение

В этой серии статей описывается использование Rational Performance Tester при написании тестов для WebSphere Commerce. Rational Performance Tester можно использовать для тестирования производительности сайтов электронной коммерции. Рассматривались следующие передовые методики:

  • Разработка модульных тестов.
  • Использование точек верификации и обработки ошибок.
  • Моделирование типичного просмотра с соблюдением правила 80/20.
  • Создание планов с использованием циклов, случайных селекторов и контейнеров транзакций.

Описаны реализация двух способов просмотра каталога и определение проблем тестирования.

Благодарности

The authors thank and acknowledge the following people from Rational Performance Tester for their review and valuable input.

  • Кент Сифкес (Kent Siefkes) - ведущий архитектор Rational Performance Tester.
  • Дон Питерс (Dawn Peters) - разработчик ПО Rational Quality and Requirements Management.

Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational, WebSphere
ArticleID=986942
ArticleTitle=Тестирование производительности WebSphere Commerce с помощью Rational Performance Tester: Часть 3. Выявление проблем
publish-date=10232014