8. Использование расширений (ActiveX, Java, .NET, Explorer extensions)

Назад Содержание Дальше

Если вы только начинаете работать с SilkTest-том и у вас нет необходимости работать с ActiveX-элементами или Java-приложениями, то данный раздел можно пропустить. В нем описываются особенности работы именно с приложениями, написанными на Java, либо использующих ActiveX-элементы. Кроме того, немного внимания уделено другим расширениям (или надстройками), идущим в поставке с SilkTest-ом.

Однако прежде, чем подключать надстройки, необходимо знать следующее: в SilkTest-е существует понятие target machine и host machine. Host machine – это компьютер, на котором запускается на выполнение скрипт в SilkTest-е. Target machine – это компьютер, на котором этот скрипт будет выполняться. В простом случае скрипт запускается и исполняется на одном и том же компьютере. В этом случае данный компьютер является и target и host machine одновременно. Однако можно сделать так, чтобы скрипт, запущенный на одном компьютере, выполнялся на другом, или даже на нескольких одновременно (подробнее об этом сказано в пункте 5. Распределенное, параллельное выполнение скриптов. Multitestcase). Для того чтобы надстройки включились, необходимо их настроить как на target, так и на host компьютерах.

Для того, чтобы подключить необходимые расширения на host machine надо зайти в меню Options – Extensions. Для подключения настроек для target machine необходимо зайти в Пуск – Программы – SilkTest – Extension enabler.

8.1 Работа с ActiveX-элементами

Что же собой представляет ActiveX? Это достаточно сложный вопрос, однако нам в рамках нашей задачи достаточно знать, что ActiveX-элементы – это такие же элементы управления, как и стандартные элементы; они имеют свои свойства и методы, с которыми можно точно так же работать: вызывать методы, присваивать свойствам значения и т.д. Точно так же, как у разных элементов управления существуют свои свойства и методы, ActiveX-элемент каждого типа тоже имеет свои собственные методы и свойства. В приложении Test Application, идущим в поставке с SilkTest-ом, нет такого элемента управления, поэтому мы рассмотрим работу с ним на примере простого приложения в MS Access (для дальнейшей работы у вас должен быть установлен Microsoft Office 2000 или выше).

Для этого мы откроем Access, создадим новую базу данных, затем перейдем в раздел Формы и создадим новую форму. После чего выберем пункт меню Вставка – Элемент ActiveX, после чего в списке выберем пункт “Элемент управления Календарь” и нажмем ОК. Теперь сохраним сделанные изменения и приступим к собственно изучению методов работы с ActiveX-элементами в SilkTest-е (описываемая база находится в прилагаемом архиве, см. файл ActiveX.mdb).

Прежде всего необходимо подключить расширения, причем, как уже было сказано ранее, сделать это для host и target machine.
В SilkTest-е выберем пункт меню Options – Extensions. Откроется список подключенных расширений. Нажмем кнопку New и впишем имя exe-файла нашего приложения (или нажмем кнопку Browse, выберем необходимый файл и нажмем Открыть). Для нашего примера необходимо выбрать файл msaccess.exe, который находится в папке \Program Files\Microsoft Office\Office10 (в зависимости от версии офиса имя последней папки может иметь разные цифры в названии). После этого нажмем кнопку ОК. Имя файла появится в списке расширений. Теперь необходимо включить флажок ActiveX напротив нашего файла (средний флажок справа от названия файла) и нажать ОК. Расширения для host machine включены. Теперь необходимо повторить те же самые действия для target machine. Повторите все действия, описанные выше, только вместо пункта меню Options – Extensions выберите Пуск – Программы – SilkTest – Extension Enabler.

Если вы все сделали правильно, то у вас должен получиться результат, показанный на рисунке 8.1.

Рисунок 8.1.

 

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

 

После подключения расширений необходимо перезапустить приложение, для которого подключались расширения (в данном случае это Microsoft Access).

Теперь нам необходимо записать объявление нужного нам класса. Откроем форму, в которую помещен календарь (в прилагаемой базе она открывается автоматически при открытии файла), затем в SilkTest-е выберем пункт меню Record – Class, наведем курсор мыши на календарь в форме и нажмем Ctrl-Alt. Если все предварительные настройки были сделаны корректно, то в окне Record Class вы увидите список методов и свойств, которые определены для этого ActiveX-элемента. Если же списки пусты, значит расширение ActiveX не было активировано для данного приложения либо этот элемент не является таковым.

Вставим описание нового класса (кнопка Paste to Editor). Теперь опишем наше окно Microsoft Access через меню Record – Window Declaration. Теперь при наведении курсора мыши на календарь SilkTest правильно определяет его класс – OLECalendar. Если бы мы сделали это до подключения расширений, то класс этого элемента был бы CustomWin, и работать с ним нормально было бы невозможно.

Теперь посмотрим на записанные свойства и методы. В принципе их назначение понятно интуитивно. Например: iMonth – месяц, iYear – год. Метод Today() устанавливает в календаре текущую дату. Методы NextDay, NextWeek, NextMonth и NextYear устанавливают соответственно следующий день, неделю, месяц и год.

