Упростите процесс автоматизации тестирования mySAP при помощи IBM Rational Functional Tester

Источник: IBM Rational
Шрути Уджвал, Комал Мирчандани

Эта статья предназначена для тех пользователей IBM Rational Functional Tester, которые хотят разрабатывать сценарии автоматизации регрессионного тестирования приложений mySAP, но сталкиваются с трудностями, пытаясь обеспечить гибкость своих сценариев в отношении динамически изменяющихся значений свойств объектов, что приводит к ошибкам работы сценария. В статье приводится описание поддержки автоматизации тестирования mySAP в программе Rational Functional Tester (Version 7.0.0.2 и более поздних версий). Кроме того, в ней рассматриваются проблемы, с которыми можно встретиться в процессе автоматизации mySAP, а также некоторые советы и приемы, которые могут помочь справиться с ними.

Преимущества mySAP по сравнению с SAP

Наша статья поможет вам использовать функции IBM® Rational® Functional Tester с целью разработки сценариев автоматизации регрессионного тестирования приложений mySAP. Кроме того мы рассмотрим проблемы, с которыми можно встретиться в процессе автоматизации mySAP, а также некоторые советы и приемы, которые могут помочь справиться с ними.

mySAP, продукт немецкой компании по разработке программного обеспечения SAP, представляет собой инструмент интеграции программного обеспечения для электронной коммерции, который поставляет контент пользователям, основываясь на их роли в корпорации. В состав mySAP входит Web-портал Workplace, к которому можно обратиться через Web-браузер или мобильные устройства с выходом в Интернет. Доступ к порталу Workplace mySAP.com может обеспечиваться на основе оплаты по количеству пользователей или по количеству выполняемых транзакций. Таким образом, чтобы начать пользоваться приложением mySAP, достаточно иметь подключение к Интернету.

Предыдущие версии Rational Functional Tester обеспечивали поддержку GUI SAP, представляющего собой "толстый" клиент для работы в среде Windows. Чтобы использовать SAP, необходимо было установить клиент SAP GUI и настроить его конфигурацию, что требовало дополнительных усилий со стороны пользователя. В дальнейшем, отзывы клиентов показали, что клиентская база для mySAP гораздо шире, поскольку пользователи гораздо быстрее привыкают к работе с Интернет-приложением.

Еще одно преимущество, предоставляемое mySAP, заключается в том, что, поскольку это приложение основано на использовании Интернета, оно может быть запущено с помощью любого браузера на различных операционных системах - Microsoft® Windows® и Linux®, поддерживаемых программой Rational Functional Tester и mySAP. Этим mySAP отличается от SAP GUI, работающего только под управлением Windows. Кроме того, чтобы использовать mySAP, не нужно приобретать дополнительные программы.

Кроме всех перечисленных преимуществ, в Rational Functional Tester V7.0.0.2 и более поздних версий была добавлена поддержка записи-воспроизведения сценариев для приложений mySAP.

Необходимые условия

  • Установленная программа Rational Functional Tester V7.0.0.2 или более поздних версий;
  • Приложение mySAP, размещенное на сервере;
  • Доступ к URL mySAP через работающее подключение к Интернету;
  • Наличие регистрационных данных для аутентификации и входа в систему Web-портала mySAP.

Проблемы автоматизации приложений mySAP

Одна из самых больших проблем, с которой можно встретиться при автоматизации приложений mySAP, заключается в том, что информация об объекте (Object information) в этих приложениях является динамической и изменяется при каждом запуске mySAP в рамках нового сеанса браузера.

В противоположность этому, Rational Functional Tester для записи действий пользователя в тестируемом приложении использует жестко-связанную объектно-зависимую модель. Когда пользователь записывает сценарий, Rational Functional Tester записывает информацию об объекте и сохраняет ее в карте объектов Object Map. Карта объектов представляет собой репозиторий объектов и соответствующих им свойств. Каждому свойству объекта присваивается связанный с ним весовой коэффициент, показывающий степень важности свойства при распознавании объекта в процессе работы сценария.

Чтобы успешно воспроизводить сценарии автоматизации mySAP, необходимо нейтрализовать эту проблему.

