Репорт
Silktest: Вывод результатов в собственном формате
Опубликовано KaNoN в 09.08.2010При любом виде автоматизированного тестирования неотъемлемой частью является информативный вывод результатов, так как мало просто осуществить прогон, нужно еще и суметь интерпретировать результаты. Рассмотрим решение данной задачи на примере SilkTest.
По некоторым причинам, стандартный файл результатов нас мало устраивает. Это может быть связано с такими факторами как:
- неудобство чтения стандартного вывода
- необходимость использования каких-то других внешних средств для обработки результатов (например результаты некоторых тестов должны быть в дальнейшем заимпортированы в какую-то базу или в какую-то систему)
- нужно более наглядное представление результатов.
Этот список можно продолжать до бесконечности.
Рассмотрим подход по организации своего вывода результатов. Рассмотрим вывод в некоторый текстовый формат, так как это наиболее частый случай использования своей системы вывода результатов. Более конкретизируем задачу: нам надо делать вывод результатов в HTML-формате. То есть, при старте скрипта у нас создается некоторый HTML-файл и по ходу выполнения кода этот файл наполняется информацией.
Итак, поскольку наш вывод фактически является дублирующим стандартный вывод, то ничего зазорного не будет, если мы сделаем заменители стандартных функций вывода в файл результатов. Но для начала рассмотрим стандартные функции вывода:
- Print - выводит обычный текст
- ListPrint - выводит список в виде обычного текста, где каждый элемент списка представляет собой отдельную строку
- LogWarning - выводит текст предупреждения. Это еще не ошибка, но уже текст, который своей подсветкой обращает на себя внимание. Внутренний счетчик увеличивает количество вызванных предупреждений.
- LogError - выводит сообщение об ошибке. При этом счетчик ошибок увеличивает свое значение на 1.
- ExceptPrint - выводит информацию о сгенерированном исключении
То есть, для этих функций можно сделать свои аналоги. Но в отличие от стандартных функций, необходимая нам функциональность оперирует с еще одним атрибутом - имя файла, в который будет вестись запись. То есть Эти функции-аналоги и атрибут-имя файла завязаны между собой. Причем, имя файла должно быть доступно функциям-аналогам, но недоступно нигде больше. Это полностью соответствует стандартным функциям, так как в ходе выполнения скриптов мы не можем менять файл, в который выводятся результаты. Наиболее подходящим решением для данной задачи будет класс. Если обратиться к практике на других средствах функционального тестирования, то в том же TestComplete есть такой объект как Log, который отвечает за вывод в файл отчета. Можно воспользоваться подобным принципом.
Итак, нам нужно создать класс, а точнее winclass, который будет отвечать за нашу функциональность ввода-вывода. Также нам нужна глобальная переменная-экземпляр данного класса. Для этого мы создадим отдельный файл, назовем его MyLogger.inc и для старта впишем строки
[ ] private STRING sFileName
[ ] window MyLoggerClass Log
[ ]
[+] winclass MyLoggerClass
[ ]»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- Читать далее