Посмотрите пример тесткейса, работающего с этим элементом (Test_ActiveX из файла TestApp.t). В качестве самостоятельного упражнения попробуйте написать тесткейс, который устанавливает в календаре завтрашнюю дату и затем проверяет правильность установленной даты (подсказка: используйте функцию AddDateTime() ).

Еще некоторые замечания по использованию ActiveX-расширений:

  1. в случае, если тесткейс остановился, выдав ошибку “Property … not found” или “Call to object failed”, – скорее всего, сбились настройки ActiveX-а. В этом случае рекомендуется закрыть тестируемое приложение и Агента SilkTest-а и затем перезапустить тесткейс.
  2. никогда не закрывайте приложение, для которого включена поддержка ActiveX-ов, нестандартным методом (например, через Task Manager). В этом случае ошибки, описанные в предыдущем пункте, будут возникать очень часто.

 

8.2 Работа с .NET-приложениями

Процесс подключения расширений для .NET-приложений выглядит так же, как и для приложений с ActiveX-элементами, за исключением того, что вместо включения флажка ActiveX в окне Extensions необходимо выбрать в выпадающем списке Primary Extension пункт .NET Ext (рис. 8.2).

Рисунок 8.2.

После того, как вы сделаете это для target и host машин, SilkTest автоматически добавит файл dotnet.inc в список подключаемых файлов (чтобы увидеть этот список выберите пункт меню Options – Runtime, список находится в поле Use Files). Там же вы можете добавлять любые файлы, которые хотите чтобы подключались автоматически при открытии SilkTest-а.

Если отрыть этот файл (он находится в папке “C:\Program Files\Segue\SilkTest\Extend”), то будет видно, что в нем определены классы для многих .NET-объектов и окон, которые наследуются от стандартных классов. Отличие состоит лишь в префиксе Swf, характерном для .NET-классов. В остальном же работа с ними не отличается от стандартных классов.

Кроме того, отличие .NET-объектов от обычных в том, что каждый из них похож на ActiveX-контрол, то есть вы можете, используя пункт меню Record – Class посмотреть список доступных свойств и методов для любого объекта. Это удобно в случае, если какой-либо объект не является стандартным, а разработан специально для данного приложения. Достаточно записать все его свойства и методы, как и для ActiveX-элементов, и работать с ними.

В тестовом приложении DotNetTestApp.exe, поставляемом с SilkTest-ом, таких элементов нет, поэтому мы воспользуемся одним из стандартных, а именно CheckedListBox. В качестве примера рассмотрим работу со списком чекбоксов, каждый элемент которого может находиться во включенном либо выключенном состоянии.

Прежде всего, необходимо закомментировать объявление этого класса в файле dotnet.inc (иначе SilkTest не позволит добавить его объявление). После чего откроем это окно (в DotNet Test Application пункт меню Control – CheckedListBox), а в SilkTest-е выберем пункт меню Record – Class, наведем курсор мыши на список и нажмем сочетание клавиш Ctrl-Alt. Если расширения были подключены правильно, то в окне Record Class мы увидим список доступных для этого списка свойств и методов (см. рис. 6.3).

Рисунок 8.3.

Примечание: так как для .NET-приложений используются классы, отличные от стандартных классов, необходимо записать декларации окон заново иначе. В файле TestAppNet.inc главное окно приложения называется wTestAppNet. Там же находится описание свойств и методов необходимых классов.

Теперь, когда у нас есть список свойств и методов, мы можем их использовать по своему усмотрению. Для примера посмотрите тесткейс Test_CheckedListBox в файле TestAppNet.inc. Этот тесткейс демонстрирует использование трех методов класса SwfCheckedListBox: get_Sorted, SetItemChecked и FindString.

В качестве упражнения попробуйте написать тесткейсы с использованием методов одного из классов: ProgressBar, PictureBox, DataGrid, LinkLabel или MonthCalendar, которые представлены в приложении NET Test Application.

Некоторые замечания:

  1. Если во время записи методов класса в окне Record Class включить опцию Show all methods, то среди записанных методов могут оказаться методы, которые начинаются со строки “///**” (три символа слеш и две звездочки). Эти методы не могут быть вызваны средствами SilkTest-а.
  2. Если некоторые из объектов, которые используются в тестируемом приложении, работают некорректно, возможно придется воспользоваться ClassMap’ом, как это объясняется в главе 1.4 Использование Class Map и расширение встроенных классов

 

8.3 Тестирование Java-приложений

При тестировании Java-приложений вам также необходимо подключить расширения, иначе SilkTest не будет “видеть” ни одного элемента управления в окнах. Прежде всего убедитесь, что в окнах Extension Enabler для target и host машин включена поддержка Java для Java-приложений (рис. 8.4).

Рисунок 8.4.

