14. TestComplete и COM

Назад: 13 Пользовательские формы Содержание Дальше: 15 Распределенное тестирование

Изначально эта глава планировалась довольно большой и разбитой на подглавы: работа с файловой системой, работа с реестром, работа с MS Excel и т.д. Однако за время написания учебника выходили всё новые и новые  версии TestComplete (первые главы учебника были написаны когда только-только вышла 6-я версия продукта) и многое из задуманного стало неактуальным. Появились новые объекты (например, aqFile, aqTextFile, aqEnvironment), которые позволяют делать все то, что планировалось здесь написать. Поэтому в итоге от этой главы осталось только основное.

Подключение к COM-объектам

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

Для доступа к COM-объекту используется следующий синтаксис:

var obj = Sys.OleObject(OBJECT_NAME);

где OBJECT_NAME – имя OLE-объекта.

Например, для доступа к приложению Excel используется объект «Excel.Application», а для работы с XML-файлами – объект «Msxml2.DOMDocument.3.0».

Один из наиболее часто используемых OLE-объектов – это объект WScript.Shell. С его помощью можно работать с файловой системой и реестром Windows. Так, следующий пример демонстрирует запуск программы без использования объекта TestedApps:

function TestOLE()

{

  var obj = Sys.OleObject(“WScript.Shell”);

  obj.Run(“notepad.exe”);

}

А следующий – выводит в лог количество процессоров на текущем компьютере (значение переменной окружения NUMBER_OF_PROCESSORS):

var obj = Sys.OleObject(“WScript.Shell”);

Log.Message(obj.ExpandEnvironmentStrings(“%NUMBER_OF_PROCESSORS%”));

Того же эффекта можно добиться стандартными средствами языка программирования, который вы используете. Например (JScript):

var obj = new ActiveXObject(“WScript.Shell”);

Log.Message(obj.ExpandEnvironmentStrings(“%NUMBER_OF_PROCESSORS%”));

Или VBScript:

Set obj = CreateObject(“WScript.Shell”)

Log.Message obj.ExpandEnvironmentStrings(“%NUMBER_OF_PROCESSORS%”)

На этом наше знакомство с возможностями TestComplete и COM заканчивается. К счастью возможности TestComplete с каждой новой версией расширяются, благодаря чему потребность в использовании COM-объектов постоянно уменьшается. Однако, если возможности TestComplete вас не удовлетворяют, вы можете обратиться к следующим источникам:

http://www.podgoretsky.com/ftp/Docs/WSH/Chebotarev/ – краткое, но очень емкое руководство по WScript.Shell

http://msdn.microsoft.com/en-us/library/ms763742%28v=VS.85%29.aspx – спецификации MSXML

http://autotestgroup.com/ru/materials/17.html – пример работы с Excel через OLE

Естественно, рассмотрение свойств и методов этих объектов выходит далеко за рамки этого учебника.

TestComplete как COM-сервер

Сам TestComplete также является COM-сервером, что позволяет подключаться к нему и работать с ним из других программ. Например, в следующем примере демонстрируется, как подключиться к TestComplete из Visual Basic 6, открыть набор проектов и затем закрыть TestComplete.

Set TestCompleteApp = CreateObject(“TestComplete.TestCompleteApplication”)

Set IntegrationObject = TestCompleteApp.Integration
IntegrationObject.OpenProjectSuite “C:\Documents and Settings\All Users\Documents\TestComplete 7 Samples\Scripts\Test Log\TestLog.pjs”

TestCompleteApp.Quit

Подробнее о подключении к TestComplete можно прочитать в справочной системе в разделе «Working With TestComplete via COM»

Назад: 13 Пользовательские формы Содержание Дальше: 15 Распределенное тестирование