1.8.28. TbtkScriptTesterObject¶
-
class
TbtkScriptTesterObject
¶ Класс, реализующий методы работы с тестируемым приложением Global.
-
RecordingOperationName
: String¶ Имя операции, куда будут отправляться новые сгенерированные строки скрипта и результаты выполнения операций, отправленных методом
TbtkScriptTesterObject.AddRecorderManualOperation
.Return type: String Входные параметры:
- Текст новой строки скрипта или результат выполнения операции.
- Имя операции чей результат вернулся. Если вызов был произведён не в результате выполнения операции, а как результат непосредственной записи пользовательских действий- пустая строка.
-
DefualtRaiseOnTimeout
: Boolean¶ Задаёт значение подставляемое по-умочанию в дефолтный параметр RaiseOnTimeout ф-й поддерживающих обработку ошибок сервера
Return type: Boolean
-
DefaultDoRaise
: Boolean¶ Задаёт значение подставляемое по-умочанию в дефолтный параметр DoRaise ф-й поддерживающих обработку ошибок сервера
Return type: Boolean
-
DefaultWaitExecTimeout
: Integer¶ Задаёт значение подставляемое по-умочанию в дефолтный параметр Timeout ф-й поддерживающих обработку ошибок сервера
Return type: Integer
-
RaiseOperationName
: String¶ Задаёт системное имя Pascal-операции обрабатывающей невыброшенные скриптовыми методам исключительные ситуации. В операцию первым параметром поступает текст исключительной ситуации, для того, чтобы можно было, например, сохранить его в лог выполнения скрипта. Операция должна принадлежать той же выборке что исполняет скрипт.
Return type: String
-
ScriptRecording
: Boolean¶ Свойство указывает, что тестируемое приложение работает в режиме записи тестового скрипта.
Return type: Boolean
-
Runned
: Boolean¶ Свойство указывает, запущено ли тестируемое приложение.
Аттрибут только для чтения
Return type: Boolean
-
AddRecorderManualOperation
(SysName, Caption: String; ImageIndex: Integer; ScriptText: String)¶ Добавлет операцию ручного управления записью скрипта
Parameters: - SysName (String) – Системное имя операции, которое ей будет присвоено.
- Caption (String) – поле DisplayLabel операции.
- ImageIndex (Integer) – Номер пиктограммы в основном ImageList’е приложения.
- ScriptText (String) – Текст Pascal-операции.
Note
- Метод должен вызываться в то время когда тестируемое приложение
находится в режиме записи скрипта, т.е. после выполнения
метода
TbtkScriptTesterObject.EnableScriptRecording
. - После завершения записи (
TbtkScriptTesterObject.DisableScriptRecording
) все операции удаляются как и сам объект ручного управления записью скрипта.
-
CloseActiveModalWindow
(ModalResult: TModalResult; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Закрывает модальное окно
Parameters: - ModalResult (TModalResult) – Результат модального выполнения.
- Timeout (Integer) – Временной интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Note
- CommandType = tcUnknown
- Находит верхнее окно (GetForegroundWindow) в целом, и, если оно принадлежит Серверному приложению - присвавает ему результат модального выполнения, что опосредованно должно привести к его закрытию.
-
CloseActiveWindow
(Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод закрвыает окно
Parameters: - Timeout (Integer) – Временной интервал ожидания
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Note
- CommandType = tcUnknown
- Находит верхнее окно, проверяет на принадлежность к Серверу (ищет хендл среди компонентов) и посылает ему сообщение PostMessage WM_Quit.
-
RunAsCurrent
(CmdLine: String)¶ Метод запускает экземпляр тестируемого приложения, используя имя пользователя и пароль текущего пользователя. В качестве параметра может быть передано системное имя главной выборки приложения.
Parameters: CmdLine (String) – Параметры командной строки
-
WaitDialogA
(DialogCaption: String; TimeOut: Integer)¶ Метод ожидает отображения диалога в тестируемом приложении. Если диалог не будет отображён в течении указанного интервала времени, будет сгенерирована ошибка.
Parameters: - DialogCaption (String) – Заголовок окна диалога.
- TimeOut (Integer) – Временной интервал ожидания отображения диалога или сообщения в тестируемом приложении. (в миллисекундах).
Note
то же самое, что и
WaitWindow
, но ClassName фиксирован - “TbtkMessageForm”.<pascal> TestApp.WaitDialog('Текст заголовка', 1000); // Вызов идентичен вызову: TestApp.WaitWindow('TbtkMessageForm', 'Текст заголовка', 1000); </pascal>
-
InputText
(Text: String)¶ Метод эмулирует клавиатурный ввод текста в текущий контрол.
Parameters: Text (String) – Текст, который будет введён в текущий контрол <PASCAL> TestApp.Run(''); // Запуск приложения TestApp.WaitWindow('TbtkConnectForm', 'Соединение', 10000); // Ожидание формы ввода пароля Sleep(1000); TestApp.InputText('password'); // Ввод пароля Sleep(1000); TestApp.KeyPress(9); // Переход по клавише Tab на поле выбора базы Sleep(1000); TestApp.KeyPress(9); //Переход по клавише Tab на кнопку OK TestApp.KeyPress(13); // Нажатие Enter, для закрытия диалога </PASCAL>
-
ExecuteOperation
(SelectionName, Representation, OperationName: String; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод выподняет операцию, принадлежащую выборке с указанным именем и отображением.
Выполнение операции производится асинхронно.
Parameters: - SelectionName (String) – Системное имя выборки
- Representation (String) – Отображение выборки
- OperationName (String) – Имя операции
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Note
CommandType = tcExecuteOperation
<PASCAL> // Запуск приложения TestApp.Run('username/password@DBName#btk'); // Ожидание окна выбора приложения TestApp.WaitSelection('SEL_BTK_APPLICATIONS', 'LIST', 15000); Sleep(1000); // Позиционирование в списке приложений на Конфигуратор TestApp.SelectionLocate('SEL_BTK_APPLICATIONS', 'LIST', 'sSystemName', 'SEL_ConfiguratorMainMenu'); Sleep(1000); // Выбор приложения, нажатием операции CloseFormOk TestApp.ExecuteOperation('SEL_BTK_APPLICATIONS', 'LIST', 'CloseFormOk'); // Ожидание клавной выборки приложения TestApp.WaitSelection('SEL_CONFIGURATORMAINMENU', '', 10000); Sleep(1000); TestApp.Quit; </PASCAL>
-
Quit
()¶ Метод завершает работу, запущенного ранее экземпляра тестируемого приложения. Если в тестируемом приложении открыты какие-либо окна будет задан вопрос о подтвеждении закрытия.
<PASCAL> // Запуск приложения TestApp.Run('username/password@DBName#btk'); // Ожидание окна выбора приложения TestApp.WaitSelection('SEL_BTK_APPLICATIONS', 'LIST', 15000); Sleep(1000); // Позиционирование в списке приложений на Конфигуратор TestApp.SelectionLocate('SEL_BTK_APPLICATIONS', 'LIST', 'sSystemName', 'SEL_ConfiguratorMainMenu'); Sleep(1000); // Выбор приложения, нажатием операции CloseFormOk TestApp.ExecuteOperation('SEL_BTK_APPLICATIONS', 'LIST', 'CloseFormOk'); // Ожидание клавной выборки приложения TestApp.WaitSelection('SEL_CONFIGURATORMAINMENU', '', 10000); Sleep(1000); TestApp.Quit; </PASCAL>
-
IsSelectionActive
(SelectionName, Representation: String; Timeout: Integer; DoRise, RaiseOnTimeout: Boolean): Integer¶ Метод проверяет существование и активность выборки с указанным именем и отображением на текущей форме тестируемого приложения. Возможные результаты, возвращаемые методом:
- 1
- Выборка существует и активна
- -1
- Выбока не найдена
- -2
- Выборка не активна
Parameters: - SelectionName (String) – Имя выборки
- Representation (String) – Отображение
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Return type: Integer
-
ExecuteOperationEx
(SelectionName, Representation, OperationName: String; ParamNames, ParamValues: Array; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод выполняет операцию, принадлежащую выборке с указанным именем и отображением. В метод возможно передать параметры, управляющие режимом выполнения операции. Указание параметров может быть необходимо при вызове сеттеров, в которых производится анализ свойств
SetterExecType
,GetEditButtonName
иUserActionType
.Имя параметра Возможные значения ‘SetterExecType’ etUnknown
etEditBtn (по-умолчанию)
etClearBtn
etManual
etSetVar
etExecOp
etBulkUpdate
‘ButtonName’ ‘LOOKUP#’ - кнопка выбора значения (по умолчанию)
‘OPENCARD#’ - кнопка открытия карточки
‘UserAction’ uaUnknown (по-умолчанию)
uaNextControl
Выполнение операции производится асинхронно.
Parameters: - SelectionName (String) – Имя выборки
- Representation (String) – Отображение
- OperationName (String) – Имя операции
- ParamNames (Array) – Массив параметров
- ParamValues (Array) – Массив значений параметров
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
-
CloseActiveForm
(Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод закрывает текущую активную форму тестового приложения. Определение активной формы приложения производится в следующем порядке:
- Диалог (форма диалога должена быть активной)
- Модальная форма
- MDI форма
- Главное окно приложения
Parameters: - Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Note
- CommandType = tcCloseActiveForm
- Просто закрывает активную форму серверного приложения, аналогично CloseActiveModalForm (mrCancel), но асинхронно: на CloseQuery может быть повешен модальный вызов - он не должен остановить выполнение скрипта.
-
DisableScriptRecording
()¶ Метод выключает в тестируемом приложении режим записи тестового скрипта.
-
EnableScriptRecording
()¶ Метод включает в рестируемом приложении режим записи тестового скрипта.
Метод должен вызываться из выборки, редактором которой является TbtkLookUpScriptEditFrame или TbtkScriptEditFrame. Допустимо, если редактор скрипта будет являться детальным фреймом к фрейму текущей выборки. Это условие необходимо из-за того, что регистратором скрипта является “фрейм - редактор скриптов”, Handle которого передаётся тестируемому приложению.
-
FocusOnFieldByName
(SelectionName, Representation, FieldName: String; Timeout: Integer; DoRise, RaiseOnTimeout: Boolean)¶ Метод перемещает фокус ввода на контрол, являющийся редактором для указанного атрибута выборки. Для карточки, это будет редактор, для списка или дерева, колонка соответствующая указанному атрибуту.
Parameters: - SelectionName (String) – Системное имя выборки
- Representation (String) – Отображение
- FieldName (String) – Имя атрибута
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
-
FocusOnFirstControl
(Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Установить фокус на первый контрол активной формы.
Parameters: - Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
-
KeyPressA
(Key: Integer; ShiftState: Array)¶ Метод эмулирует нажатие комбинации клавиш.
Parameters: - Key (Integer) – Код клавиши, нажатие которой должно быть эмулировано.
- ShiftState (Array) –
Массив определяет, какие функциональные клавиши (Alt, Ctrl, Shift) были нажаты в дополнении к основной клавише. Допустимые значения элементов массива:
- ssAlt
- ssCtrl
- ssShift
<PASCAL> TestApp.KeyPressA(ord('D'), [ssAlt, ssCtrl, ssShift]); </PASCAL>
-
KeyPress
(Key: Integer)¶ Метод эмулирует нажатие клавиши с указанным кодом.
Parameters: Key (Integer) – Код клавиши, нажатие которой должно быть эмулировано. <PASCAL> TestApp.Run(''); // Запуск приложения TestApp.WaitWindow('TbtkConnectForm', 'Соединение', 10000); // Ожидание формы ввода пароля Sleep(1000); TestApp.InputText('password'); // Ввод пароля Sleep(1000); TestApp.KeyPress(9); // Переход по клавише Tab на поле выбора базы Sleep(1000); TestApp.KeyPress(9); //Переход по клавише Tab на кнопку OK TestApp.KeyPress(13); // Нажатие Enter, для закрытия диалога </PASCAL>
-
SelectionGetVar
(SelectionName, Representation, VarName: String; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean): Variant¶ Метод возвращает значение атрибута (параметра) указанной выборки.
Parameters: - SelectionName (String) – Системное имя выборки
- Representation (String) – Отображение выборки
- VarName (String) – Имя параметра
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Return type: Variant
-
SelectionSetVar
(SelectionName, Representation, VarName: String; Value: Variant; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод устанавливает значение параметру в указанной выборке.
Parameters: - SelectionName (String) – Системное имя выборки
- Representation (String) – Отображение выборки
- VarName (String) – Имя параметра
- Value (Variant) – Значение параметра
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Note
- CommandType = tcSetVar
- Если серверный сеттер решит вернуть сообщение об ошибке - оно уже не попадёт в результат выполнения этого метода, т.к. SQL-Операция выполняется асинхронно - исключение будет выбрано из очереди следующим поддерживающим обработку ошибок сервера методом за этим.
-
WaitSelection
(SelectionName, Representation: String; TimeOut: Integer)¶ Метод ожидает создания и открытия выборки с указанным именем. Если выборка не будет создана и открыта в течении указанного интервала времени, будет сгенерирована ошибка.
Parameters: - SelectionName (String) – Имя выборки.
- Representation (String) – Отображение выборки.
- TimeOut (Integer) – Временной интервал ожидания отображения диалога или сообщения в тестируемом приложении. (в миллисекундах).
Note
Это не метод интерфейса, он реализован непосредственно на уровне объекта TestApp. Выполняет в цикле проверку
TbtkScriptTesterObject.IsSelectionActive
с задержкой в 100 миллисекунд, если за время работы ф-и выборка с такими характеристиками так и не появилась - будет выброшена исключительная ситауция “Ожидание выборки прекращено по таймауту”. После каждого вызова IsSelectionActive так же выполняется проверка на наличие ошибок в очереди сервера.<PASCAL> // Запуск приложения TestApp.Run('username/password@DBName#btk'); // Ожидание окна выбора приложения TestApp.WaitSelection('SEL_BTK_APPLICATIONS', 'LIST', 15000); Sleep(1000); // Позиционирование в списке приложений на Конфигуратор TestApp.SelectionLocate('SEL_BTK_APPLICATIONS', 'LIST', 'sSystemName', 'SEL_ConfiguratorMainMenu'); Sleep(1000); // Выбор приложения, нажатием операции CloseFormOk TestApp.ExecuteOperation('SEL_BTK_APPLICATIONS', 'LIST', 'CloseFormOk'); // Ожидание клавной выборки приложения TestApp.WaitSelection('SEL_CONFIGURATORMAINMENU', '', 10000); Sleep(1000); TestApp.Quit; </PASCAL>
-
CloseActiveModalForm
(ModalResult: TModalResult; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean)¶ Метод закрывает текущую активную модальную форму тестового приложения установкой форме соответствующего значения ModalResult. Определение активной модальной формы приложения производится в следующем порядке:
- Диалог (форма диалога должена быть активной)
- Модальная форма
Не модальные формы метод не закрывает.
Parameters: - ModalResult (TModalResult) – Значение, которое будет присвоено свойству ModalResult формы.
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
-
WaitDialog
(TimeOut: Integer)¶ Метод ожидает отображения диалога в тестируемом приложении. Если диалог не будет отображён в течении указанного интервала времени, будет сгенерирована ошибка.
Parameters: TimeOut (Integer) – Временной интервал ожидания отображения диалога или сообщения в тестируемом приложении (в миллисекундах). Note
- CommandType = tcUnknown
- Работает как
WaitSelection
, проверяет верхнее окно Серверного приложения наClassName = 'TbtkMessageForm'
и состояниеfsModal in FormState
<pascal> TestApp.WaitDialog(1000); // Вызов идентичен вызову: TestApp.WaitWindow('TbtkMessageForm', '', 1000); </pascal>
-
WaitWindow
(WindowClass, WindowCaption: String; TimeOut: Integer)¶ Метод ожидает отображения в тестируемом приложении окна указанного класса и с указанным текстом в загноловке. Если окно не будет отображено в течении указанного интервала времени, будет сгенерирована ошибка.
Parameters: - WindowClass (String) – Класс окна Windows.
- WindowCaption (String) – Заголовок окна.
- TimeOut (Integer) – Временной интервал ожидания отображения диалога или сообщения в тестируемом приложении. (в миллисекундах).
// Паузы в выполнении скрипта (Sleep) оставлены для большей наглядности. <PASCAL> TestApp.Run(''); // Запуск приложения TestApp.WaitWindow('TbtkConnectForm', 'Соединение', 10000); // Ожидание формы ввода пароля Sleep(1000); TestApp.InputText('password'); // Ввод пароля Sleep(1000); TestApp.KeyPress(9); // Переход по клавише Tab на поле выбора базы Sleep(1000); TestApp.KeyPress(9); //Переход по клавише Tab на кнопку OK TestApp.KeyPress(13); // Нажатие Enter, для закрытия диалога </PASCAL>
-
Terminate
()¶ Метод аварийно завершает работу тестируемого приложения. Тестируемое приложение завершает свою работу без запросов закрытия активных форм.
-
Run
(CmdLine: String; InitSyncronize: Boolean)¶ Метод запускает экземпляр тестируемого приложения.
Parameters: - CmdLine (String) – Параметры командной строки.
- InitSyncronize (Boolean) –
Синхронизировать выполнение операций.
- True
- При выполнении операций будет выполнен забор сообщений (на данный момент: результаты выполнения команд и недетерминированные ошибки сервера) от OLE-сервера тестирования. При наличии сообщения или timeout’а будет возбуждено исключение.
<PASCAL> // Запуск приложения TestApp.Run('username/password@DBName#btk'); // Ожидание окна выбора приложения TestApp.WaitSelection('SEL_BTK_APPLICATIONS', 'LIST', 15000); Sleep(1000); // Позиционирование в списке приложений на Конфигуратор TestApp.SelectionLocate('SEL_BTK_APPLICATIONS', 'LIST', 'sSystemName', 'SEL_ConfiguratorMainMenu'); Sleep(1000); // Выбор приложения, нажатием операции CloseFormOk TestApp.ExecuteOperation('SEL_BTK_APPLICATIONS', 'LIST', 'CloseFormOk'); // Ожидание клавной выборки приложения TestApp.WaitSelection('SEL_CONFIGURATORMAINMENU', '', 10000); Sleep(1000); TestApp.Quit; </PASCAL>
<PASCAL> // Отобразится диалог ввода пользовател и пароля TestApp.Run(''); // Если имя пользователя и пароль указаны верно, отобразится диалог выбора приложения TestApp.Run('username/password@DBName#btk'); // Запустится указанное приложение TestApp.Run('username/password@DBName#btk SEL_ConfiguratorMainMenu'); </PASCAL>
-
SelectionLocate
(SelectionName, Representation, FieldName: String; FieldValue: Variant; Timeout: Integer; DoRaise, RaiseOnTimeout: Boolean): Integer¶ Метод выполняет позиционирование на запись в указанной выборке по ключевому полю. Возможные результаты, возвращаемые методом:
- 1
- Позиционирование произведено успешно
- -1
- Выбока не найдена
- -2
- Выборка не активна
- -4
- Запись не найдена
Parameters: - SelectionName (String) – Имя выборки.
- Representation (String) – Отоборажение выборки.
- FieldName (String) – Имя поля.
- FieldValue (Variant) – Значение поля.
- Timeout (Integer) – Интервал ожидания.
- DoRaise (Boolean) – Возбуждать исключение при ошибке во время выполенния метода.
- RaiseOnTimeout (Boolean) – Возбуждать исключение при превышении таймаута ожидания.
Return type: Integer
<PASCAL> // Запуск приложения TestApp.Run('username/password@DBName#btk'); // Ожидание окна выбора приложения TestApp.WaitSelection('SEL_BTK_APPLICATIONS', 'LIST', 15000); Sleep(1000); // Позиционирование в списке приложений на Конфигуратор TestApp.SelectionLocate('SEL_BTK_APPLICATIONS', 'LIST', 'sSystemName', 'SEL\_ConfiguratorMainMenu'); Sleep(1000); // Выбор приложения, нажатием операции CloseFormOk TestApp.ExecuteOperation('SEL_BTK_APPLICATIONS', 'LIST', 'CloseFormOk'); // Ожидание клавной выборки приложения TestApp.WaitSelection('SEL_CONFIGURATORMAINMENU', '', 10000); Sleep(1000); TestApp.Quit; </PASCAL>
-