Тестирование терминальных приложений при помощи Rational Functional Tester. Часть 3

Источник: developerworks

Читать часть 2

Давайте познакомимся с приложением, которое мы будем тестировать с помощью IBM Rational Functional Tester . Благодаря этому у вас будет шанс увидеть эмулятор терминала модуля расширения до того, как вы начнете запись скрипта.

Инструмент Rational Functional Tester Extension for Terminal-Based Applications поставляется в комплекте с встроенным эмулятором терминала. Это исключает несовместимость с эмуляторами сторонних разработчиков или риск несовместимости версий благодаря тому, что эмулятор модуля расширения плотно интегрирован в Rational Functional Tester для обеспечения надлежащей синхронизации и распознавания данных с приложением мейнфрейма. Тем не менее вы можете использовать сторонние эмуляторы для тестирования вручную, если у вас есть такое желание. Просто используйте эмулятор модуля расширения для записи скриптов, и Functional Tester будет использовать его для воспроизведения таких скриптов.

  1. Нажмите на панели инструментов кнопку Launch the Extension for Terminal-based Applications.

     Launch the Extension for Terminal-based Applications Button

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

  2. Наше приложение имитации мейнфрейма выполняется на локальном компьютере, который называется localhost. Введите в поле Host значение localhost.
  3. Эмулятор поддерживает тестирование приложений, использующих протоколы 3270, 3270 Enhanced и 5250. Эмулируемое приложение использует протокол 3270 Enhanced, поэтому в раскрывающемся меню Terminal Type выберите значение TN3270E.
  4. Нажмите кнопку Connect на панели инструментов.

     Connect to Host button

    Снимок экрана после этого шага показан на следующем рисунке.

     Application Under Test first screen

Если на экран будет выведено окно уведомления Communication Error, то, скорее всего, причина заключается в том, что не был запущен Эмулятор сервера. Вернитесь в папку HostSim и выполните двойной щелчок на файле HostSim.bat.

Если вам кажется, что эмулятор подключился, но экран остается пустым, то, скорее всего, вы пытаетесь установить подключение с использованием протокола 3270 вместо 3270E. Чтобы вернуться на страницу настройки, нажмите кнопку Disconnect.

 Disconnect button

Затем измените протокол на TN3270E и повторите попытку подключения.

Обратите внимание на два ряда кнопок по нижнему краю окна эмулятора. Это программные кнопки, которые заменяют клавиши PF и другие специальные клавиши терминала. Эти клавиши мы впоследствии будем использовать в процессе записи.


 

IBM Rational Functional Tester Переходим к тестируемому приложению

Давайте познакомимся с приложением, которое мы будем тестировать. Если вы выполнили все шаги, описанные в предыдущем разделе, то на экране должно открыться окно приветствия DEMOnet в эмуляторе терминала. Именно с этого окна мы начнем изучение приложения.

  1. Введите в окне эмулятора терминала cicsa. Вы должны увидеть, что вводимые символы появляются на экране после приглашения. Если этого не происходит, то убедитесь, что окно эмулятора терминала является активным. Cicsa - это имя сервера транзакций, который мы планируем использовать. Для вызова команды можно нажать либо клавишу Enter на клавиатуре, либо кнопку Enter в нижней части окна эмулятора.
  2. В следующем окне введите идентификатор пользователя dnet256. Дважды нажмите клавишу Tab. Теперь введите в поле password слово secret. Нажмите клавишу Enter.
  3. Мы выполнили вход в CICS. В следующем окне введите RCTD. Это идентификатор транзакции для демонстрационного приложения Share Trading. Нажмите клавишу Enter.
  4. После этого вы окажетесь в диалоговом окне Share Trading Manager - окно входа в систему В правом верхнем углу экрана должен отображаться (синим шрифтом) идентификатор окна TRADER.T001. В этом окне вы должны ввести имя пользователя и пароль для приложения Share Trading. Введите jan, нажмите клавишу Tab, а затем введите в поле password значение janpwd. Затем нажмите клавишу Enter.
  5. В следующем окне, TRADER.T002, выберите компанию, акции которой вы хотите продать. Введите число 1 для выбора команды Casey Import/Export и нажмите клавишу Enter.
  6. В следующем окне, TRADER.T003, будет выведено главное меню, содержащее команды для работы с программой. Задайте квоту в реальном времени, введя 1 и нажав Enter.
  7. В следующем окне, TRADER.T004, представлено несколько фрагментов информации. К этому окну мы будем возвращаться несколько раз, чтобы протестировать функции приложения. Обратите внимание, что у пользователя Jan нет акций этой компании. Это может послужить хорошей контрольной точкой, позволяющей убедиться, что в момент запуска тестового сценария у вас на счету нет акций этой компании. Теперь давайте вернемся в главное меню, нажав кнопку PF3 в нижней части окна эмулятора терминала.
  8. Предположим теперь, что нам нужно купить 100 акций и убедиться в правильности размещения заказа. Команда под номером 2 откроет окно, в котором вы сможете сделать именно это. Введите 2 и нажмите клавишу Enter.
  9. Теперь ввы должны увидеть окно TRADER.T005, т.е. окно для покупки акций. Введите 100 и нажмите Enter.
  10. После этого вы сразу же окажетесь в главном меню. Обратите внимание на сообщение в нижней части окна, которое подтверждает, что запрос был успешно выполнен. Вероятно, есть еще один момент, который вы хотели бы проверить - был ли запрос выполнен должным образом. Вы также захотите убедиться в том, что у вас на счету отображаются только что приобретенные акции. Вы снова можете воспользоваться окном Real-time Quote, чтобы убедиться, что количество ваших акций увеличилось. Команда главного меню под номером 1 служит для перехода в окно, в котором вы можете увидеть новую квоту, поэтому введите 1 и нажмите клавишу Enter.
  11. В этом окне обратите внимание на то, что количество акций, которыми вы теперь владеете, равно 100.
  12. Нажмите кнопку Disconnect, чтобы разорвать соединение с имитацией сервера.
  13. Все параметры подключения, которые мы использовали, можно сохранить в конфигурационном файле подключения. Благодаря этому вы не только сэкономите время на заполнение параметров настройки при каждом выполнении теста, но и получите постоянный профиль подключения, который смогут использовать все тестировщики вашей рабочей группы. Чтобы сохранить текущие настройки подключения, выберите из меню команды File > Save. Укажите имя конфигурационного файла подключения, например ShareTraderV1.conn. (Обратите внимание, что в диалоговом окне Save As расширение .conn добавляется автоматически).
  14. Закройте окно эмулятора терминала.