Приемы, позволяющие справиться с проблемами автоматизации в mySAP

В этом разделе вы (как специалист по автоматизации) найдете рекомендуемые советы и приемы, которые можно использовать при настройке автоматизации в приложениях mySAP.

Совет 1. Настройка файла библиотеки объектов mySAP

В решении проблемы с динамическим изменением свойств объекта в mySAP может помочь использование еще одной новой функции Rational Functional Tester, так называемой библиотеки объектов Object Library. С помощью этой функции можно сконфигурировать свойства объекта и соответствующие им весовые коэффициенты до записи сценария. Таким образом, вы сможете выбрать, добавить или удалить свойства из имеющегося списка свойств, можно также отредактировать соответствующие свойствам весовые коэффициенты. Это гарантирует запись объектов в карту объектов в соответствии с конкретной конфигурацией, а также использование именно этого шаблона для распознавания объектов при работе сценария.

Rational Functional Tester поставляется с файлом библиотеки объектов с предварительно заданными параметрами, что упрощает решение описанной проблемы. Чтобы использовать этот файл с предварительно заданными параметрами, выполните следующие действия.

  1. Перейдите в папку:
    1. В Windows: C:\Documents and Settings\All Users\Application Data\IBM\RFT\customization;
    2. В Linux: /etc/opt/IBM/Rational/RFT/customization
      Примечание: Даже если вы установили Rational Functional Tester не в папку "по умолчанию", эти файлы в любом случае будут размещены в указанном каталоге.
  2. В папке customization переименуйте файл CustomObjectRecProp.rftop, присвоив ему, например, имя CustomObjectRecProp_Backup.rftop;
  3. В папке customization переименуйте файл CustomObjectRecProp_MySAP.rftop в CustomObjectRecProp.rftop;
  4. Конфигурационный файл библиотеки объектов mySAP с предварительно заданными параметрами в некоторой степени отслеживает динамическое изменение свойств mySAP в процессе записи-воспроизведения.
    Примечание: Если при изменении настроек файла библиотеки объектов mySAP окно IDE Rational Functional Tester было открыто, закройте и снова откройте его. Это гарантирует, что Rational Functional Tester использует для автоматизации приложений mySAP файл библиотеки объектов mySAP с предварительно заданными параметрами.

Совет 2. Изменение значений ScriptAssure

Для определения совпадения или несовпадения объектов в процессе работы Rational Functional Tester использует собственную вспомогательную технологию на основе нечеткой логики (Fuzzy Logic), которая получила название IBM® ScriptAssure™. Чтобы снизить количество предупреждений о неуверенном распознавании и ошибок для ненайденных объектов в процессе работы сценариев в приложении mySAP, выполните указанные шаги.

  1. Откройте диалоговое окно Preferences, выбрав команды Window > Preferences в меню IDE Eclipse в Rational Functional Tester или команды Tools > Options в меню IDE Visual Studio в Rational Functional Tester;
  2. Выберите команду Functional Test > Playback > ScriptAssure и нажмите кнопку Advanced;
  3. Измените следующие значения функции ScriptAssure:
    1. Установите параметр Last chance recognition score на 30000;
    2. Установите параметр Warn if accepted score is greater than на 20000.

Совет 3. Использование регулярных выражений

Регулярное выражение - это строка, которая используется для описания или сопоставления набора строк в соответствии с определенными синтаксическими правилами. Rational Functional Tester использует регулярные выражения для включения возможности сопоставления с шаблоном в различные функции, в том числе точки верификации, карты объектов, при написании вручную кода в среде Java™ или Microsoft® Visual Studio®и так далее.

Как уже упоминалось, свойства объектов, соответствующие приложению mySAP, изменяются динамически. Поэтому, чтобы избежать появления ошибок или предупреждений при работе сценариев, рекомендуется использовать в картах объектов регулярные выражения. Мы проиллюстрируем это в разделе Использование регулярных выражений в картах объектов, а пока приведем только примеры различных регулярных выражений (они перечислены в таблице 1), которые можно использовать для сопоставления свойств объектов с шаблоном.

Таблица 1. Шаблоны регулярных выражений с примерами

