本文首发于:行者AIhtml
在用python作自动化测试时,咱们写好代码,而后须要执行才能获得测试报告,这时咱们能够经过 Jenkins 来进一步完成自动化工做。借助Jenkins,咱们能够结合 Git/SVN 自动拉取代码,经过设置定时构建实现自动触发脚本执行,获得测试报告,最后还能够配置发送邮件等。今天咱们就来分享下,如何结合 Git自动拉取代码,经过构建来自动执行python脚本输出测试报告。java
Jenkins是开源的,使用Java编写的持续集成工具。须要安装JDK,若是已经安装了JDK能够跳过该步骤。python
1. 安装JDK
去官网下载JDK:https://www.oracle.com/java/technologies/javase-jdk15-downloads.htmllinux
将下载好的压缩包放在Linux上git
而后解压Java到相应目录:web
输入命令:tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz /home/java
shell
若是提示没有tar命令,输入yum install -y tar
,先安装tarjson
编辑环境变量,在/etc/profile文件中添加环境变量:vim
输入命令: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的超连接。创建以后默认状况下从/usr/bin/java路径使用Java,yum安装的时候,这个连接会自动建立。
输入命令ln -s /home/java/jdk-11.0.8/bin/java /usr/bin/java
2. 安装Jenkins
官网:https://www.jenkins.io/download/ 选择对应的操做系统或者使用yum方式安装,这里我使用的是yum,由于比较方便:
yum的repos中默认是没有Jenkins的,因此咱们须要先将Jenkins存储库添加到yum repos中。
点击官网中【CentOS/Fedora/Red Hat】系统,而后将命令复制粘贴到Linux系统中。
以后就能够看到系统开始自动下载安装。若出现提示是否下载输入:y并按回车。耐心等待安装完成。
启动Jenkins,命令:service jenkins start
,出现ok表示Jenkins启动成功。
在浏览器输入ip:8080进入Jenkins登陆页面,输入密码。至此,Jenkins安装完成。
3. Job配置
新建一个自由风格的项目
进入工程配置页面,在源码管理下,选择Git:
若是源码管理中没有Git,说明你没有安装Git插件。点击【Manage Jenkins】,选择【Manage Plugins】,选择【可选插件】,在【搜索框】中输入git plugin
,下载该插件。
安装成功如图所示,而后重启【Jenkins】:
构建执行shell,根据本身的脚本输入pytest命令。也就是说Jenkins将Git仓库代码下载以后,咱们要怎么经过命令去执行脚本,这个根据本身执行脚本的状况填写便可,这里和咱们手工执行脚本的操做是一致的,而后点击保存。
点击【Build Now[当即构建]】,能够看到正在执行的构建Job
4. 测试报告
当用例执行完成以后,咱们想看用例执行的状况,而pytest不只支持pytest-html插件,还可使用allure生成更加美观的测试报告。Allure框架是一个灵活的轻量级多语言测试报告工具,它不只以web的方式展现了简介的测试结果,并且容许参与开发过程的每一个人从平常执行的测试中最大限度的提取有用信息。因此咱们这里选择的是Allure框架。
从dev/qa的角度来看,Allure报告简化了常见缺陷的统计:失败的测试能够分为bug和被中断的测试,还能够配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,因此,经过以上配置,全部负责的开发人员和测试人员能够尽量的掌握测试信息。
从管理者的角度来看,Allure提供了一个清晰的“大图”,其中包括已覆盖的特性、缺陷汇集的位置、执行时间轴的外观以及许多其余方便的事情。allure的模块化和可扩展性保证了您老是可以对某些东西进行微调,使Allure更适合您,那么今天咱们就来讲说如何使报告更加详细的显示咱们须要的信息,以及allure与jenkins的集成。
4.1 下载Allure插件与配置Allure
点击【Manage Jenkins】,选择【Manage Plugins】,选择【可选插件】,在【搜索框】中输入Allure
,下载该插件。下载成功以后重启Jenkins。
进入全局工具配置【Global Tool Configuration】,下拉最后一项,会看到【Allure Commandline】项,按下图配置以后保存便可:
进入配置,点击【构建后操做(Post-build Actions)】,选择Allure Report
Results:输入Path路径,这里的path路径表示在项目根目录下生成此文件夹,文件夹用来保存生成html报告以前所依赖的json,xml,txt等类型文件。
Report path:输入保存html报告路径。
点击【Build Now[当即构建]】,执行结束以后能够看到生成的Allure报告
4.2 Allure报告展现
5. 发送邮件
Jenkins默认提供了一个邮件通知E-mail Notification
,但功能有不少的局限性,不够灵活。好比:没法定义邮件的格式、邮件通知没法提供详细的邮件内容。在这里咱们使用Email Extension Plugin
插件。该插件可以容许你自定义邮件发送的具体内容、邮件格式等。
5.1 下载Email插件与配置Email
点击【Manage Jenkins】,选择【Manage Plugins】,选择【可选插件】,在【搜索框】中输入Email Extension Plugin
,下载该插件。下载成功以后重启Jenkins。
进入系统设置【System Configuration】,找到【Jenkins Location】,设置Jenkins URL与发件人的邮件地址
找到“Extended E-mail Notification”,设置如下内容:
详细参数介绍:
Override Global Settings:若是不选,该插件将使用默认的E-mail Notification通知选项。反之,能够经过指定不一样于的设置来进行覆盖。 Default Content Type:指定构建后发送邮件内容的类型,有Text和HTML两种。 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:邮件中可使用的变量,全部的变量都是可选的。
进入配置,点击【构建后操做(Post-build Actions)】,找到【Extended E-mail Notification】,设置如下内容:
触发器参数说明
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】,与行者一块儿讨论吧!