您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

jenkins实现接口自动化持续集成

时间:2021-02-19 11:08:45  来源:  作者:

在用Python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins,我们可以结合 Git/SVN 自动拉取代码,通过设置定时构建实现自动触发脚本执行,得到测试报告,最后还可以配置发送邮件等。今天我们就来分享下,如何结合 Git自动拉取代码,通过构建来自动执行python脚本输出测试报告。

Jenkins是开源的,使用JAVA编写的持续集成工具。需要安装JDK,如果已经安装了JDK可以跳过该步骤。

1. 安装JDK

官网下载 JDK

jenkins实现接口自动化持续集成

 

将下载好的压缩包放在linux

jenkins实现接口自动化持续集成

 

然后解压Java到相应目录:

输入命令:tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz /home/java

如果提示没有tar命令,输入yum install -y tar,先安装tar

jenkins实现接口自动化持续集成

 

编辑环境变量,在/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
jenkins实现接口自动化持续集成

 

输入命令source /etc/profile,刷新环境变量配置文件使其立刻生效

到此,JDK已经安装完成。输入java -version查看是否安装成功,出现如下图即安装成功。

jenkins实现接口自动化持续集成

 

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,因为比较方便:

jenkins实现接口自动化持续集成

 

yum的repos中默认是没有Jenkins的,所以我们需要先将Jenkins存储库添加到yum repos中。

点击官网中【centos/Fedora/Red Hat】系统,然后将命令复制粘贴到Linux系统中。

jenkins实现接口自动化持续集成

 

之后就可以看到系统开始自动下载安装。若出现提示是否下载输入:y并按回车。耐心等待安装完成。

jenkins实现接口自动化持续集成

 

启动Jenkins,命令:service jenkins start,出现ok表示Jenkins启动成功。

jenkins实现接口自动化持续集成

 

在浏览器输入ip:8080进入Jenkins登录页面,输入密码。至此,Jenkins安装完成。

3. Job配置

新建一个自由风格的项目

进入工程配置页面,在源码管理下,选择Git:

jenkins实现接口自动化持续集成

 


jenkins实现接口自动化持续集成

 

如果源码管理中没有Git,说明你没有安装Git插件。点击【Manage Jenkins】,选择【Manage Plugins】,选择【可选插件】,在【搜索框】中输入git plugin,下载该插件。

安装成功如图所示,然后重启【Jenkins】:

jenkins实现接口自动化持续集成

 

构建执行shell,根据自己的脚本输入pytest命令。也就是说Jenkins将Git仓库代码下载之后,我们要怎么通过命令去执行脚本,这个根据自己执行脚本的情况填写即可,这里和我们手工执行脚本的操作是一致的,然后点击保存。

jenkins实现接口自动化持续集成

 

点击【Build Now[立即构建]】,可以看到正在执行的构建Job

jenkins实现接口自动化持续集成

 

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】项,按下图配置之后保存即可:

jenkins实现接口自动化持续集成

 

进入配置,点击【构建后操作(Post-build Actions)】,选择Allure Report

Results:输入Path路径,这里的path路径表示在项目根目录下生成此文件夹,文件夹用来保存生成html报告之前所依赖的json,xml,txt等类型文件。

Report path:输入保存html报告路径。

jenkins实现接口自动化持续集成

 


jenkins实现接口自动化持续集成

 

点击【Build Now[立即构建]】,执行结束之后可以看到生成的Allure报告

jenkins实现接口自动化持续集成

 

4.2 Allure报告展示

jenkins实现接口自动化持续集成

 

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与发件人的邮件地址

jenkins实现接口自动化持续集成

 

找到“Extended E-mail Notification”,设置以下内容:

jenkins实现接口自动化持续集成

 

详细参数介绍:

  • 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】,设置以下内容:

jenkins实现接口自动化持续集成

 


jenkins实现接口自动化持续集成

 

触发器参数说明

  • 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[立即构建]】,执行结束之后。如果执行成功,将不会发送邮件给收件人;如果执行失败,将会发送一封邮件给收件人,邮件内容根据自己情况自定义。

jenkins实现接口自动化持续集成

 

5.2 邮件展示

jenkins实现接口自动化持续集成

 

6. 总结

本文主要描述了通过Git自动拉取代码,然后Jenkins构建自动执行python脚本输出测试报告,如果执行失败,通过邮件自动将测试报告发送给收件人。 后期还有许多优化的地方,希望和大家一起来探讨。


PS:

我们是行者AI,我们在“AI+游戏”中不断前行。

快来【公众号 | xingzhe_ai】,和我们讨论更多技术问题吧!



Tags:jenkins   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
第一步、部署环境1、安装nodeJs1、下载nodewget https://nodejs.org/dist/v16.8.0/node-v16.8.0-linux-x64.tar.xz2、解压压缩包xz -d node-v8.11.2-linux-x64.tar.xztar -x...【详细内容】
2021-09-06  Tags: jenkins  点击:(70)  评论:(0)  加入收藏
前提条件:已成功安装JDK。官网下载地址: https://www.jenkins.io/download 二、安装1、jenkins安装包安装(1)直接双击运行已经下载好的jenkins.msi安装包 (2)点击"运行" (3)点击"Nex...【详细内容】
2021-06-23  Tags: jenkins  点击:(116)  评论:(0)  加入收藏
目前主流的开发采用的是devops模式(开发、测试、运维一体化)。随着互联网安全要求越来越高,对网络安全就越发变得重要了。传统的测试工程师主要是对功能、接口、性能方面做测试...【详细内容】
2021-06-23  Tags: jenkins  点击:(112)  评论:(0)  加入收藏
Jenkins 是目前最常用的持续集成工具,拥有近50%的市场份额,他还是很多技术团队的第一个使用的自动化工具。由此可见他的重要性!这份Jenkins宝典从入门介绍到结合Docker+SpringC...【详细内容】
2021-06-09  Tags: jenkins  点击:(145)  评论:(0)  加入收藏
在当今互联网行业乃至一些大厂,大部分公司都采用敏捷项目管理模式来管理项目,在敏捷十二条宣言中有一条是这样说:“我们的最高目标是,通过尽早和持续地交付有价值的软件来满足...【详细内容】
2021-04-30  Tags: jenkins  点击:(165)  评论:(0)  加入收藏
以下是详细的步骤1. JDK \Jmeter \ Ant安装:1.1.安装JDK:双击jdk-7u80-windows-x64.exe安装,默认安装到C:\ProgramFiles\Java目录1.2.安装Jmeter:在我的电脑—E盘(建议与...【详细内容】
2021-04-16  Tags: jenkins  点击:(224)  评论:(0)  加入收藏
在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实...【详细内容】
2021-03-19  Tags: jenkins  点击:(259)  评论:(0)  加入收藏
在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins,我们可以结合 Git/SVN 自动拉取代码,通...【详细内容】
2021-02-19  Tags: jenkins  点击:(230)  评论:(0)  加入收藏
Jenkins是一款开源的CI&CD软件, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。JenkinsJenkins基于Java环境,可以部署在windows/Mac OS/linux上,通过其网页...【详细内容】
2020-11-06  Tags: jenkins  点击:(610)  评论:(0)  加入收藏
相信vue很多人都已经很熟悉了,利用脚手架很容易搭建一个vue项目 但项目多了以后每次部署测试环境就相当麻烦,还容易出错 所以趁这两天不忙,研究一下jenkins,也总算是入门了 jen...【详细内容】
2020-10-17  Tags: jenkins  点击:(92)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条