当前位置: 首页 > news >正文

Jenkins+Python自动化测试持续集成详细教程(全网独家)

目录

一、前言

二、环境准备

三、创建Jenkins Job

四、编写Python自动化测试脚本

五、测试报告生成与展示

六、持续集成流程优化

七、实战演练

八、常见问题及解决方案

九、结论


一、前言

Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术栈,如Java、Python、JavaScript等。本文将介绍如何使用Jenkins和Python实现自动化测试持续集成。

二、环境准备

在开始之前,需要先准备好以下环境:

  1. Jenkins服务器:Jenkins是一个开源软件,可以免费下载并安装在服务器上。

  2. Python环境:本文使用Python 3.x进行自动化测试脚本编写。

  3. 测试框架:本文使用unittest作为测试框架,也可以选择其他测试框架,如pytest等。

  4. 应用程序:需要有需要进行自动化测试的应用程序,并确保应用程序能够正常运行。

            python自动化测试视频教程:2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

                   

 

三、创建Jenkins Job

在Jenkins中创建Job是实现自动化测试持续集成的第一步。以下是创建Jenkins Job的步骤:

  1. 登录Jenkins服务器,并点击“新建任务”。

  2. 输入任务名称,并选择“自由风格”的项目类型。

  3. 在“源代码管理”下,选择版本控制系统(VCS)类型,并输入相关配置信息。本文使用Git作为VCS,需要配置Git仓库地址和分支。

  4. 在“构建触发器”下,选择需要触发自动化测试的事件,如源代码提交或定时构建等。本文选择“SCM变更触发”选项。

  5. 在“构建”下,选择执行自动化测试的脚本。本文使用Python进行自动化测试,需要安装Python插件,并在“构建环境”中添加Python环境变量。

  6. 保存Jenkins Job配置,并开始构建。

四、编写Python自动化测试脚本

在Jenkins Job中执行Python自动化测试脚本是实现自动化测试持续集成的核心部分。以下是编写Python自动化测试脚本的步骤:

  1. 安装必要的Python库:unittest、selenium等。可以使用pip命令安装。

  2. 导入所需的库和文件:unittest、selenium、测试用例等。

  3. 编写测试用例:使用unittest框架编写测试用例,并使用selenium库实现自动化测试操作。

  4. 创建测试套件:将多个测试用例组合成一个测试套件,并指定测试用例执行顺序。

  5. 执行测试:使用unittest框架的运行器(runner)来执行测试套件,并生成测试报告。

五、测试报告生成与展示

在Jenkins中查看测试结果和测试报告是实现自动化测试持续集成的最后一步。以下是测试报告生成与展示的步骤:

  1. 将测试结果保存到JUnit XML格式的文件中:使用unittest框架提供的XMLTestRunner类,将测试结果输出到JUnit XML文件中。

  2. 配置Jenkins Job生成测试报告:在Jenkins Job中添加“Post-build Actions”,选择“Publish JUnit test result report”选项,并指定JUnit XML文件路径。

  3. 查看测试结果和测试报告:在Jenkins Job页面上,点击“最后一次构建”的“Test Result”标签页,即可查看测试结果和测试报告。

六、持续集成流程优化

在实际应用中,还可以通过以下方式来优化自动化测试持续集成流程:

  1. 集成代码静态分析工具:如pylint、flake8等,可以在提交代码时进行代码质量检测。

  2. 集成自动化部署工具:如Ansible、Docker等,可以将测试通过的代码自动部署到生产环境中。

  3. 集成自动化性能测试工具:如JMeter、Locust等,可以对应用程序进行性能测试,并自动化集成到Jenkins中。

  4. 集成代码覆盖率工具:如coverage、codecov等,可以在测试过程中计算代码覆盖率,并生成相应的报告。

  5. 集成持续监控工具:如New Relic、AppDynamics等,可以实时监测应用程序的性能和健康状况,及时发现并解决问题。

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0                        

七、实战演练

