Использование условной логики и внешних динамических библиотек для автоматического тестирования информационных систем средствами Rational Robot   

   

Программный продукт IBM Rational Robot позволяет проводить нагрузочное тестирование корпоративных информационных систем, имитируя при этом последовательные типовые действия пользователей. Для более усложненных тестовых скриптов, в которых необходимо применение условной логики, Rational Robot использует механизм контрольных точек , далее КТ (Verification Point) и буфер обмена. С помощью КТ Rational Robot проверяет соответствие информации (свойства, параметры) об эталонном объекте и о текущем тестируемом объекте. Если оно найдено, то происходит разветвление, то есть после выполнения условия процесс может продолжить выполнение по одной из альтернативных схем.

Для примера условной логики на основе КТ возьмем часть рабочего тестового скрипта, а в качестве КТ возьмем объект WindowVP:

Как видно из примера, КТ проверяет факт наличия окна со следующим заголовком: «Запуск 1С:Предприятия», параметр Wait задает интервал времени, в течение которого происходит поиск нужного окна (Time out) и частота вызова процедуры поиска и течении этого интервала, в нашем случае 15 и 2 секунды соответственно. Если окно найдено, то параметр, возвращаемый КТ равен 1, если нет, то 0. Далее происходит проверка этого условия и переход на нужную «ветвь» программы.

Аналогичным образом задаются КТ для других объектов, например для Checkbox – CheckboxVP, DateTime - DateTimeVP и т.д. Существует также возможность получения текущего значения свойства объекта с помощью функции SQAGetProperty и построение условия в соответствие с полученным значением.

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

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

Рассмотренные выше способы проектирования тестов с условной логикой реализуются средствами IBM Rational Robot, однако их использование без участия тестировщика крайне проблематично. Из-за особенностей архитектуры Rational Robot, при потере фокуса на элементы формы, мы не можем ввести в них определенные значения, осуществить необходимые действия (например, нажатие кнопки) и т.д. Учитывая, что с точки зрения безопасности, необходима блокировка компьютера при отсутствие пользователя даже при запущенном тесте, требуется использовать дополнительные возможности IBM Rational Robot для полностью автоматического тестирования.

Для решения этой проблемы необходима разработка дополнительной динамической библиотеки, функции и процедуры которой будут работать с элементами управления на уровне API – функций, использовать их в IBM Rational Robot.

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

Вот некоторые функции, используемые для работы с различными элементами управления:
DECLARE FUNCTION ReturnHandle Lib "c:APIControl.dll" (ByVal ClassParentHandle as long,ByVal ClassName as String,ByVal ClassText as String,ByVal Wait as long) as long – функция возвращает идентификатор элемента управления, который соответствует заданным параметрам. ClassParentHandle – идентификатор формы, где расположен требуемый элемент управления. ClassName – имя класса элемента управления, ClassText – текст, который содержит элемент управления, Wait – время поиска элемента управления (Time out).

Аналогично этой функции, существует ряд ее разновидностей:
DECLARE FUNCTION ReturnHandlePos Lib "c:APIControl.dll" (ByVal ClassParentName as long,ByVal ClassName as String,ByVal CLeft as long,ByVal CTop as long,ByVal Error_ as long,ByVal Wait as long) as long – если на форме много элементов одного и того же класса, они не содержат текста, тогда единственным вариантом идентификации элемента – его расположение на форме (Position).

DECLARE FUNCTION ReturnHandMenu Lib "c:APIControl.dll" (ByVal MainHandle as long,ByVal pos1 as long, ByVal pos2 as long,ByVal pos3 as long) as long – функция для работы с меню.

Ниже приведен фрагмент тестового скрипта с использованием функций внешней динамической библиотеки:

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

Автор статьи: Павел Баркетов

 


 

Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта http://www.softpoint.ru возможны только с письменного разрешения компании «SoftPoint». Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации «Об авторском праве и смежных правах»).

Статья: Использование условной логики и внешних динамических библиотек для автоматического тестирования информационных систем средствами Rational Robot

Перейти на главную страницу компании "Софтпоинт"