| Назад: 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 Запуск скриптов |