为了更好地了解Jenkins和Python自动化测试持续集成的实现过程,我们可以通过一个简单的实例来进行演练。下面是实战演练的步骤:

  1. 安装Jenkins服务器:可以在Jenkins官网(下载最新版的Jenkins软件按照安装步骤进行安装。

  2. 配置Jenkins环境:在Jenkins中安装必要的插件,如Git插件、Python插件等,并配置全局环境变量,如Python路径等。

  3. 创建Jenkins Job:在Jenkins中创建一个新的Job,命名为“Python自动化测试”,选择“自由风格”的项目类型,并配置相关选项,如源代码管理、构建触发器、构建环境等。

  4. 编写Python自动化测试脚本:在本地开发环境中编写Python自动化测试脚本,使用unittest框架编写测试用例,使用selenium库实现自动化测试操作,并生成JUnit XML格式的测试结果文件。

  5. 提交代码到Git仓库:将本地开发环境中的Python自动化测试脚本提交到Git仓库中,并确保Jenkins Job能够访问到Git仓库。

  6. 开始构建Jenkins Job:在Jenkins中开始构建“Python自动化测试”Job,并等待构建完成。

  7. 查看测试结果和测试报告:在Jenkins Job页面上,点击“最后一次构建”的“Test Result”标签页,即可查看测试结果和测试报告。

以上是一个简单的实战演练,通过实践可以更深入地理解Jenkins和Python自动化测试持续集成的实现过程。

八、常见问题及解决方案

在使用Jenkins和Python进行自动化测试持续集成的过程中,可能会遇到一些常见问题,下面是一些解决方案:

  1. Jenkins无法访问Git仓库:需要确保Jenkins服务器能够访问到Git仓库,并且配置了正确的Git仓库地址和凭证。

  2. Python环境变量配置错误:需要确保在Jenkins Job中添加了Python环境变量,并设置了正确的Python路径等信息。

  3. 测试用例执行失败:需要检查测试用例的编写是否符合要求,并确保应用程序能够正常运行。

  4. 测试报告生成失败:需要检查JUnit XML文件输出路径是否正确,并确保JUnit XML格式正确。

九、结论

本文介绍了使用Jenkins和Python进行自动化测试持续集成的流程和步骤,包括创建Jenkins Job、编写Python自动化测试脚本、测试报告生成与展示以及持续集成流程优化。通过自动化测试持续集成,可以提高测试效率和质量,并减少测试成本和时间。同时,还可以优化持续集成流程,提高软件开发和交付的效率和质量。希望本文能够对读者有所帮助。

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibiliicon-default.png?t=N3I4https://www.bilibili.com/video/BV1AF411T7qJ/?spm_id_from=333.999.0.0

 

 

相关文章:

Jenkins+Python自动化测试持续集成详细教程(全网独家)

目录 一、前言 二、环境准备 三、创建Jenkins Job 四、编写Python自动化测试脚本 五、测试报告生成与展示 六、持续集成流程优化 七、实战演练 八、常见问题及解决方案 九、结论 一、前言 Jenkins是目前最为流行的CI/CD工具之一,它可以支持多种语言和技术…...

运维监控工具PIGOSS BSM扩展指标介绍

PIGOSS BSM运维监控工具,除系统自带指标外,还支持添加SNMP扩展指标、脚本扩展指标、JMX扩展指标、自定义JDBC指标等,今天本文将介绍如何添加SNMP扩展指标和脚本扩展指标。 添加SNMP扩展指标 前提:需要知道指标的oid 例子&#xff…...

一些前端问题2

1.业务场景中需要嵌入公司其他行业线的页面,这种不使用 iframe 该怎么办? 答:理论上应该让他们给你做个组件出来,但是如果实在没别的办法,就使用 iframe 吧。 2.jquery ajax 同步请求的原理是? 目前用 axios 库&…...

Moviepy模块之视频添加图片水印

文章目录 前言视频添加图片水印1.引入库2.加载视频文件3.加载水印图片4.缩放水印图片大小5.设置水印的位置5.1 相对于视频的左上角5.2 相对于视频的左下角5.3 相对于视频的右上角5.4 相对于视频的右下角5.5 相对于视频的左中位置5.6 相对于视频的正中位置5.7 相对于视频的右中位…...

day35—编程题

文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题 1.1题目 描述: 今年公司年会的奖品特别给力,但获奖的规矩却很奇葩: 首先,所有人员都将一张写有自己名字的字条放入抽奖箱中;待所有…...

Linux安装Nginx

前言 提示:这里可以添加本文要记录的大概内容: Linux安装Nginx的详细步骤。 一、安装Nginx的相关依赖 1、安装gcc,PCRE pcre-devel,zlib,OpenSSL, 提示:安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。 PCRE(…...

Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法

错误 在mingw生成的项目,转换为VS编译器时通常会报些以下错误(C4819警告,C2001错误,C2143错误) 原因及解决方式 这一般是由于字符编码引起的,在源代码文件中包含了中文字符导致的。Qt Creator 生成的代码文…...

大学生用什么蓝牙耳机好?2023好用的蓝牙耳机推荐

近几年,蓝牙耳机市场不断扩大,逐渐取代有线耳机成为最受人欢迎的数码产品之一。作为蓝牙耳机主要受众群的大学生,用什么蓝牙耳机比较好呢?下面,我来给大家推荐几款便宜好用的蓝牙耳机,一起来看看吧。 一、…...

【好题】好题分享

1001-四舍五入_牛客竞赛语法入门班数组模拟、枚举、贪心习题 (nowcoder.com) 题目描述 四舍五入是个好东西。比如你只考了45分,四舍五入后你是50分再四舍五入你就是满分啦!qdgg刚考完拓扑。成绩十分不理想。但老师觉得他每天都很认真的听课很不容易。于是…...

three.js 怎么在自动缩放的时候添加动画效果

要在自动缩放的时候添加动画效果可以使用three.js中的Tween.js库。Tween.js提供了一种简单的方式来创建和管理动画,它可以让开发者通过简单的API来控制对象的属性变化,从而实现动画效果。 以下是一个使用Tween.js实现模型缩放动画的示例: 加…...

考虑梯水电站群的水火电节能调度(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

CF914G Sum the Fibonacci

CF914G Sum the Fibonacci 洛谷Sum the Fibonacci 题目大意 给你一个长度为 n n n的数组 s s s,定义五元组 ( a , b , c , d , e ) (a,b,c,d,e) (a,b,c,d,e)是合法的当且仅当: 1 ≤ a , b , c , d , e ≤ n 1\leq a,b,c,d,e\leq n 1≤a,b,c,d,e≤n ( …...

Shell基础入门实战

写在前面 好久没在项目内做自动化了,主要是现阶段在项目内做自动化收益不大,最近开发做batch run的正好缺人,我看了一下代码,就是通过代码读取jar包和远程服务器连接,然后通过shell脚本,向数据库插入数据&a…...

如何进行微服务的技术选型?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"! 作者:陈于吉吉|慕课网讲师 随着这几年微服务的火爆,在平时的工作或者技术交流中,我们总能听到哪家公…...

Vue电商项目--应用开发详解

vue-cli脚手架初始化项目 首先,页面上新建一个文件夹。然后打开命令端口 vue create app 选择Default ([Vue 2] babel, eslint) 然后把项目拖拽到vscode中。项目目录看一下 脚手架项目的目录 node_modules:放置项目依赖的地方 public:一般放置一些共用的静态资源&a…...

Lvs负载均衡

系列文章目录 文章目录 系列文章目录一、集群1.集群2. 二、LVS1.LVS简介2.负载均衡的结构3.Lvs调度算法 总结 一、集群 1.集群 集群群集 cluster由多台主机构成的一个整体,提供一个放问入口(IP或域名),集群中的多台主机都干一件事提供一样的服务 负载均…...

JAVAWeb08-手动实现 Tomcat 底层机制+ 自己设计 Servlet

1. 前言 先看一个小案例, 引出对 Tomcat 底层实现思考 1.1 完成小案例 ● 快速给小伙伴完成这个小案例 0. 我们准备使用 Maven 来创建一个 WEB 项目, 老师先简单给小伙伴介绍一下 Maven 是什么, 更加详细的使用,我们还会细讲, 现在先使用一把 先创建…...

非监督学习简单介绍

文章目录 非监督学习简单介绍聚类K-meansHierarchical聚类DBSCAN 降维PCAt-SNE 其他非监督学习技术结论 非监督学习简单介绍 非监督学习是机器学习中的一种方法,其目标是基于数据的内在结构和关系,从而在无标签数据中识别样本的潜在结构和模式。非监督学…...

香港科技大学有什么好的专业?

香港科技大学创办于1991年10月,是一所坐落于香港清水湾半岛的公立研究型大学。大学设有4个学院:工学院、理学院、人文社会科学学院和工商管理学院,还设有2个研究院:香港科技大学公共政策和行政研究生院和香港科技大学霍英东研究院…...

【两个月算法速成】day04

本文以收录专题刷题记录 目录 24. 两两交换链表中的节点 题目链接 思路 代码 19. 删除链表的倒数第 N 个结点 题目链接 思路-双指针 代码 面试题 02.07. 链表相交 题目链接 思路 代码 24. 两两交换链表中的节点 题目链接 力扣 思路 建议使用虚拟节点&#xff0…...

React Native 导航系统实战(React Navigation)

导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...