3.6. Использование хранилищ (Stores) и контрольных точек

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

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

Checkpoint – это процесс сверки объекта, картинки и т.д. с неким эталонным объектом. В качестве эталонных объектов используются объекты, хранящиеся в Stores, а в качестве проверяемых объектов – элементы тестируемого приложения.

Прежде, чем начать работать со Stores, необходимо добавить соответствующий элемент в проект TestComplete. Для этого щелкнем правой кнопкой мыши на имени проекта, выберем пункт меню Add – New Item и в появившемся окне Create Project Item выберем Stores.
  

Теперь в нашем проекте появился пункт Stores  с несколькими вложенными элементами:

  • DBTables – используется для хранения информации, хранящейся в базе данных
  • Files – используется для хранения файлов
  • Objects – используется для хранения информации об элементах управления (контролах)
  • Regions – используется для хранения изображений (в частности скриншотов приложения и его элементов управления)
  • Tables – здесь можно сохранять информацию из таблиц (гридов)
  • Web-Testing – специальные элементы для проверки и сравнения веб-страниц
  • XML – элементы для хранения информации в формате XML

Давайте рассмотрим несколько примеров использования хранилищ.

Objects
В раздел Objects помещается информация о различных объектах, которые используются в приложении (например, списки, диалоговые окна, кнопки и т.п.). Хранимая информация – это любые свойства, которые можно увидеть в Object Browser-е (например, WndCaption, Width, Class, Id и пр.).

Самый простой способ создания Object Checkpoint – это начать запись скрипта и затем на панели Recording выбрать пункт Add checkpoint from list – Create object checkpoint.
  

После этого на экране появится окно Create Object Checkpoint.
  

Теперь необходимо выбрать объект, для которого мы собираемся делать проверку. Для этого надо либо перетянуть картинку с изображением мишени (Finder Tool) на проверяемый объект, либо выбрать Select object with cursor, после чего установить указатель мыши над объектом и нажать Ctrl-Shift-A. При этом объект будет подсвечен красным контуром, а его полный путь появится в строке Object. При этом также может появиться окно Map object, где будет предложено сохранить объект в NameMapping. Если вы не используете NameMapping, просто нажмите Cancel.
В нашем примере мы будем делать проверку для единственного текстового поля в Калькуляторе.
  

Нажимаем Next, затем Edit и у нас появляется окно Store object(s) properties, где мы можем выбрать свойства, по которым будет выполняться проверка объекта. Если перед нажатием на Edit выбрать галочку Store properties of child objects, и в нашем контроле есть дочерние объекты, то нам будут предложены для проверки все объекты, которые находятся внутри проверяемого.
  

Как видно из этого примера, мы решили делать проверку по трем свойствам: Enabled (доступен), Visible (видимый) и wText (текст в поле). Жмем OK, Next, Finish, затем кнопку остановку записи на панели Recording.

Теперь в разделе Objects проекта появился новый элемент Edit, а в редактор кода вставлен код проверки:
function Test1()
{
  Objects.Compare(Sys.Process(“calc”).Window(“SciCalc”, “Calculator Plus”).Window(“Edit”), “Edit”, true);
}

Теперь можно запустить полученный скрипт и в логе мы получим сообщение «The objects are the same.». Для проверки того, что код работает корректно, можно ввести в Калькуляторе какое-то число, запустить функцию снова и тогда мы в результате получим в логе предупреждение «Objects.Compare error», а в поле Remarks под логом полное объяснение того, какая именно проверка не прошла и почему:

The “wText” property of the “Window(“Edit”, “”, 1)” object holds a value that differs from the “wText” property of the stored “Edit” object.
Current value = “12. “.
Stored value = “0. “.

Конечно, совсем необязательно каждый раз для создания чекпоинта запускать запись скрипта, есть и более простой способ. Для этого необходимо щелкнуть правой кнопкой мыши в дереве проекта на элементе Objects и выбрать пункт меню Add – New Item, после чего пройти по шагам процесс добавления объекта (он аналогичен процессу добавления объекта во время записи), а затем вручную вставить код проверки в код скрипта.

Процесс создания других типов чекпоинтов аналогичен чекпоинту для объекта, поэтому мы не будем их рассматривать подробно. Разница лишь в том, что для других типов проверок во время добавления элементов в хранилище надо выбирать и настраивать другие параметры, специфичные для этого типа. Например, при создании чекпоинта для региона мы можем выбрать точность проверки (Tolerance), следует ли учитывать положение курсора при проверке и т.п.

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

Работа с изображениями более подробно рассматривается в главе 12 Особенности работы с графическими объектами

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