Шаблон Использование Пример Совпадение Несовпадение
. Обозначает любой единичный символ в строке (может быть строкой, числом или пробелом) Hello.World Hello!World
Hello World
Hello0World
HelloxxWorld
* Обозначает 0 или более повторений символов Hello*World HellWorld
HelloWorld
HellooWorld
HellooooooWorld
HelloAWorld
+ Обозначает одно или более повторений символов Hello+World HelloWorld
HellooWorld
HellooooooWorld
HellWorld
HelloAWorld
? Обозначает 0 или одно повторение символов Hello?World HellWorld
HelloWorld
Hellooworld
.* Обозначает совпадение с групповым символом и допускает любое количество различных символов Hello.*World Hello! How Are You World Hello! How Are You Wor
^ Обозначает начало строки ^From From Here to Eternity Reciting From Memory
$ Обозначает конец строки From$ Bill is From Bill is From Italy
[xX] Регулярное выражение для выполнения регистрозависимого сопоставления Используйте этот шаблон, если хотите выполнить регистронезависимое сопоставление. [sS]ensitive sensitive
Sensitive
--
[XYZ] Показывает, что можно использовать любой единичный символ из данного набора Hello[ABC] HelloA
HelloB
HelloC
Hello
HelloD
[XYZ]* Показывает, что можно использовать любое количество символов из данного набора Hello[ABC]* Hello
HelloA
HelloB
HelloC
HelloAAAAAAAAAA
HelloBBBBBBB
HelloCCCC
Hell
[^XYZ] Показывает, что любой единичный символ из данного набора не может использоваться Hello[^ABC]
HelloD HelloE
HelloA
HelloB
HelloC
[X-Z] Указывает диапазон символов в наборе для сопоставления Hello[A-C] HelloA
HelloB
HelloC

HelloD HelloE
HelloF
/ Обозначает логическое ИЛИ, допускающее выбор из двух вариантов Yes/No Yes
No
Cancel
(X/Y/Z) Групповое выражение, позволяющее выбрать значение из группы Hello (Bill/Tom/Sam) Boy Hello Bill Boy
Hello Tom Boy
Hello Sam Boy
Hello Boy
Hello Billie Boy
\d Обозначает любую цифру Hello\d Hello1
Hello2
Hello3
Hello
Hello 1
\d+ Обозначает более одной цифры Hello\d+ Hello11
Hello123
Hello
Hello 112233
\D Обозначает нецифровой символ Hello\D HelloA
HelloB
Hello1
Hello2
\s Обозначает символ пробела (один символ пробела: пробел, табуляция, новая строка или возврат каретки) Hello\sWorld Hello World HelloWorld
\S Обозначает любой символ, не являющийся пробелом Hello\SWorld Hello1World
HelloAWorld
Hello
HelloWorld
\w Обозначает любой текстовый символ (любая буква, цифра) Hello\w HelloA
Hello1
Hello
\W Обозначает любой нетекстовый символ Hello\W Hello!
Hello_
HelloWorld
Hello1World
{n} Показывает, что шаблон может повториться "n" раз Hello[1-9]{3}
Hello123 Hello246
Hello12
Hello8
Hello89

Запись сценария для приложения mySAP

Перед тестированием приложения mySAP необходимо убедиться, что браузер, в котором предполагается запустить это приложение mySAP, удовлетворяет следующим условиям: указан в списке активных сред, активирован и прошел тестирование.

Шаг 1. Активирование браузера

Чтобы активировать браузер, в котором будет запущено приложение mySAP, выполните следующие действия:

  1. Запустите мастер активации сред Enable Environments Tool, выбрав команды Configure > Enable Environments for Testing в окне Rational Functional Tester;
  2. В окне мастера Enable Environments Tool нажмите кнопку Add;
  3. В диалоговом окне Add browser перейдите к папке браузера и выберите исполняемый файл, а затем нажмите кнопку Add;
  4. Выбранный браузер будет добавлен в список доступных браузеров на вкладке Web browsers мастера Enable Environments Tool;
  5. Выделите только что добавленный браузер и нажмите кнопку Enable;
  6. По завершении активации браузера нажмите кнопку Test , чтобы выполнить тестирование браузера;
  7. Если при выполнении тестирования браузера произошла ошибка:
    1. Убедитесь в том, что среда Java™ runtime environment (JRE), указанная в списке Панели управления, ассоциирована с тестируемым браузером;
    2. Указанная среда JRE активирована на вкладке Enabled Environments > Java Environments;
    3. Затем повторите тестирование браузера.
  8. После этого Rational Functional Tester готов к записи/воспроизведению сценария в приложении mySAP в активированном браузере, как показано на рисунке 1.

