Jenkins+Python自动化测试之持续集成详细教程

news2025/1/9 18:07:59

前言

今天呢笔者想和大家来聊聊Jenkins+Python自动化测试持续集成,废话呢就不多说了哟咱们直接进入主题哟。

 

一、Jenkins安装

​ Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。由于是基于java开发因此它也依赖java环境,安装之前需要先安装jdk,建议jdk1.8+,安装后配置java环境变量。安装jdk成功后,在cmd使用java -version可查看jdk版本信息。

​ 官网下载地址:https://www.jenkins.io/zh/ ,或者这个网址直接下载:http://mirrors.jenkins.io/war-stable/latest/jenkins.war ,下载的包可以是Jenkins.war,也可以是Jenkins.msi。 

​ 如果是Jenkins.war,那么将这个文件放到一个目录下,打开cmd,进入到此文件所在目录,执行:java -jar jenkins.war --httpPort=8080即可;如果是Jenkins.msi,直接双击打开运行安装。

​ 安装好之后,打开浏览器输入:localhost:8080,会出现下面这个图:

 ​ 稍等一会,会提示需要输入管理员密码,按照提示到对应的路径找到initialAdminPassword这个文件,用记事本打开,里面会有一个密码,把这个密码粘贴到文本框中点确定即可。

 ​ 到下图这一步时,选择左边安装推荐的插件,安装插件的过程会比较漫长,如果网络比较差,很多安装失败的话也可以点击continue跳过安装,就会跳到设置用户页面,设置一个用户密码,就进入主页面了。

 

1.1离线安装插件

​ 在安装jenkins时如果跳到了插件安装,后面想再安装插件可以在主页面系统管理》插件管理中下载,如果网络不好下载插件很慢或失败时,可以试试到这个插件列表中去下载:http://updates.jenkins-ci.org/download/plugins/ ,下载的是.hpi格式的文件,下载后在jenkins系统管理》插件管理》高级》上传插件,上传对应插件的.hpi文件,然后重启jenkins即可。

 

1.2离线升级

​ 同理,在需要升级jenkins时,在线升级比较慢的情况下,我们也可以离线去下载,推荐地址:http://mirrors.jenkins-ci.org/war/ ,下载的是.war后缀的包。

​ 离线升级步骤:

下载war包:见上
替换war包:找到本地 jenkins 的 war 包的安装路径,可在jenkins系统管理》系统信息中查询到;然后把下载好的war包替换掉原来的war包

 

 3.重启服务:Ctrl + Alt + Del 打开任务管理器,重新启用 jenkins 服务

 

二、Jenkins部署项目

​ 如果在没有pycharm编译器的情况下我们怎么运行项目呢?可以在windows的命令行下直接运行,但运行时需要先切换到项目路径下,然后在cmd输入python 文件名.py,或者不切换路径,直接输入文件的完整路径,如:python c:\test\main.py。

​ 当然,更方便的还是在Jenkins上面一键运行。

​ 首先要创建一个工作项目,类型选第一个Freestyle project就行。

 每一个项目建立后,都需要先执行一遍构建才会有工作区间,否则进入工作区间会显示如下:

构建一遍后再点进工作区间会显示“空目录”,这是因为我们还没有把测试项目放到Jenkins。先找到Jenkins安装目录下的workplace,然后在对应目录下把我们的测试项目整个拷过来即可,如下: 

 

如果源码不在本地,使用的是git或svn,那么配置好项目的git/svn,执行构建后会自动把服务器上的代码拉取下来。下面是源码管理及构建的步骤:

三、源码管理

 源码管理(source code management):需要安装插件,如:git/svn,没有插件时显选择无,直接使用本地代码,需要拷贝到工作区间。

 

这里以git为例,参数说明:

  • repository url:项目的git地址(svn则填svn地址)
  • credentails:点击添加Jenkins凭据,填写git/svn的账号及密码》保存;保存后在左侧选择账号

 四、构建

​ 构建,即如何运行项目。添加构建步骤,windows选择execute windows batch command,linux或mac选择execute shell,然后输入终端的执行命令:python 文件名.py,保存后点击构建(build now)就可以运行项目了,注意这里运行的文件需要存放在工作区间的根目录下(因为这里默认是根目录)。

 配置好后,就可以运行项目了,在对应项目里点击build now(立即构建)就可以运行项目了,在左下角可查看构建进度、构建历史,还可以查看控制台的输出。

 

五、Jenkins发送邮件

现在就来介绍一下如何使用jenkins来发送邮件

5.1安装插件

​ Jenkins需要先安装以下两个插件

5.2配置邮件地址

​ 位置:jenkins管理》系统配置》Jenkins Location。在系统管理员邮件地址,输入对应的邮件地址

 

5.3配置smtp服务

​ 位置:jenkins管理》系统配置》Extended E-mail Notification,填写对应的smtp服务器相关内容,如下是qq邮箱示例,授权码获取见传送门。

 

 

点击高级,输入对应的邮箱地址和smtp登录的授权码,勾选ssl。

 