Если опция Java Application есть, но галочка Java не включена – включите ее. Если же такой опции нет – создайте новое правило, по аналогии с включением поддержки ActiveX, однако в поле, где вписываются имена файлов (окно Extension application) впишите следующую строку:
java.exe, jre.exe, jrew.exe, appletviewer.exe, javaw.exe После этого опция Java Application появится в списке. Для нее необходимо включить опцию Java.

После этого, как и в случае с .NET-приложениями, в список Use Files добавится файл JavaEx.inc

Теперь необходимо настроить SilkTest таким образом, чтобы он правильно работал с Java-приложениями. Для этого запустите тестируемое приложение (в нашем случае это “JFC Test Application for JDK 1.2 and above”), в SilkTest-е выберите пункт меню Tools – Extension Enabler и в списке приложений выберите нужное приложение, после чего нажмите кнопку Select (рис. 8.5).

Рисунок 8.5.

После этого SilkTest выдаст сообщение о том, что необходимо скопировать файл SilkTest_Java3.jar в папку \lib\ext приложения, после чего предложит перезапустить приложение и нажать кнопку Test.

Если после всех вышеописанных действий вы получили сообщение об успешной конфигурации (окно с заголовком Test Passed), то вы успешно настроили SilkTest для работы с Java-приложением. В случае сообщения об ошибке вам, возможно, придется вручную скопировать указанный SilkTest-ом файл в папку \lib\ext, которая находится в папке, куда было установлено тестируемое приложение (если такой папки нет – создайте ее).

Примечание: если вы используете на компьютере какую-либо программу-фаервол (firewall, например Outpost Firewall, BlackIce и т.д.), вам понадобится добавить файл java.exe в список доверенных приложений, или отказаться от его использования. В противном случае сконфигурировать SilkTest для работы с Java-приложениями не получится.

Если у вас нет Java-приложения и вы хотите просто потренироваться на примерах, которые поставляются в SilkTest-ом, вам необходимо:

  1. установить Java 2 SDK Standard Edition любой версии (при написании этой книги использовалась версия 1.4.2.05); скачать дистрибутив можно на сайте Sun Microsystems
  2. найти в папке “C:\Program Files\Segue\SilkTest\JavaEx” все bat-файлы, предназначенные для запуска Java-приложений (AWT_TestApplication.bat, JFC_TestApplication.bat, Swing11TestApp.bat), открыть их в любом редакторе и в строку “set JavaRun=” в конце дописать путь, по которому после установки Java 2 SDK у вас находится файл java.exe. Например:
    set JavaRun=C:\j2sdk1.4.2_05\bin

 

Теперь можно конфигурировать SilkTest, как было сказано выше.

В файле TestAppJava.inc имеется описание окна wTestAppJava и диалогового окна dListBox. В файле TestAppJava.t – простой тесткейс, работающий с Java-приложением, добавляющий несколько элементов в ListBox, а затем проверяющий, правильно ли они добавились.

Для Java-элементов, точно так же, как и для .NET и ActiveX элементов, можно использовать их встроенные свойства и методы. Просмотреть и записать их можно, используя меню Record – Class в SilkTest-е.

8.4 Расширения Explorer’а

Собственно о WEB-тестировании с использованием браузера Internet Explorer, подробно рассказывается в главе 4. Тестирование WEB-приложений, поэтому здесь мы не будем на этом останавливаться, а расскажем о некоторых других особенностях и возможностях.

Кроме WEB-тестирования, где скрипт постоянно работает с окном браузера, подобные компоненты Internet Explorer’a могут использоваться и в других приложениях, в том числе и в других браузерах, например, для выведения отформатированных отчетов на экран. В SilkTest-е реализована поддержка двух браузеров: Internet Explorer и Netscape Navigator (в SilkTest версии 8.0 включена также поддержка Mozilla Firefox).

Для того чтобы вручную подключить расширения для Internet Explorer’a, необходимо добавить в список Extension Enabler’a файл iexplore.exe (как это сделать, подробно описывается в главе 8.1 Работа с ActiveX-элементами), и установить для него Primary Extension равным IE DOM, после чего перестартовать браузер.

Для подключения расширений Netscape необходимо для файла netscp.exe подключить Primary Extension Netscape DOM.

Если ваше приложение использует вывод на экран каких-либо отчетов в формате HTML, то, возможно, для этого используется компонент Internet Explorer’a. Для того, чтобы иметь возможность работать с такими отчетами, необходимо также для *.exe файла этого приложения подключить одно из расширений Internet Explorer’a: IE DOM, IE OCX либо IE Virtual Objects, подобно тому, как мы подключали ActiveX для приложения MS Access. В противном случае вы будете иметь возможность работать с содержимым странички только как с обычным текстом, используя буфер обмена.

Кроме того, существует также несколько браузеров, которые не являются браузерами как таковыми (например, MyIE, Avant Browser). Для того чтобы работать с ними, как с браузером, необходимо для них подключать расширения других браузеров. Например, для MyIE необходимо подключить расширение IE4 OCX, а для Avant Browser’a – IE DOM. После этого все объекты внутри HTML-страничек будут правильно распознаваться SilkTest-ом.


Назад Содержание Дальше