3.4. Использование именования (Namespaces) и псевдонимов (Aliases)

Назад: 3.3 Запись, модификация и написание скриптов Содержание Дальше: 3.5 Синхронизация выполнения скриптов

Именования (NameMapping) и псевдонимы (Aliases) используются для более удобного доступа к элементам управления в скриптах. Сравните, например, два способа нажатия на кнопку CE в Калькуляторе.
Обычный способ:
Sys.Process(“calc”).Window(“SciCalc”, “Calculator Plus”).Window(“Button”, “CE”).ClickButton();

С использованием Name Mapping:

NameMapping.Sys.calc.wndSciCalc.btnCE.ClickButton();

И с использованием Aliases:

Aliases.calc.wndSciCalc.btnCE.ClickButton();

Во всех трех случаях мы делаем одно и то же действие: нажимаем на кнопку СЕ калькулятора. Однако в первом случае нам необходимо написать гораздо больше кода, чем во втором и, тем более, в третьем. В нашем примере мы экономим не так уж и много места, однако представьте себе, насколько меньше кода придется писать для тестирования всего приложения, и насколько проще читать и понимать код, приведенный во втором и третьем случаях!

Дело в том, что в первом случае мы используем обычный способ доступа к элементам управления в приложении. Именно так, как видит их ТестКомплит. Мы указываем, какой тип приложения используется (Window), какой заголовок окна, с которым мы работаем (Calculator Plus), какой тип элемента управления, на который мы нажимаем (Button) и его заголовок (СЕ).

NameMapping позволяет нам создать псевдонимы для любого элемента любого уровня вложенности. Например, мы можем переименовать объект Sys в S, и тогда нажатие на кнопку будет выглядеть так:

NameMapping.S.calc.wndSciCalc.btnCE.ClickButton();

Мы также можем переименовать остальные объекты в нашем приложении и, в конце концов, добиться следующего обращения к кнопке:

NameMapping.S.calc.Calc.CE.Click();

Однако, как бы мы не переименовывали объекты в NameMapping, мы так и остаемся привязаны к структуре приложения. То есть мы можем как угодно изменять имена объектов в NameMapping, но иерархия остается такой же, какая она есть в приложении. Это не всегда удобно, поэтому в подобных случаях нам на помощь приходят Aliases. Aliases – это тот же NameMapping, который, однако, позволяет установить собственную иерархию объектов. Например, в нашем случае мы можем сделать так, чтобы кнопка CE стала прямым потомком процесса calc (это совершенно бессмысленное и даже вредное действие, однако мы приводим этот пример для того, чтобы показать возможности Aliases):

Aliases.calc.btnCE.ClickButton();

Теперь рассмотрим процесс создания NameMapping и Aliases.

Если вы используете ТестКомплит версии 7 и выше, то при записи скрипта ТестКомплит создаст и предложит сохранить созданный NameMapping.
 
 
Если же у вас ТестКомплит более ранней версии, то вам придется создавать NameMapping самим.

Для этого прежде всего необходимо добавить элемент NameMapping в проект. Щелчок правой кнопкой мыши на имени проекта, затем Add – New Item – Name Mapping. После этого выбираете необходимый вам объект в Object Browser, щелкаете на нем правой кнопкой мыши и в появившемся контекстном меню выбираете пункт Map the Object Name. Если один или несколько родительских объектов не были примапплены, ТестКомплит выдаст вам сообщение
 
 
Если в этом окне нажать кнопку Yes, вам необходимо будет именовать все неименованные объекты приложения по предложенным или выбранным вами свойствам.
 
 
Обратите внимание на список Selected слева. Именно по этим свойствам и их значениям ТестКомплит будет в дальнейшем распознавать объекты приложения, поэтому здесь необходимо тщательно продумывать, по каким именно свойствам вы хотите идентифицировать объект. Набор свойств должен быть уникальным для данного элемента управления.

По мере того, как вы добавляете объекты в NameMapping, они появляются и в разделе Aliases. Изменять порядок объектов иерархии в списке Aliases можно перетаскивая объекты мышью.

Запомните: можно использовать NameMapping без Aliases, однако Aliases могут быть использованы только в том случае, если у вас имеется NameMapping!

Если вы не хотите использовать NameMapping в своих скриптах и не хотите, чтобы окно NameMapping появлялось каждый раз, когда вы записываете скрипт, вам необходимо отключить эту опцию в Tools – Options – Engines – Name Mapping, чекбокс Map object names automatically.

Назад: 3.3 Запись, модификация и написание скриптов Содержание Дальше: 3.5 Синхронизация выполнения скриптов