5.4配置邮件触发器

​ 位置:jenkins管理》系统配置》Default Triggers,默认是勾选失败才发,可以配置总是发送(或根据需求勾选),那么每次运行项目时都会发送邮件。

 

​ 需要特别注意的是,如果项目已经创建了(项目默认是失败发送)才去配系统触发器(配了总是发送),那么项目会读取项目的触发器,如果是先配置了系统触发器再创建的项目,那么项目的触发器是读取系统触发器的。配置项目的触发器见第5点。

5.5配置构建后操作

​ 位置:对应项目》配置》添加构建后操作-Editable Email Notifiction,输入收件人邮件地址(Project Recipient List),多个邮箱可以用英文逗号隔开;输入附件内容(Attachments):reports/report.html,这里输入的是:项目存放测试报告的文件夹名/测试报告文件名。

​ 邮件触发器,点击高级》找到triggers。

 

  邮件触发器:

 5.6html展示配置

​ 配置后项目生成的html报告就可以直接在项目中查看,如下图:

 ​ 需要安装插件:HTML Publisher

 ​ 安装后配置项目构建后操作:对应项目》配置》增加构建后操作。

 

配置好后重新构建项目就会在项目生成HTML Report目录,但是查看这个报告后你会发现html报告在jenkins上显示没有那么美观,那是因为少了html里面的css和js,因为jenkins是默认会禁掉css和js。

​ 解决办法:

​ 在jenkins管理》命令行终端(Script Console),输入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "script-src 'unsafe-inline'"),点击【运行】就好了(记住重启jenkins后,就会恢复默认设置,需要重新配置)。

六、Jenkins定时任务

​ 顾名思义,就是定时去执行项目。配置位置:对应项目》配置》构建触发器》定时构建(Build Periodically)。

​ 定时规则分为5个部分:分钟、小时、每月的日子、月份、星期,每个部分需要用空格隔开,*代表所有,如果是5个*意思就是每分钟执行一次,再举例30 8 * * 1,意思就是每周一上午8点30分执行一次。每次输入定时规则时,下方会有提示说明,以及上一次运行时间、下一次运行的时间。

​ 每个部分还可以设置其他的值,详情可查看提示了解。

 

七、Jenkins构建触发器

​ 实际有可能我们运行项目不是一定要定时去执行的,可能开发每次一发版我们就要执行构建一遍来观察开发的新代码是否会有问题,那我们就可以配置一个构建触发器。

​ 配置位置:对应项目》配置》构建触发器》其他工程构建后触发(Build after other projects are build),输入对应的项目名称,选择“构建稳定时触发”,意思就是我的测试脚本项目在另一个项目(test项目,这里指开发的项目)部署构建完成后没有出现问题了才触发构建我的测试脚本项目。

​ 也就是说,每一次开发发版成功后就会构建一遍我的测试脚本项目。完美

 

八、Jenkins汉化

​ 设置中文显示的两个插件:

然后在jenkins管理》系统配置》Locale,配置显示中文: 

如果配置后出现半英文半中文,可以先设置为zh_EN(英文),然后重启jenkins,再重新设置为zh_CN(中文简体)即可。重启jenkins,可以直接在浏览器输入:http://localhost:8080/restart ,如果不是8080端口就替换成你设置的端口。

总结

本篇文章就到这里了哟有喜欢的小伙伴可以点赞收藏评论加关注哟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/591044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

I.MX RT1170加密启动详解(2):Authenticated HAB认证原理

文章目录 1 基础2 使能过程3 Boot flow 1 基础 HAB认证是基于RSA或ECDSA算法的公钥密码学,它用一系列的私钥对image进行加密,然后BootROM在上电后用对应的公钥验证加密的镜像是否被修改。这个密钥结构就是PKI(Public Key Infrastructure)树 (1)normal …

chatgpt赋能python:Python中画笔颜色的函数介绍

Python中画笔颜色的函数介绍 在Python中,我们可以使用turtle模块来绘制图形,其中画笔颜色是非常重要的一部分。画笔颜色可以决定图形的风格和色调,是图形表现的关键因素之一。Python中提供了几种方法来设置画笔颜色。 1. 设置画笔颜色的函数…

ENU、EPSG坐标系科普(三维重建)

ENU和EPSG实际上代表了两个不同的概念,这两者并不是直接对比的。 1. ENU坐标系:ENU坐标系是一种本地切面坐标系,用于表示与地理位置相关的空间数据。在ENU坐标系中,E代表东(East),N代表北&…

RabbittMQ快速实战和集群架构

介绍对比: Kafka:topic不能太多,一个缺点,影响Kafka的吞吐量 集群搭建:【单个也是一个集群(特殊)】 集群搭建:https://blog.csdn.net/p393975269/article/details/129830252 1:默认…

【明解STM32】中断系统理论基础知识篇之中断寄存器功能原理

