Jenkins реализует непрерывную интеграцию автоматизации интерфейса (python+pytest+Allure+git)

Jenkins

Эта статья была впервые опубликована на:Уокер ИИ

При автоматическом тестировании на питоне мы пишем код, а затем его нужно выполнить, чтобы получить отчет о тестировании, в это время мы можем дополнительно автоматизировать работу через Jenkins. С помощью Jenkins мы можем автоматически извлекать код в сочетании с Git/SVN, автоматически запускать выполнение скрипта, устанавливая временные сборки, получать отчеты о тестировании и, наконец, настраивать отправку электронных писем. Сегодня мы расскажем, как автоматически извлекать код в сочетании с Git и автоматически выполнять скрипты Python для вывода тестовых отчетов путем сборки.

Jenkins — это инструмент непрерывной интеграции с открытым исходным кодом, написанный на Java. Необходимо установить JDK. Если JDK уже установлен, этот шаг можно пропустить.

1. Установите JDK

Перейдите на официальный сайт для загрузки JDK:Woohoo. Oracle.com/Java/techno…

Поместите загруженный zip-файл в Linux

Затем разархивируйте Java в соответствующий каталог:

введите команду:tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz /home/java

Если будет предложено, что команды tar нет, введитеyum install -y tar , сначала установите tar

Отредактируйте переменные среды и добавьте переменные среды в файл /etc/profile:

введите команду:vim /etc/profile

Добавьте следующее содержимое в конец файла, затем сохраните:

JAVA_HOME=/home/java/jdk-11.0.8
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH

введите командуsource /etc/profile , обновите файл конфигурации переменных среды, чтобы изменения вступили в силу немедленно.

На данный момент JDK установлен. входитьjava -version Проверьте, прошла ли установка успешно, установка прошла успешно, если появится следующий рисунок.

PS: Рекомендуется создать гиперссылку Java. После установки по умолчанию используется Java из пути /usr/bin/java, при установке yum эта ссылка будет создана автоматически.

введите командуln -s /home/java/jdk-11.0.8/bin/java /usr/bin/java

2. Установите Дженкинс

Официальный сайт:www.jenkins.io/download/Выберите соответствующую операционную систему или используйте yum для установки, здесь я использую yum, потому что это удобнее:

По умолчанию в репозиториях yum нет Jenkins, поэтому нам нужно сначала добавить репозиторий Jenkins в репозитории yum.

Щелкните систему [CentOS/Fedora/Red Hat] на официальном веб-сайте, а затем скопируйте и вставьте команду в систему Linux.

После этого вы можете увидеть, что система начинает загружаться и устанавливаться автоматически. При появлении запроса на загрузку введите: y и нажмите Enter. Терпеливо дождитесь завершения установки.

Запустите Дженкинс командой:service jenkins start , и ok указывает на то, что Jenkins успешно запущен.

Введите ip:8080 в браузере, чтобы войти на страницу входа в Jenkins, и введите пароль. На этом установка Jenkins завершена.

3. Конфигурация задания

Создайте новый проект для фристайла

Перейдите на страницу конфигурации проекта и в разделе «Управление исходным кодом» выберите Git:

Если Git отсутствует в системе управления версиями, у вас не установлен подключаемый модуль Git. Нажмите [Управление Jenkins], выберите [Управление плагинами], выберите [Дополнительные плагины] и введите в [Поиск]git plugin, скачать плагин.

Установка прошла успешно, как показано на рисунке, а затем перезапустите [Jenkins]:

Создайте оболочку выполнения и введите команду pytest в соответствии с вашим собственным скриптом. То есть после того, как Дженкинс загрузит код хранилища Git, как мы выполним скрипт через команду? Это можно заполнить в соответствии с ситуацией выполнения скрипта самостоятельно. Это то же самое, что и наше ручное выполнение скрипта , а затем нажмите Сохранить.

Нажмите [Build Now], вы увидите, как выполняется задание сборки.

4. Отчет об испытаниях

Когда вариант использования выполняется, мы хотим увидеть выполнение варианта использования, и pytest не только поддерживает плагин pytest-html, но также может использовать привлекательность для создания более красивых отчетов о тестировании. Платформа Allure — это гибкий и легкий многоязычный инструмент для составления отчетов о тестировании, который не только представляет краткие результаты тестирования в веб-формате, но и позволяет всем, кто участвует в процессе разработки, максимально извлекать полезную информацию из ежедневно выполняемых тестов. Итак, мы выбираем здесь фреймворк Allure.

С точки зрения разработки/контроля качества отчеты Allure упрощают статистику распространенных дефектов: неудачные тесты можно разделить на ошибки и прерванные тесты, а также можно настраивать журналы, шаги, фикстуры, вложения, тайминги, историю выполнения и связь с TMS и Интеграция системы управления BUG, ​​поэтому с помощью вышеуказанной конфигурации все ответственные разработчики и тестировщики могут максимально освоить тестовую информацию.

С точки зрения менеджера, Allure предоставляет четкую «общую картину» того, какие функции были рассмотрены, где сгруппированы ошибки, как будет выглядеть график выполнения и многое другое. Модульность и расширяемость allure гарантирует, что вы всегда сможете что-то тонко настроить, чтобы сделать Allure более подходящим для вас, поэтому сегодня мы поговорим о том, как сделать отчет более подробным, чтобы показать нужную нам информацию, и об интеграции allure и jenkins.