Рисунок 1. Браузер Internet Explorer активирован для запуска приложения mySAP
диалоговое окно enable environments

Шаг 2. Настройка приложения mySAP

Поскольку mySAP является приложением на базе браузера, необходимо определить mySAP как HTML-приложение в Rational Functional Tester. Для настройки конфигурации приложения mySAP выполните следующие шаги:

  1. Запустите мастер настройки конфигурации приложений Application Configuration Tool, выбрав команды Configure > Configure Applications for Testing в окне Rational Functional Tester;
  2. В окне мастера Application Configuration Tool нажмите кнопку Add;
  3. Выберите HTML Application в окне Add Application, а затем нажмите кнопку Next, как показано на рисунке 2;

Рисунок 2. Окно Add Application
диалоговое окно add application

  1. Установите курсор в строку URL и введите URL сервера Web-сайта mySAP, для которого вы планируете автоматизацию;
  2. Нажмите кнопку Finish. Обратите внимание на то, что URL mySAP отображается в списке Applications инструмента Application Configuration Tool. Здесь можно указать другое имя. Для этого упражнения выделите строку mySAP Server;
  3. Чтобы указать браузер, в котором будет запущено приложение mySAP, выберите только что добавленный mySAP URL из списка Applications, а затем - один из зарегистрированных браузеров из раскрывающегося списка Browser;
  4. Нажмите кнопку Apply , чтобы сохранить внесенные изменения, как показано на рисунке 3;

Рисунок 3. Application Configuration Tool с введенным mySAP URL
диалоговое окно edit application

  1. Нажмите кнопку Finish , чтобы закрыть диалоговое окно.

Шаг 3. Запись сценария тестирования приложения mySAP

Все готово для начала записи сценария тестирования приложения mySAP.

  1. Создайте в Rational Functional Tester новый проект, выбрав из меню команды File > New > Functional Test Project;
  2. Запустите запись сценария Rational Functional Tester, нажав кнопку Record;
  3. Введите имя сценария Script name и нажмите кнопку Finish;
  4. Нажмите кнопку Start Application в окне Recording Monitor в Rational Functional Tester и выберите предварительно настроенное приложение mySAP, как показано на рисунке 4;

Рисунок 4. Окно Start Application, в котором можно выбрать предварительно настроенное приложение mySAP
диалоговое окно select an application

  1. В открывшемся окне mySAP Logon введите Идентификатор входа Login Id и пароль. Затем нажмите кнопку Logon , как показано на рисунке 5;

Рисунок 5. Введите учетные данные для входа в mySAP
окно входа

Примечание: HTML-приложения используют "модель запрос/ответ", и после передачи запроса Web-страница обновляется. Интерпретация ответа браузером занимает несколько секунд. Следовательно, во избежание проблем с синхронизацией, мы настоятельно рекомендуем использовать API <Object Name>.waitForExistance() во всех случаях, в которых предполагается, что Rational Functional Tester будет ожидать отображения ответа в тестируемом приложении.

  1. После входа в mySAP нажмите кнопку Start SAP Easy Access для загрузки содержимого приложения mySAP;
  2. Для данной демонстрации выберите из меню команды SAP > Office > Notification > Create > Simplified View, как показано на рисунке 6;

Рисунок 6. Выбор команд из меню SAP
дерево каталогов SAP

  1. После открытия страницы Create Notification введите значения в поля Coding, Description и Description Text, как показано на рисунке 7;

