| Назад: 3.7 Запуск скриптов | Содержание | Дальше: 3.9 Отладка скриптов |
Вы уже имеете небольшой опыт работы с логами, которые генерирует TestComplete во время работы тестовых скриптов. Теперь мы рассмотрим работу с логом подробнее.
Если открыть любой лог, то в его верхней части вы увидите 6 типов сообщений, которые могут быть использованы:
![]()
- Error – ошибки. Это могут быть как ошибки, автоматически генерируемые TestComplete-ом (например, когда TestComplete не находит объект или скрипт пытается выполнить щелчок мышью за пределами экрана), так и генерируемыми вручную (например, если выполняется какая-то проверка и необходимо сообщить о ее неправильных результатах).
- Warning – предупреждения. Это тоже ошибки, но не критичные. Они также могут генерироваться TestComplete-ом или писаться непосредственно в скриптах.
- Message – сообщения. Любые сообщения, которые могут быть полезны при просмотре логов. Сообщения вставляются в текст скрипта вручную и не генерируются TestComplete-ом.
- Events – события. Происходят каждый раз, когда скрипт вводит текст (с помощью метода Keys) или щелкает мышью. События генерируются TestComplete-ом автоматически, но сообщения такого типа также можно создавать в скрипте.
- Image – изображения. Позволяют вставлять изображения в лог (например, снимки экрана).
- File – файл. Позволяет вставить в лог файл с возможностью открыть его непосредственно из лога. Это может быть полезно, например, если тестируемое приложение генерирует файл с данными и при просмотре лога есть необходимость в открытии этого сгенерированного файла.
- Link – ссылка на файл или другой ресурс
Прежде чем изучать другие возможности системы логгирования TestComplete, рассмотрим простой пример работы с логом. Для генерации событий мы воспользуемся все тем же приложением Калькулятор.
function UseLog()
{
var wnd, i;
wnd = Sys.Process(“calc”).Window(“SciCalc”, “Calculator Plus”);
wnd.Activate();
Log.Message(“Сообщение, генериуемое пользователем”, “Дополнительный текст сообщения”);
Log.Error(“Ошибка, генерируемая пользователем”, “Дополнительный текст ошибки”);
wnd.Keys(“123”);
Log.Warning(“Предупреждение, генерируемое пользователем”, “Дополнительный текст предупреждения”);
Log.File(Project.Path + “\\Stores\\Files\\testfile.txt”, “Описание файла”, “Дополнительный текст”);
Log.Picture(Sys.Desktop.Picture(), “Снимок экрана”, “Дополнительный текст”);
wnd.Click(200, 500);
}
Если запустить этот скрипт, мы получим следующий результат:

Здесь мы можем видеть как сначала генерируется событие при активации окна, затем мы выводим в лог сообщение и ошибку, затем имитируем нажатие клавиш (что также приводит к генерации события и соответствующей записи в логе), затем мы вставляем предупреждение, файл, снимок экрана и в конце делаем попытку щелкнуть мышью за пределами окна, что приводит к генерации TestComplete-ом ошибки.
В нижней части окна находятся секции Remarks (дополнительный текст, комментарии) и Picture (здесь отображается картинка, когда в логе выделено сообщение типа Image).
Теперь рассмотрим более сложные примеры работы с логом.
У каждой записи в логе (ошибки, сообщения, предупреждения и т.п.) есть атрибуты (цвет текста, цвет фона, шрифт), которые можно изменять. Вот пример использования атрибутов.
function UseLogAttr()
{
var attr = Log.CreateNewAttributes();
attr.BackColor = BuiltIn.clBlue;
attr.FontColor = BuiltIn.clWhite;
attr.Bold = true;
attr.Italic = true;
attr.Underline = true;
Log.Message(“Message without attributes”);
Log.Message(“Message with attributes”, “”, pmNormal, attr);
attr.BackColor = BuiltIn.clRed;
attr.Bold = false;
attr.Italic = false;
attr.Underline = false;
Log.Message(“Message with attributes”, “”, pmHighest, attr);
Log.Message(“Message without attributes”, “”, pmHighest);
}
Результат работы функции:

Также в логе можно использовать папки (folders). Папка – это элемент лога, который содержит внутри себя дочерние элементы, в результате чего лог имеет древовидную структуру. Эта возможность может быть полезна, например, для того, чтобы все события, сообщения, ошибки и пр. для конкретного шага тесткейса не выводились в общий лог, а были скрыты до тех пор, пока не понадобятся для анализа. Это позволяет создавать более удобочитаемые логи.
Для работы с папками используются методы CreateFolder, AppendFolder, PushLogFolder, PopLogFolder. Метод AppendFolder создает новую папку и делает ее активной, в результате чего все следующие сообщения будут помещаться в нее до тех пор, пока она не будет закрыта с помощью метода PopLogFolder.
Метод CreateFolder создает папку, но не делает ее активной. При этом метод CreateFolder возвращает идентификатор созданной папки. С помощью этого идентификатора позже можно активировать эту папку методом PushLogFolder. Кроме того, во всех методах объекта Log (Message, Error, Warning и т.д.) есть необязательный параметр FolderID, с помощью которого можно помещать сообщения или ошибки прямо в необходимую папку.
Ниже показан пример работы с папками и результат работы скрипта.
function UseLogFolder()
{
Log.Message(“Сообщение первого уровня”);
Log.AppendFolder(“Folder 1”);
Log.Message(“Сообщение второго уровня”);
Log.AppendFolder(“Folder 2”);
Log.Message(“Сообщение третьего уровня”);
Log.PopLogFolder();
Log.Message(“Сообщение второго уровня”);
Log.PopLogFolder();
Log.Message(“Сообщение первого уровня”);
var folderID = Log.CreateFolder(“Folder 3”);
Log.Message(“Сообщение первого уровня”);
Log.PushLogFolder(folderID);
Log.Message(“Сообщение второго уровня”);
Log.PopLogFolder();
Log.Message(“Сообщение первого уровня”);
Log.Message(“Сообщение 2го уровня”, “”, pmNormal, null, null, folderID);
}

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

затем в появившемся окне выбрать необходимые параметры и нажать ОК.

Результаты работы скриптов также можно экспортировать непосредственно из самих скриптов (например, в самом конце их работы). Для этого нужно воспользоваться методом Log.SaveResultsAs.
Кроме рассмотренных возможностей, в TestComplete-е также есть и другие полезные свойства и методы, полезные для работы с логом.
- ErrCount, WrnCount, EvnCount, FileCount, ImgCount, LinkCount – количество ошибок, предупреждений и т.д. в логе
- FolderErrCount, FolderWrnCount, FolderEvnCount, FolderFileCount, FolderImgCount, FolderLinkCount – количество ошибок, предупреждений и т.д. в конкретной папке лога
- LockEvents/UnlockEvents – блокировка/разблокировка событий. После использования метода LockEvents TestComplete не будет помещать в лог события (Events) до тех пор, пока не отработает метод UnlockEvents. Это может быть полезно в том случае, когда при тестировании генерируется очень много событий, что влечет за собой большой размер лога и долгое время его открытия
| Назад: 3.7 Запуск скриптов | Содержание | Дальше: 3.9 Отладка скриптов |