4.1 Загрузите плагин Allure и настройте Allure

Нажмите [Управление Jenkins], выберите [Управление плагинами], выберите [Дополнительные плагины] и введите в [Поиск]Allure, скачать плагин. После успешной загрузки перезапустите Jenkins.

Войдите в глобальную конфигурацию инструмента [Global Tool Configuration], потяните вниз последний элемент, вы увидите элемент [Командная строка Allure], настройте его, как показано ниже, и сохраните его:

Введите конфигурацию, нажмите [Действия после сборки], выберитеAllure Report

Результаты: введите путь к пути. Путь к пути здесь указывает, что эта папка создается в корневом каталоге проекта. Папка используется для сохранения файлов json, xml, txt и других типов, от которых зависит перед созданием отчета в формате html.

Путь к отчету: введите путь для сохранения отчета в формате html.

Нажмите [Build Now], и вы увидите сгенерированный отчет Allure после завершения выполнения.

4.2 Отображение отчета Allure

5. Отправить письмо

Jenkins по умолчанию отправляет уведомление по электронной почте.E-mail Notification, но функция имеет много ограничений и недостаточно гибка. Например, формат сообщения электронной почты не может быть определен, а уведомление по электронной почте не может предоставить подробное содержимое электронной почты. Здесь мы используемEmail Extension Pluginплагин. Этот подключаемый модуль позволяет настраивать конкретное содержимое и формат отправляемого электронного письма.

5.1 Загрузите плагин электронной почты и настройте электронную почту

Нажмите [Управление Jenkins], выберите [Управление плагинами], выберите [Дополнительные плагины] и введите в [Поиск]Email Extension Plugin, скачать плагин. После успешной загрузки перезапустите Jenkins.

Войдите в системные настройки [Конфигурация системы], найдите [Расположение Jenkins], установите URL-адрес Jenkins и адрес электронной почты отправителя.

Найдите «Расширенное уведомление по электронной почте» и установите следующее:

Подробное введение параметра:

Override Global Settings:如果不选,该插件将使用默认的E-mail Notification通知选项。反之,可以通过指定不同于的设置来进行覆盖。 
Default Content Type:指定构建后发送邮件内容的类型,有TextHTML两种。 
Use List-ID Email Header:为所有的邮件设置一个List-ID的邮件信头。 
Add 'Precedence: bulk' Email Header:设置优先级。 
Default Recipients:自定义默认电子邮件收件人列表。 
Reply To List:回复列表。 
Emergency reroute:如果这个字段不为空,所有的电子邮件将被单独发送到该地址(或地址列表)。 
Excluded Committers:防止邮件被邮件系统认为是垃圾邮件,邮件列表应该没有扩展的账户名(如:@domain.com),并且使用逗号分隔。 
Default Subject:自定义邮件通知的默认主题名称。该选项能在邮件的主题字段中替换一些参数,这样就可以在构建中包含指定的输出信息。 
Maximum Attachment Size:邮件最大附件大小。 
Default Content:自定义邮件通知的默认内容主体。该选项能在邮件的内容中替换一些参数,这样就可以在构建中包含指定的输出信息。 
Default Pre-send Script:默认发送前执行的脚本。 
Enable Debug Mode:启用插件的调试模式。 
nable Security:启用时,会禁用发送脚本的能力,直接进入Jenkins实例。如果用户试图访问Jenkins管理对象实例,将抛出一个安全异常。 
Content Token Reference:邮件中可以使用的变量,所有的变量都是可选的。

Войдите в конфигурацию, нажмите [Действия после сборки], найдите [Расширенное уведомление по электронной почте] и установите следующее:

Описание параметра триггера

Failure:即时发送构建失败的邮件。如果”Still Failing”触发器已配置,而上一次构建的状态是”Failure”,那么”Still Failing”触发器将发送一封邮件来替代(它)。 
Unstable:即时发送构建不稳固的邮件。如果”Still Unstable”触发器已配置,而上一次构建的状态是”Unstable”,那么”Still Unstable”触发器将发送一封邮件来替代(它)。 
Still Failing:如果两次或两次以上连续构建的状态为”Failure”,发送该邮件。 
Success:如果构建的状态为”Successful”发送邮件。如果”Fixed”已配置,而上次构建的状态为“Failure”或“Unstable”,那么”Fixed”触发器将发送一封邮件来替代(它)。 
Fixed:当构建状态从“Failure”或“Unstable”变为”Successful”时发送邮件。 
Still Unstable:如果两次或两次以上连续构建的状态为” Unstable “,发送该邮件。 
Before Build:当构建开始时发送邮件。 

Нажмите [Build Now] после завершения выполнения. Если выполнение выполнено успешно, электронное письмо не будет отправлено получателю; если выполнение завершится неудачно, получателю будет отправлено электронное письмо, а содержимое электронного письма будет настроено в соответствии с вашей собственной ситуацией.

5.2 Отображение электронной почты

6. Резюме

В этой статье в основном описывается автоматическое получение кода через Git, а затем Jenkins создает и автоматически выполняет скрипт Python для вывода отчета о тестировании.Если выполнение не удается, отчет о тестировании автоматически отправляется получателю по электронной почте. На более позднем этапе есть еще много мест для оптимизации, и я надеюсь обсудить их с вами.


PS: Для получения дополнительной технической галантереи, пожалуйста, обратите внимание на [Публичный аккаунт | xingzhe_ai] и обсудите с ходоками!