Рисунок 7. Ввод значений на странице Create Notification
диалоговое окно create notification

  1. Нажмите кнопку Cancel , чтобы отменить создание нового уведомления;
  2. На следующей странице нажмите кнопку No , чтобы отменить сохранение данных уведомления;
  3. После того, как вы окажетесь на домашней странице mySAP; нажмите кнопку Log Off для выхода из приложения mySAP;
  4. В открывшемся окне Log Off, показанном на рисунке 8, вам будет предложено подтвердить выход из приложения;

Рисунок 8. Подтверждение выхода из приложения
окно выхода

  1. Нажмите кнопку Yes , чтобы выйти из приложения mySAP;
  2. Закройте окно браузера приложения mySAP, нажав кнопку Close браузера. На этом сценарий тестирования завершен. После нажатия кнопки Stop в окне Recording Monitor будет сгенерирован сценарий, отражающий все действия, которые были выполнены с приложением mySAP (см. рисунок 9).

Рисунок 9. Пример вывода сценария
вывод сценария

Шаг 4. Использование регулярных выражений в картах объектов

Если воспроизвести сценарий тестирования, записанный для приложения mySAP, без каких-либо изменений, то существует большая вероятность того, что он будет работать очень медленно или завершится обработкой исключительной ситуации ObjectNotFoundException. Как уже говорилось ранее, это происходит из-за динамичного характера приложения mySAP. При каждом запуске приложения mySAP в окне браузера свойствам объектов этого приложения присваивается уникальный идентификатор сеанса Unique Session ID.

Для решения этой проблемы мы рекомендуем использовать в картах объектов регулярные выражения. Для этого выполните следующие шаги:

  1. Обратите внимание на то, что в окне IDE Rational Functional Tester список тестовых объектов, сохраненных в процессе записи, будет показан в окне обозревателя сценариев Script Explorer, которое изображено на рисунке 10;

Рисунок 10. Тестовые объекты в окне Script Explorer
дерево каталогов script explorer

  1. Дважды нажмите мышью объект Private Test Object Map в секции Test Objects , чтобы запустить редактор объектных карт Object Map Editor для выделенного сценария, как показано на рисунке 11;

Рисунок 11. Object Map editor с иерархией тестового объекта
частная карта тестового объекта

  1. Обратите внимание на то, что на рисунке 11 свойство .id выделенного объекта представляет собой динамическое числовое значение, которое изменяется при каждом запуске mySAP;
  2. Чтобы решить эту проблему, можно выбрать обновление таких динамических значений с помощью регулярного выражения сопоставления с шаблоном. Для этого нажмите правой кнопкой мыши на значении .id и выберите команду Convert Value to Regular Expression (Преобразовать значение в регулярное выражение), как показано на рисунке 12;

Рисунок 12. Преобразование динамического значения в регулярное выражение
контекстное меню с опциями преобразования

  1. После преобразования значения в регулярное выражение мы видим, что в начале значения было добавлено "xy" , показывающее, что теперь оно будет действовать как значение сопоставления с шаблоном;
  2. Далее, чтобы реально заменить значение сопоставлением с шаблоном, сначала выделите это значение (в данном случае 913392, как показано на рисунке 12), а затем нажмите правой кнопкой мыши на выделенном значении (рисунок 13);

Рисунок 13. Замена динамического значения сопоставлением с шаблоном
контекстное меню с опциями регулярных выражений

  1. Чтобы выполнить сопоставление с шаблоном для числового значения, выберите опцию \d, а затем опцию + . Это гарантирует, что регулярное выражение выявит все совпадения с шаблоном для одной или более цифр, которые будут появляться в приложении mySAP в процессе работы сценария, как показано на рисунке 14. Дополнительные шаблоны можно найти в таблице 1;

Рисунок 14. Регулярное выражение, выявляющее совпадения для одной или более цифр
частная карта тестового объекта, отображающая свойство после преобразования

  1. Те же действия можно повторить для всех свойств объекта (в том числе, для родительской иерархии), значения которых изменяются динамически.

Воспроизведение (работа) сценария тестирования mySAP

После того как вы примените к своему сценарию все действия, описанные в данной статье, в том числе, советы и приемы, он будет более гибким в отношении любых изменений приложения и сможет справиться с постоянными изменениями значений свойств объектов. Таким образом, динамический характер mySAP не будет препятствовать успешной работе сценариев тестирования mySAP.


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