18. Полезные объекты TestComplete

Назад: 17 Модульное тестирование Содержание Дальше: 19 Настройки TestComplete

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

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

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

Объект Sys

Sys – это объект, через который предоставляется доступ ко всем процессам. Кроме того, с помощью объекта Sys можно получить информацию о системе. Например, информация об операционной системе (Sys.OSInfo), доступ к буферу обмена (Sys.Clipboard) и всему экрану (Sys.Desktop), имя компьютера и домен/рабочую группу (Sys.HostName и Sys.DomainName). С помощью объекта Sys.OleObject можно получить доступ к любому COM-объекту.

Объект Runner

Предназначен для управления ходом выполнения скриптов непосредственно из самих скриптов. Полезные методы:  Start (запускает тесты из текущего проекта); Stop, Halt (останавливают выполнение скриптов, метод Halt позволяет при этом запостить в лог сообщение об ошибке); Pause (приостанавливает выполнение скрипта и активирует отладчик); CallMethod (запуск функции из другого модуля), CallObjectMethodAsync (позволяет запустить методы приложения асинхронно).

Особый интерес здесь представляет метод CallObjectMethodAsync, который позволяет не просто обратиться к какому-то методу тестируемого приложения, а запустить его асинхронно, т.е. запустить и продолжить выполнение скрипта, не дожидаясь окончания работы запущенного метода.

Обратите также внимание на то, что в метод CallMethod передается полное имя функции (т.е. имя в виде “имя_модуля.имя_функции”, причем это должна быть строка, например “Unit1.MyFunction”).

Объект BuiltIn

Большинство методов объекта BuiltIn считаются устаревшими и оставлены только для совместимости со скриптами, написанными в более ранних версиях TestComplete. Новые версии методов можно найти в объектах aqFile, aqConvert, aqObject и прочих.

Вот некоторые методы объекта BuiltIn, на данный момент не считающиеся устаревшими:

MessageDlg, InputBox, ShowMessage, InputQuery (позволяют отобразить на экране небольшие диалоговые окна разных типов для ввода и/или отображения информации)

ParamCount , ParamStr – возвращает количество параметров и сами параметры, переданные в TestComplete в командной строке

SendMail – позволяет отправить e-mail из скриптов

CreateVariantArray, CreateVariantArray2, CreateVariantArray3, VarArrayRedim, VarArrayHighBound, VarArrayLowBound – позволяют работать с Variant-массивами (т.е. массивами такого типа, которые используются в языке VBScript)

Остальные методы будут интересны только пользователям TestComplete версии 6 и ниже, так как в этих версиях программы еще нету объектов aqFile, aqEnvironment и т.п.

Объект Options

Это очень полезный объект, позволяющий во время работы скриптов менять некоторые настройки TestComplete и проекта, такие как используемая модель объектов в веб-приложениях, параметры изображений (формат, качество и т.п.), включение/выключение лога, переменные проекта (project variables) и пр. Пример использования объекта Options мы приводили в главе 4.1 Функциональное тестирование Web-приложений.

Объекты Project и ProjectSuite

Объекты Project и ProjectSuite предоставляют доступ к текущему проекту и набору проектов, позволяя определить их параметры (например, путь – свойство Path, имя – свойство FileName, глобальные переменные – свойство Variables и др.).

Объект aqUtils

Предоставляет различные дополнительные возможности, которых нет в других объектах, например издание звукового сигнала с помощью PC Speaker-a (метод Beep) и задержка выполнения скрипта на определенное время (Delay).

Обратите внимание, что в более ранних версиях метод Delay (который почему-то часто используется) находился в объекте BuiltIn, однако сейчас им не рекомендуется пользоваться (одна из причин – метод BuiltIn.Delay нельзя использовать при написании собственных надстроек, Extensions).

Использовать метод Delay рекомендуется только в самых крайних случаях, когда не получается обойтись методами Find, Wait и т.п. В подавляющем большинстве случаев можно обойтись без метода Delay.

Объект aqEnvironment

Предоставляет доступ для работы с плагинами TestComplete и операционной системой. Один из наиболее интересных методов этого объекта – это метод RebootAndContinue, позволяющий перезагрузить компьютер и продолжить выполнение скрипта с того самого места.

Объект aqObject

Предназначен для работы с оконными объектами (элементами управления в тестируемых приложениях).  С его помощью можно вызвать метод объекта (CallMethod), получить список всех свойств и методов объекта (GetProperties, GetMethods и т.п.), проверить, поддерживается ли какой-либо метод объектом (IsSupported) и многое другое.

Объект aqConvert

Позволяет конвертировать данные одного типа в другой (например, StrToDate, DateTimeToStr и т.п.)

Объект aqDateTime

Предоставляет методы для работы с датой и временем

Объект aqString

Содержит большое количество методов для работы со строками

Объекты для работы с файловой системой

Несколько объектов для работы с файлами различных типов, папками и дисками: aqBinaryFile, aqDriveInfo, aqFile, aqFileInfo, aqFileCertificateInfo, aqFileSystem, aqFileVersionInfo, aqFolderInfo, aqTextFile.

Назад: 17 Модульное тестирование Содержание Дальше: 19 Настройки TestComplete