Шрути Уджвал, Комал Мирчандани
Эта статья предназначена для тех пользователей IBM Rational Functional Tester, которые хотят разрабатывать сценарии автоматизации регрессионного тестирования приложений mySAP, но сталкиваются с трудностями, пытаясь обеспечить гибкость своих сценариев в отношении динамически изменяющихся значений свойств объектов, что приводит к ошибкам работы сценария. В статье приводится описание поддержки автоматизации тестирования mySAP в программе Rational Functional Tester (Version 7.0.0.2 и более поздних версий). Кроме того, в ней рассматриваются проблемы, с которыми можно встретиться в процессе автоматизации mySAP, а также некоторые советы и приемы, которые могут помочь справиться с ними.
Наша статья поможет вам использовать функции 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, заключается в том, что информация об объекте (Object information) в этих приложениях является динамической и изменяется при каждом запуске mySAP в рамках нового сеанса браузера.
В противоположность этому, Rational Functional Tester для записи действий пользователя в тестируемом приложении использует жестко-связанную объектно-зависимую модель. Когда пользователь записывает сценарий, Rational Functional Tester записывает информацию об объекте и сохраняет ее в карте объектов Object Map. Карта объектов представляет собой репозиторий объектов и соответствующих им свойств. Каждому свойству объекта присваивается связанный с ним весовой коэффициент, показывающий степень важности свойства при распознавании объекта в процессе работы сценария.
Чтобы успешно воспроизводить сценарии автоматизации mySAP, необходимо нейтрализовать эту проблему.
В этом разделе вы (как специалист по автоматизации) найдете рекомендуемые советы и приемы, которые можно использовать при настройке автоматизации в приложениях mySAP.
Совет 1. Настройка файла библиотеки объектов mySAP
В решении проблемы с динамическим изменением свойств объекта в mySAP может помочь использование еще одной новой функции Rational Functional Tester, так называемой библиотеки объектов Object Library. С помощью этой функции можно сконфигурировать свойства объекта и соответствующие им весовые коэффициенты до записи сценария. Таким образом, вы сможете выбрать, добавить или удалить свойства из имеющегося списка свойств, можно также отредактировать соответствующие свойствам весовые коэффициенты. Это гарантирует запись объектов в карту объектов в соответствии с конкретной конфигурацией, а также использование именно этого шаблона для распознавания объектов при работе сценария.
Rational Functional Tester поставляется с файлом библиотеки объектов с предварительно заданными параметрами, что упрощает решение описанной проблемы. Чтобы использовать этот файл с предварительно заданными параметрами, выполните следующие действия.
- Перейдите в папку:
- В Windows:
C:\Documents and Settings\All Users\Application Data\IBM\RFT\customization
;
- В Linux:
/etc/opt/IBM/Rational/RFT/customization
Примечание: Даже если вы установили Rational Functional Tester не в папку "по умолчанию", эти файлы в любом случае будут размещены в указанном каталоге.
- В папке customization переименуйте файл
CustomObjectRecProp.rftop
, присвоив ему, например, имя CustomObjectRecProp_Backup.rftop
;
- В папке customization переименуйте файл
CustomObjectRecProp_MySAP.rftop
в CustomObjectRecProp.rftop
;
- Конфигурационный файл библиотеки объектов mySAP с предварительно заданными параметрами в некоторой степени отслеживает динамическое изменение свойств mySAP в процессе записи-воспроизведения.
Примечание: Если при изменении настроек файла библиотеки объектов mySAP окно IDE Rational Functional Tester было открыто, закройте и снова откройте его. Это гарантирует, что Rational Functional Tester использует для автоматизации приложений mySAP файл библиотеки объектов mySAP с предварительно заданными параметрами.
Совет 2. Изменение значений ScriptAssure
Для определения совпадения или несовпадения объектов в процессе работы Rational Functional Tester использует собственную вспомогательную технологию на основе нечеткой логики (Fuzzy Logic), которая получила название IBM® ScriptAssure™. Чтобы снизить количество предупреждений о неуверенном распознавании и ошибок для ненайденных объектов в процессе работы сценариев в приложении mySAP, выполните указанные шаги.
- Откройте диалоговое окно Preferences, выбрав команды Window > Preferences в меню IDE Eclipse в Rational Functional Tester или команды Tools > Options в меню IDE Visual Studio в Rational Functional Tester;
- Выберите команду Functional Test > Playback > ScriptAssure и нажмите кнопку Advanced;
- Измените следующие значения функции ScriptAssure:
- Установите параметр Last chance recognition score на
30000
;
- Установите параметр 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, выполните следующие действия:
- Запустите мастер активации сред Enable Environments Tool, выбрав команды Configure > Enable Environments for Testing в окне Rational Functional Tester;
- В окне мастера Enable Environments Tool нажмите кнопку Add;
- В диалоговом окне Add browser перейдите к папке браузера и выберите исполняемый файл, а затем нажмите кнопку Add;
- Выбранный браузер будет добавлен в список доступных браузеров на вкладке Web browsers мастера Enable Environments Tool;
- Выделите только что добавленный браузер и нажмите кнопку Enable;
- По завершении активации браузера нажмите кнопку Test , чтобы выполнить тестирование браузера;
- Если при выполнении тестирования браузера произошла ошибка:
- Убедитесь в том, что среда Java™ runtime environment (JRE), указанная в списке Панели управления, ассоциирована с тестируемым браузером;
- Указанная среда JRE активирована на вкладке Enabled Environments > Java Environments;
- Затем повторите тестирование браузера.
- После этого Rational Functional Tester готов к записи/воспроизведению сценария в приложении mySAP в активированном браузере, как показано на рисунке 1.
Рисунок 1. Браузер Internet Explorer активирован для запуска приложения mySAP
Шаг 2. Настройка приложения mySAP
Поскольку mySAP является приложением на базе браузера, необходимо определить mySAP как HTML-приложение в Rational Functional Tester. Для настройки конфигурации приложения mySAP выполните следующие шаги:
- Запустите мастер настройки конфигурации приложений Application Configuration Tool, выбрав команды Configure > Configure Applications for Testing в окне Rational Functional Tester;
- В окне мастера Application Configuration Tool нажмите кнопку Add;
- Выберите HTML Application в окне Add Application, а затем нажмите кнопку Next, как показано на рисунке 2;
Рисунок 2. Окно Add Application
- Установите курсор в строку URL и введите URL сервера Web-сайта mySAP, для которого вы планируете автоматизацию;
- Нажмите кнопку Finish. Обратите внимание на то, что URL mySAP отображается в списке Applications инструмента Application Configuration Tool. Здесь можно указать другое имя. Для этого упражнения выделите строку mySAP Server;
- Чтобы указать браузер, в котором будет запущено приложение mySAP, выберите только что добавленный mySAP URL из списка Applications, а затем - один из зарегистрированных браузеров из раскрывающегося списка Browser;
- Нажмите кнопку Apply , чтобы сохранить внесенные изменения, как показано на рисунке 3;
Рисунок 3. Application Configuration Tool с введенным mySAP URL
- Нажмите кнопку Finish , чтобы закрыть диалоговое окно.
Шаг 3. Запись сценария тестирования приложения mySAP
Все готово для начала записи сценария тестирования приложения mySAP.
- Создайте в Rational Functional Tester новый проект, выбрав из меню команды File > New > Functional Test Project;
- Запустите запись сценария Rational Functional Tester, нажав кнопку Record;
- Введите имя сценария Script name и нажмите кнопку Finish;
- Нажмите кнопку Start Application в окне Recording Monitor в Rational Functional Tester и выберите предварительно настроенное приложение mySAP, как показано на рисунке 4;
Рисунок 4. Окно Start Application, в котором можно выбрать предварительно настроенное приложение mySAP
- В открывшемся окне mySAP Logon введите Идентификатор входа Login Id и пароль. Затем нажмите кнопку Logon , как показано на рисунке 5;
Рисунок 5. Введите учетные данные для входа в mySAP
Примечание: HTML-приложения используют "модель запрос/ответ", и после передачи запроса Web-страница обновляется. Интерпретация ответа браузером занимает несколько секунд. Следовательно, во избежание проблем с синхронизацией, мы настоятельно рекомендуем использовать API <Object Name>.waitForExistance()
во всех случаях, в которых предполагается, что Rational Functional Tester будет ожидать отображения ответа в тестируемом приложении.
- После входа в mySAP нажмите кнопку Start SAP Easy Access для загрузки содержимого приложения mySAP;
- Для данной демонстрации выберите из меню команды SAP > Office > Notification > Create > Simplified View, как показано на рисунке 6;
Рисунок 6. Выбор команд из меню SAP
- После открытия страницы Create Notification введите значения в поля Coding, Description и Description Text, как показано на рисунке 7;
Рисунок 7. Ввод значений на странице Create Notification
- Нажмите кнопку Cancel , чтобы отменить создание нового уведомления;
- На следующей странице нажмите кнопку No , чтобы отменить сохранение данных уведомления;
- После того, как вы окажетесь на домашней странице mySAP; нажмите кнопку Log Off для выхода из приложения mySAP;
- В открывшемся окне Log Off, показанном на рисунке 8, вам будет предложено подтвердить выход из приложения;
Рисунок 8. Подтверждение выхода из приложения
- Нажмите кнопку Yes , чтобы выйти из приложения mySAP;
- Закройте окно браузера приложения mySAP, нажав кнопку Close браузера. На этом сценарий тестирования завершен. После нажатия кнопки Stop в окне Recording Monitor будет сгенерирован сценарий, отражающий все действия, которые были выполнены с приложением mySAP (см. рисунок 9).
Рисунок 9. Пример вывода сценария
Шаг 4. Использование регулярных выражений в картах объектов
Если воспроизвести сценарий тестирования, записанный для приложения mySAP, без каких-либо изменений, то существует большая вероятность того, что он будет работать очень медленно или завершится обработкой исключительной ситуации ObjectNotFoundException
. Как уже говорилось ранее, это происходит из-за динамичного характера приложения mySAP. При каждом запуске приложения mySAP в окне браузера свойствам объектов этого приложения присваивается уникальный идентификатор сеанса Unique Session ID.
Для решения этой проблемы мы рекомендуем использовать в картах объектов регулярные выражения. Для этого выполните следующие шаги:
- Обратите внимание на то, что в окне IDE Rational Functional Tester список тестовых объектов, сохраненных в процессе записи, будет показан в окне обозревателя сценариев Script Explorer, которое изображено на рисунке 10;
Рисунок 10. Тестовые объекты в окне Script Explorer
- Дважды нажмите мышью объект Private Test Object Map в секции Test Objects , чтобы запустить редактор объектных карт Object Map Editor для выделенного сценария, как показано на рисунке 11;
Рисунок 11. Object Map editor с иерархией тестового объекта
- Обратите внимание на то, что на рисунке 11 свойство
.id
выделенного объекта представляет собой динамическое числовое значение, которое изменяется при каждом запуске mySAP;
- Чтобы решить эту проблему, можно выбрать обновление таких динамических значений с помощью регулярного выражения сопоставления с шаблоном. Для этого нажмите правой кнопкой мыши на значении
.id
и выберите команду Convert Value to Regular Expression (Преобразовать значение в регулярное выражение), как показано на рисунке 12;
Рисунок 12. Преобразование динамического значения в регулярное выражение
- После преобразования значения в регулярное выражение мы видим, что в начале значения было добавлено "xy" , показывающее, что теперь оно будет действовать как значение сопоставления с шаблоном;
- Далее, чтобы реально заменить значение сопоставлением с шаблоном, сначала выделите это значение (в данном случае 913392, как показано на рисунке 12), а затем нажмите правой кнопкой мыши на выделенном значении (рисунок 13);
Рисунок 13. Замена динамического значения сопоставлением с шаблоном
- Чтобы выполнить сопоставление с шаблоном для числового значения, выберите опцию \d, а затем опцию + . Это гарантирует, что регулярное выражение выявит все совпадения с шаблоном для одной или более цифр, которые будут появляться в приложении mySAP в процессе работы сценария, как показано на рисунке 14. Дополнительные шаблоны можно найти в таблице 1;
Рисунок 14. Регулярное выражение, выявляющее совпадения для одной или более цифр
- Те же действия можно повторить для всех свойств объекта (в том числе, для родительской иерархии), значения которых изменяются динамически.
Воспроизведение (работа) сценария тестирования mySAP
После того как вы примените к своему сценарию все действия, описанные в данной статье, в том числе, советы и приемы, он будет более гибким в отношении любых изменений приложения и сможет справиться с постоянными изменениями значений свойств объектов. Таким образом, динамический характер mySAP не будет препятствовать успешной работе сценариев тестирования mySAP.