Мы только что протестировали функцию покупки акций нашего приложения вручную. Мы имели дело с простым сценарием, но вы должны понимать, что если бы нам потребовалось вручную перезапускать этот тест - наряду с десятками или сотнями дополнительных регрессионных тестов - после каждого изменения приложения разработчиками, мы быстро превысили бы время на создание новой сборки. Вы готовы к записи автоматизированного скрипта, который может тестировать эту же функцию за меньшее время? Тогда давайте сделаем это!

Записываем первый сценарий

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

  1. Нажмите кнопку Record a Functional Test Script на панели инструментов Functional Tester. На этой кнопке изображен красный круг.

     Record a Functional Test Script button

    В следующем диалоговом окне необходимо ввести имя записываемого скрипта. Пусть это будет Buy100SharesCasey. (Обратите внимание на то, что имена скриптов в Functional Tester фактически являются именами Java-классов. Следовательно, они должны соответствовать правилам назначения имен для Java-классов. Если вы попытаетесь нарушить эти правила, то в верхней части окна появится всплывающее окно с предупреждением.)

  2. Нажмите Finish.
  3. Окно IBM Rational Functional Tester автоматически перейдет в свернутое состояние, и начнется запись любых взаимодействий, которые мы будем выполнять. Не забывайте об этом! Все, что мы делаем, начиная с этого момента, будет записано в скрипт. Не так уж сложно удалить все ненужные взаимодействия из скрипта, но в этой первой записи постарайтесь избежать любых ненужных действий.

    IBM Rational Functional Tester в режиме записи отображает маленькую панель инструментов Recording. В процессе записи вы можете использовать многие инструменты и утилиты, имеющиеся на этой панели: Например, вы можете приостановить запись, вставить комментарии и вызовы других скриптов, а также точки верификации. В этом учебном руководстве мы не будем рассматривать все утилиты. Просто имейте в виду, что многие действия можно выполнить при помощи мастеров и диалоговых окон в процессе записи, не написав ни одной строки кода скрипта.

  4. Первое, что нужно сделать в процессе записи - это запустить эмулятор терминала и подключиться к нашей имитации мейнфрейма. Чтобы запустить эмулятор терминала, нажмите кнопку Start Application на панели инструментов Recording.

     Start Application button

  5. В раскрывающемся меню Application Name выберите Extension for Terminal Applications и нажмите кнопку OK.
  6. Поместите указатель мыши в поле Host эмулятора терминала, после чего нажмите и отпустите левую кнопку мыши. Введите "localhost" без кавычек.
  7. В комбинированном элементе управления Terminal type выберите TN3270E.
  8. Установите указатель мыши в поле Port после числа 23, нажмите и отпустите левую кнопку мыши. Дважды нажмите клавишу Backspace, чтобы стереть 23, а затем снова введите 23. (Сейчас это может показаться странным, но позже вы поймете, почему мы так сделали.)
  9. Нажмите кнопку Connect на панели инструментов.
  10. Введите cicsa и нажмите Enter.
  11. Введите идентификатор пользователя dnet256. Дважды нажмите клавишу Tab. Теперь введите в поле password слово secret. Нажмите клавишу Enter.
  12. Введите RCTD и нажмите Enter.
  13. Введите jan, нажмите клавишу Tab, а затем введите в поле password janpwd. Нажмите клавишу Enter.
  14. Здесь будет полезно вставить в записываемый скрипт комментарий. Комментарии не влияют на воспроизведение скрипта, но могут значительно улучшить его удобочитаемость. Скрипты для терминалов иногда могут быть более сложными для чтения из-за того, что слишком многие взаимодействия осуществляются с использованием клавиатуры. Нажмите кнопку Insert Script Support Commands на панели инструментов Recording. Перейдите на вкладку Comment и введите комментарий Company Selection Screen. Этот комментарий объясняет, что вы собираетесь сделать в этой точке скрипта. Нажмите кнопку Insert Code, а затем нажмите кнопку Close в диалоговом окне Exit the Script Support Functions.
  15. Нажмите клавишу Alt, чтобы перейти в окно эмулятора терминала. Введите число 1 для выбора команды Casey Import/Export и нажмите клавишу Enter.
  16. Введите 1 и нажмите Enter для запроса квоты в реальном времени.
  17. Для проверки того, что в окне Real-Time Quote не отображаются уже приобретенные акции, используйте точку верификации для информационного сообщения о состоянии (красный шрифт). Перетащите кнопку Insert Verification Point or Action Command с панели инструментов Recording на красный информационный текст в окне эмулятора терминала таким образом, чтобы в красную рамку входил только этот текст, а затем отпустите левую кнопку мыши.

     Red Status Message Highlighted

  18. Нам нужно контролировать не только текст этого сообщения, но и его свойства, например, красный цвет шрифта. В открывшемся окне выберите Perform Properties Verification Point и нажмите кнопку Next два раза подряд. Вы можете контролировать любые свойства, перечисленные в окне мастера. Обратите внимание: многие из свойств отображаются непосредственно на установки атрибутивного бита в поле 3270. Мы будем контролировать не все эти свойства, а только некоторые из них. Установите флажки напротив свойств foreground, highIntensity и text. Затем нажмите кнопку Finish.

     Properties Verification Point Wizard

  19. Теперь давайте вернемся в главное меню, нажав кнопку PF3 в нижней части окна эмулятора терминала.
  20. Теперь нам нужно купить 100 акций. Введите 2 и нажмите клавишу Enter.
  21. Введите 100 и нажмите Enter.
  22. Теперь мы должны вставить точку верификации для сообщения о состоянии, чтобы проконтролировать успешность обработки запроса. Еще раз перетащите кнопку Insert Verification Point or Action Command на информационный текст в окне эмулятора терминала. На этот раз оставьте заданное по умолчанию значение Perform Data Verification Point и нажмите кнопку Next два раза подряд.
  23. Данная точка верификации будет контролировать только данные в объекте. Но мы видим, что здесь возможны проблемы: при каждом воспроизведении скрипта номер запроса будет изменяться. Мы не можем выполнить обычное сравнение по отношению к статичному тексту. На выручку придут регулярные выражения. Регулярные выражения представляют собой шаблонные выражения на языке программирования, которые можно использовать в точках верификации, чтобы эти точки могли обрабатывать динамические данные типа идентификатора запроса. Нажмите в окне мастера кнопку Convert Value to Regular Expression. После этого замените пятизначный номер в поле data следующей строкой:

[0-9]{5}

Данное выражение означает, что вы хотите найти последовательность длиной в пять символов, причем символы в этой последовательности должны быть только цифрами. Данные должны выглядеть примерно так:

 VP data with Regular Expression

  1. Нажмите кнопку Finish, чтобы закончить настройку точки верификации.
  2. Нажмите клавишу Alt, чтобы перейти в окно эмулятора терминала. Введите 1 и нажмите клавишу Enter, чтобы получить новую квоту.
  3. Нам нужно вставить последнюю точку верификации. Это будет точка верификации данных для количества имеющихся акций. Перетащите кнопку Insert Verification Point or Action Command на количество акций, 0100.

     Shares Held Text Highlighted

  4. Дважды нажмите кнопку Next, а затем кнопку Finish, чтобы закончить установку точки верификации.
  5. Нажмите кнопку Disconnect, чтобы отключиться от имитации сервера, и закройте окно эмулятора терминала.
  6. Нажмите кнопку Stop Recording на панели инструментов Recording.

Прекрасно, а теперь проанализируем, что именно мы сделали, выполнив описанные шаги. Собственно говоря, мы просто заставили Functional Tester записать все, что мы делали в ходе ручного тестирования нашего приложения. Мы выполнили несколько дополнительных шагов, чтобы проинструктировать IBM Rational Functional Tester , какие моменты важно контролировать. Теперь у нас есть тест, который можно повторять сколько угодно раз для выполнения тех же действий, которые были выполнены вручную. В следующем разделе мы рассмотрим, какие действия Functional Tester выполняет незаметно для пользователя в ходе записи теста.


Читать часть 4


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