目录 一、前言 二、寄存器概述 三、NVIC寄存器组 四、SCB寄存器组 五、中断屏蔽寄存器组 六、总结 一、前言 在之前的STM32的中断系统理论基础知识之基本原理及NVIC中,分别中断的基本原理,中断的管理机制和中断的处理流程进行了较为详细的论述&…

SOLIDWORKS钣金成形工具

SOLIDWORKS钣金成形工具主要用来创建使用冲制或压印制作的钣金特征。成形工具的工作原理是:几何体代表冲制或压印形成的凹陷区域,停止面是指工具要被应用到的钣金面,也可以定义移除面,若定义了移除面,则该面会形成通孔…

模拟人生打开显示找不到msvcp120.dll如何修复?msvcp120.dll是什么呢?

如果您在打开模拟人生游戏时遇到了msvcp120.dll文件丢失的错误信息,这可能是由于缺少Microsoft Visual C Redistributable for Visual Studio 2013软件包导致的。遇到这个情况不需要着急,只需要修复一下就可以。msvcp120.dll如何修复?下面就把…

黑马Redis视频教程实战篇(二)

目录 一、什么是缓存? 1.1 为什么要使用缓存? 1.2 如何使用缓存? 二、添加商户缓存 2.1 缓存模型和思路 2.2 代码实现 三、缓存更新策略 2.1 数据库缓存不一致解决方案 2.2 数据库和缓存不一致采用什么方案 四、实现商铺和缓存与数…

SAP-MM发票校验过账到总账

一.概念 SAP的MIRO发票校验,通常是参照采购订单(PO)生成,但有时会收到无PO参考的发票,例如供应商的运费、质检费等,这些不想过帐到发票项目的物料或成本科目,那么可以过帐到某个总账…

kong网关启用jwt认证插件

认证流程: 1、创建一个用户 2、生成jwt的所需要的key和密钥 3、在https://jwt.io/的生成jwt token 4、启用jwt插件 5、发送请求的时候携带jwt的token信息 官方指导:https://docs.konghq.com/hub/kong-inc/jwt/configuration/examples/ 一、创建一个新的…

深蓝学院C++基础笔记 第 0 章 C++介绍

一、什么是C 1、c 是一门比较流行的编程语言 \qquad ●https://www.tiobe.com/tiobe-index/2、c是C 语言的扩展 ● 更加关注性能 \qquad ● 与底层硬件紧密结合 \qquad \qquad java和python等语相对来说更加关注易用性。 \qquad ● 对象生命周期的精确控制 \qquad \qqua…

冒泡排序小练习(接收键盘录入、拆分、转整、冒泡递减排序、输出)

接收键盘录入(含输入字符串排错)字符串,拆分、转整、冒泡排序(递减)输出。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址…

unity3d 中场景不显示了

应该是把Layers下面的Nothing打开了

Java学习路线(18)——File、递归、字符集和IO流(上)

一、文件 (1)概述 File类在java.io.File下,代表操作系统的文件对象(文件、文件夹)File类提供诸如:定位文件,获取文件信息,删除文件,创建文件等操作 (2&…

大数据Doris(三十):Broker Load导入HDFS数据时进行数据过滤

文章目录 Broker Load导入HDFS数据时进行数据过滤 一、创建Doris表 二、准备HDFS数据

使用Axios前后端交互(超详细)建议点赞收藏

1、安装axios 将目录切换到当前项目目录下,执行下面安装命令: npm install --save axios vue-axios 2、将axios挂载到vue实例上或则直接导入组件中 在mian.js中做如下配置,可将axios挂载到vue实例上: import axios from axios…

HNU-电子测试平台与工具2-基于485总线的评分系统

基于485总线的评分系统实验报告 计科210X wolf 202108010XXX 同组成员:wolf、DragonKing、Eliak 验收分数:90 1 实验项目 1.1 项目名称 基于485总线的评分系统 1.2 实验目的 通过本案例加深理解RS485通信方式,实现上位机的主控制器与所有的下位机进行通信。 1.3 实…

高完整性系统:Invariants

目录 1. INVARIANTS 1.1 例子 1.2 正式的证明 1. INVARIANTS 一个不变式需要满足以下三个属性: 当循环开始时,不变式是正确的在每一次循环迭代之后,不变式仍然是正确的当循环条件为假时,不变式能推出循环结束后的条件&#x…

逻辑漏洞学习-身份验证漏洞

逻辑漏洞就是程序在实现业务逻辑上存在的错误,辑漏洞的出现通常是因为程序在设计业务逻辑时考虑不够全面,或者程序员的思维过程存在瑕疵,没有充分考虑到各种可能的情况 大部分程序员在设计的时候,目标是实现功能需求,…

华为OD机试真题B卷 Java 实现【计算数组中心位置】,附详细解题思路

一、题目描述 给你一个整数数组 nums,请计算数组的中心位置,数组的中心位置是数组的一个下标,其左侧所有元素相乘的积等于右侧所有元素相的积。 数组第一个元素的左侧积为 1,最后一个元素的右侧积为 1。如果数组有多个中心位置&…