jenkins 实现接口自动化持续集成(python+pytest+ Allure+git)
本文首发于:行者AI
在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins,我们可以结合 Git/SVN 自动拉取代码,通过设置定时构建实现自动触发脚本执行,得到测试报告,最后还可以配置发送邮件等。今天我们就来分享下,如何结合 Git自动拉取代码,通过构建来自动执行python脚本输出测试报告。
Jenkins是开源的,使用Java编写的持续集成工具。需要安装JDK,如果已经安装了JDK可以跳过该步骤。
1. 安装JDK
去官网下载JDK:https://www.oracle.com/java/technologies/javase-jdk15-downloads.html

将下载好的压缩包放在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
``
在文件最后添加内容如下,然后保存:

输入命令``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”,设置以下内容:

详细参数介绍:
进入配置,点击【构建后操作(Post-build Actions)】,找到【Extended E-mail Notification】,设置以下内容:


触发器参数说明
点击【Build Now[立即构建]】,执行结束之后。如果执行成功,将不会发送邮件给收件人;如果执行失败,将会发送一封邮件给收件人,邮件内容根据自己情况自定义。

5.2 邮件展示

6. 总结
本文主要描述了通过Git自动拉取代码,然后Jenkins构建自动执行python脚本输出测试报告,如果执行失败,通过邮件自动将测试报告发送给收件人。 后期还有许多优化的地方,希望和大家一起来探讨。
PS:更多技术干货,快关注【公众号 | xingzhe_ai】,与行者一起讨论吧!
版权声明: 本文为 InfoQ 作者【行者AI】的原创文章。
原文链接:【http://xie.infoq.cn/article/54504675be4628f145b618615】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论