Анна Сергеева. Генерируем PDF-отчеты о тестировании веб-приложений в Selenium // Системный администратор. 2015. № 6. С. 66-67.
Как тестировщикам автоматически создавать отчеты о результатах своей работы в наиболее удобном формате PDF? И, хотя собственные возможности тестовых фреймворков этого не позволяют, все же есть удачное решение.
Опубликовано в разделе "Разработка / Тестирование"
Эта же статья на сайте журнала
Отчетность как обязательная часть тестирования
На настоящий момент одним из самых популярных средств автоматизации тестирования веб-приложений, пожалуй, с полной уверенностью можно назвать Selenium WebDriver. [1]
Большинство QA-команд и тестировщиков приложений, ориентированных на веб, с успехом применяют именно этот инструмент в ежедневной практике и остаются довольны получаемыми результатами. И это понятно. Selenium WebDriver удобен и прост в использовании, позволяет автоматизировать большую часть рутинной работы, а значит, существенно сократить время работы и количество прикладываемых усилий. И при этом у тестировщиков есть хорошая возможность обеспечить высокую достоверность выполняемого тестирования, и, как следствие, повысить качество производимого ПО в целом.
Здесь также стоит упомянуть, что в ходе работы тестировщики не только составляют перечень проводимых тестов и не только исполняют их, но также сталкиваются с необходимостью документирования полученных результатов. То есть, обязаны регулярно формировать производственные отчеты.
Такие отчеты считаются официальными внутренними документами компании. Они предназначены для размещения на внутренних сетевых ресурсах, распечатываются и предоставляются руководству для отчета о текущей ситуации по проекту и принятия управленческих решений. [2]
О корпоративных требованиях и проблемах реализации
Поскольку источником корпоративных стандартов и требований в компаниях разработчиков неизменно является вышестоящее руководство, то именно оно диктует, в каком виде ожидает получать любую, в том числе и отчетную, документацию от своих наемных сотрудников.
И в подавляющем большинстве случаев, руководству удобнее воспринимать информацию, представленную в бумажном виде или же в электронном, но максимально приближенном к печатному варианту. И наиболее подходящим здесь является формат PDF.
Казалось бы, все складывается очень удачно. Что может быть проще: раз уж тестировщики задействуют инструменты автоматизированного тестирования, то можно воспользоваться их встроенными возможностями и тут же генерировать автоматические отчеты о результатах обработки тестов в любом удобном для руководства формате. Никаких дополнительных денежных и трудозатрат, зато только самые свежие и актуальные отчеты практически мгновенно.
Но просто невозможно представить себе жизнь разработчиков без неожиданных трудностей. Так же и в этот раз.
Исследование средств автоматизации, распространенных среди тестировщиков, показывает, что такие фреймворки как TestNG [3] позволяют экспортировать отчеты только лишь в форматы HTML и XML, а это не самые удобные варианты.
Что ж, получается, одними лишь встроенными возможностями фреймворков не обойтись, и нужны дополнительные средства. И, хотя они пока еще знакомы небольшоу числу тестировщиков, такие средства все же существуют. И с их помощью можно достаточно удобно решать задачу генерирования PDF-отчетов о результатах автоматизированного тестирования веб-приложений. Итак.
Привязка библиотеки iText
Для генерирования PDF-отчетов существует специальная библиотека iText. Она предназначена для управления файлами в формате PDF, поддерживается в Java и C# и имеет открытый код, свободно распространяемый в формате файла JAR.
На первом этапе, нужно загрузить с доступного интернет-ресурса [4] файл библиотеки itext-2.1.7.jar, скопировать его в директорию тестируемого проекта и выполнить привязку библиотеки к проекту.
Для этого в среде разработки на форме свойств тестируемого проекта (Properties > Java Build Path > Libraries) необходимо воспользоваться кнопкой “Add External JARs”, в открывшемся диалоге выбрать нужный файл с библиотекой и сохранить изменения.
Добавление перехватчика JyperionListener
Также потребуется JyperionListener, специальный перехватчик работы фреймворка TestNG, свободно распространяемый разработчиками Java.
Необходимо скачать [5] файл перехватчика JyperionListener.java и скопировать его в корневую директорию исходных файлов тестируемого проекта.
После этого обязательно нужно добавить JyperionListener.java в качестве перехватчика работы того конкретного класса, о результатах тестирования которого необходимо сгенерировать отчет. В частности, удобно выполнить такую привязку при декларации класса:
@Listeners(JyperionListener.class)
public class PDFReportGen {
}
Автоматическое создание отчетов
После сохранения всех настроек, можно запускать в фреймворке TestNG тесты, заранее подготовленные для исследуемого проекта. По результатам запуска и исполнения тестов, в коревой директории исследуемого проекта автоматически генерируется файл PDF (рис. 1).
Рис. 1. Пример автоматического PDF-отчета о прохождении тестов
Подобные PDF-отчеты содержат отчет такую полезную информацию как имя исследуемого класса (Class), применяемый метод (Method) тестирования, длительность обработки (исполнения) каждого тестового сценария в миллисекундах (Time) и содержимое стека (Exception) для диагностики ошибок.
Таким образом, в ходе автоматизированного тестирования веб-приложений можно легко и быстро автоматически генерировать отчеты о результатах проделанной работы в формате PDF.
Литература
[1] Анна Сергеева. Инструменты тестировщика или с чего начать новичку // Системный администратор. 2014. № 7-8.
[2] Анна Сергеева. Автоматизация тестирования с Atollic TrueVERIFIER для повышения качества встраиваемых приложений // Компоненты и технологии. 2015. № 5.
[3] Сайт разработчиков фреймворка TestNG - http://testng.org/
[4] Источник библиотеки iText - http://mirrors.ibiblio.org/pub/mirrors/maven2/com/lowagie/itext/2.1.7/itext-2.1.7.jar [5] Источник JyperionListener - https://groups.google.com/group/testng-users/attach/3bc22fcb3e8cc39c/JyperionListener.java?part=0.1
Ключевые слова
Автоматизированное тестирование, тестирование веб-приложений, Selenium WebDriver, PDF, генерирование отчетов, TestNG, iText, JyperionListener.