Jenkins 持续集成 【CICD】

持续集成 (Continuous integration,简称CI)

持续集成是一种开发实践,它倡导团队成员频繁的集成他们的工作,每次集成都通过自动化构建(包括编译、构建、打包、部署、自动化测试)来验证,从而尽快地发现集成中的错误。让产品可以快速迭代,同时还能保持高质量。

Jenkins是基于Java开发的持续集成工具,开源免费,官网:https://jenkins.io/

在这里插入图片描述
测试常用的场景: 使用Jenkins实现自动化的持续集成测试,达到无人值守测试的境界。【释放人力 7 *24】

  • 代码提交给Jenkins
  • Jenkins做好定时任务: 持续构建执行
  • 构建完成后把测试报告发送邮箱,查看结果,定位分析问题。
    【allure报告】

一、安装和配置Jenkins【依赖java环境:安装Java环境-JDK】

安装Java环境-JDK

1、电脑安装好jdk,配置环境变量;

  • 在系统变量中添加JAVA_HOME,对应的值是jdk的安装路径 【】
  • 在系统变量path里面,追加%JAVA_HOME%\bin
  • 在命令行模式下,输入:java -version

安装Jenkins

2、【免安装Jenkins】-安装包里面有安装好了所需要的插件+组件,Jenkins默认访问外网的,建议大家使用我的Jenkins免安装版本

  • windows下启动 D:\apache-tomcat-8.5.43\bin 点击 startup.bat
    • jenkins运行时,这个脚本框要一直启动着
  • 访问jenkins地址(本地回环地址)
    • http://localhost:8080/jenkins/http://127.0.0.1:8080/jenkins/

注意:学习的阶段,Jenkins部署在本地的,只能在我的局域网内部访问;
真实的工作中,Jenkins部署在公司的服务器里面,外网访问公司里面,会由开发/运维会提前帮你部署的,不需要你部署的。

  • 登录: 默认用户名:admin
  • 初始密码:
    • C:\Users\Administrator.jenkins\secrets\initialAdminPassword 获取

配置Jenkins

3、Jenkins里配置jdk和git、allure、邮箱等
进入Manage Jenkins -> Configure System:
1)配置系统管理员邮箱地址:
在这里插入图片描述
2)配置Extended E-mail Notification:
常见邮箱服务地址:https://blog.csdn.net/ning521513/article/details/79217203

在这里插入图片描述

这个SMTP服务密码:是一串如下的随机码,请逐字输入:

在这里插入图片描述
3) 以类似的配置配置Email Notification:
在这里插入图片描述
4)点击测试邮件配置是否OK。
在这里插入图片描述

Jenkins在运行中需要使用各种工具环境,包括JDK、Git、Allure等,我们需要在Jenkins所在主机关联配置这些工具。

1、jdk配置:manager Jenkins > Global Tool Configuration >
在这里插入图片描述
2、git的配置: 前提你的系统环境变量里配置好了git环境变量。【path里配置了git的环境变量】
在这里插入图片描述
3、allure的配置:
在这里插入图片描述
注意:如果没有这个配置,需要去安装对应的插件。manager Jenkins >Manger Plugins>可选插件 ,搜索allure 安装即可。
在这里插入图片描述

以上准备工作做好之后,我们可以开始配置Jenkins做自动化项目的持续集成了。
二:Jenkins新建工程
1、新建Item
2、输入一个任务名称 ---- 建议尽量英文/数字形式
3、点击选中 Freestyle project
4、点击【确定】
在这里插入图片描述
此时,jenkins首页已经有了你刚创建的工程 (球是灰色–因为你没有构建过)
每个项目都有自己的工作区,是用来放代码的
在这里插入图片描述
在这里插入图片描述
添加凭据L:确保是gitee上可以登录成功的用户名和密码。
1)类型:Usernamewith password
2)用户名:gitee账户 3)密码:gitee密码
1、xxxx工作空间 —> 配置—>构建—>增加构建步骤
2、选择 Execute Windows batch command

在这里插入图片描述
3、输入命令 :如python main.py 或 python run.py
在这里插入图片描述
构建触发器【实现定时任务】–无人值守测试
xxxx工作空间 —> 配置—>构建触发器
在这里插入图片描述

2、定时构建: 点击日程表 右侧 ?
2、定时构建: 点击日程表 右侧 ?

* * * * *

分钟【0-59】 小时【0-23】 日【1-31】月【1-12】 周【0-7 】
1、每天的晚上八点钟执行代码: 0 20 * * *
2、每月的10号晚上0点执行: 0 0 10 * *、
3、每天晚上的八点10分到15分: 10-15 20 * * *
4、每间隔10分钟: */10 * * * *
5、每间隔1小时: * /1 * * *
6、前三十分钟内每间隔5分钟: 0-30/5 * * * *
7、每天的20,21,23点执行: 0 20,21,23 * * *
8、每周一-周五(工作日期间)间隔4小时执行自动化测试任务:
*/4 * * 1-5

在这里插入图片描述
也可以与其他的任务关联(Build after other projects are built)实际有可能我们运行项目不是一定要定时去执行的,可能开发每次发版我们就需要构建我们的自动化测试脚本,来测试开发的新代码是否存在问题。等到开发的Jenkins任务构建结束之后再开始构建我们的自动化测试任务

添加allure报告

xxxx工作空间 —> 配置—>构建后操作
添加allure report
添加完成后,每次构建完成后,都会生成allure的报告文件。
在这里插入图片描述
在这里插入图片描述
添加后再次构建就会出现allure报告。
在这里插入图片描述

构建后操作 -发送邮件

https://blog.csdn.net/Wjhsmart/article/details/109203361 查询邮箱smtp服务地址

工作空间 —> 配置—>构建后操作 -> Editable Email Notification
在这里插入图片描述
在这里插入图片描述
邮件内容HTML模板: 【直接复制即可】

项目名称:${PROJECT_NAME}<br><hr>
构建编号:${BUILD_NUMBER}<br><hr>
构建状态:${BUILD_STATUS}<br><hr>
触发原因:${CAUSE}<br><hr>
测试报告:<a href="${BUILD_URL}allure/">${BUILD_URL}allure/</a>
<br><hr>
邮件内容HTML模板: 【直接复制即可】
构建日志地址:<a
href="${BUILD_URL}console">${BUILD_URL}console/</a><br><hr>

allure报告定制

参考文章:testingpai.com/article/1595507295429
装饰器: 增强 扩展函数 和方法的功能。类装饰器 方法装饰器 --扩展类和方法的功能。 【测试开发】

1、定制测试用例的标题

# 第二步: pytest测试用例方法
@pytest.mark.p1
@allure.title("{data[用例标题]}") # 使用测试用例的excel的用例
标题描述每一条用例 更直观
@pytest.mark.parametrize("data",all_cases)
def test_cart_case(data): # 调用夹具resp = requests_api(data)expected = data["预期结果"] # 从excel读取预期结果db_assert = data["数据库断言"]response_assert(expected,resp)# 数据库断言database_assert(db_assert)

注意1:但是直接这样做完,这个标题显示格式错乱的。要优化可以如下操作:

  • 1、找到Python目录下: D:\Python39\Lib\sitepackages\allure_pytest\listener.py
  • 2、打开这个文件搜索: test_result.parameters.extend
  • 3、将对应的内容变成: test_result.parameters.extend([])
  • 4、重新运行run文件,生成allure报告。

2、定制测试套件名字

@allure.suite("购物车模块")

3、定制测试步骤

@allure.step("替换占位符变量")

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element-ui breadcrumb 组件源码分享

今日简单分享 breadcrumb 组件的源码实现&#xff0c;主要从以下三个方面&#xff1a; 1、breadcrumb 组件页面结构 2、breadcrumb 组件属性 3、breadcrumb 组件 slot 一、breadcrumb 组件页面结构 二、breadcrumb 组件属性 2.1 separator 属性&#xff0c;分隔符&#xff…

Web Animations API 动画

Element.animate() dom.animate动画可以避免污染dom原有的css动画 参考资料 Element.animate() - Web API 接口参考 | MDN Element: getAnimations() method - Web APIs | MDN .tunnel{width:200px;height:200px;background-color:#38f;}<div class"tunnel" …

DFS:深搜+回溯+剪枝解决组合问题

创作不易&#xff0c;感谢支持!!! 一、电话号码的组合 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:string hash[10]{"","","abc","def","ghi","jkl","mno","pqrs"…

[实验报告]--基于端口安全

[实验报告] 目录 [实验报告] 一、项目背景 二、实验环境 三、项目规划设计 四、项目实施 五、验证项目成果 基于端口安全的 Jan16 公司网络组建 一、项目背景 Jan16 公司开发部为重要部门&#xff0c;所有员工使用指定的计算机工作&#xff0c;为防止员工或访客使 用个…

chabot项目介绍

项目介绍 整体的目录如下所示&#xff1a; 上述的项目结构中出了model是必须的外&#xff0c;其他的都可以根据训练的代码参数传入进行调整&#xff0c;有些不需要一定存在data train.pkl:对原始训练语料进行tokenize之后的文件,存储一个list对象&#xff0c;list的每条数据表…

基于H2O AutoML与集成学习策略的房屋售价预测模型研究与实现

项目简述&#xff1a; 本项目采用H2O AutoML工具&#xff0c;针对加州房屋销售价格预测问题进行了深入研究与建模。项目以Kaggle提供的加州房屋 交易数据集为基础&#xff0c;通过数据清洗、特征工程、模型训练与评估等步骤&#xff0c;构建了一种基于集成学习策略的房价预测模…

好物视频素材在哪找?视频素材大全app下载

创作优质视频内容不仅仅是一种艺术&#xff0c;也是一种科学&#xff0c;需要对素材的深刻理解和精心挑选。掌握了这些高清无水印视频素材&#xff0c;您就拥有了创作引人入胜视频内容的强大工具。以下是更多精选的视频素材网站&#xff0c;旨在为您的视频项目提供更广阔的视野…

GDPU 竞赛技能实践 天码行空6

&#x1f4d6; 敌兵布阵 C国的死对头A国这段时间正在进行军事演习&#xff0c;所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段&#xff0c;所以每个工…

C++中二叉搜索树的模拟实现(二叉搜索树是map,set的底层原理)

搜索二叉树 定义 搜索二叉树:左子树小于根,右子树大于根.搜索二叉树的中序序列是升序的.所以对于二叉树而言,它的左子树和右子数都是二叉搜索树 下图就是二叉搜索树 二叉搜索树的性质: 二叉搜索树的中序遍历出的数据是有序的,并且二叉树搜索树在查找某个数的时候,一般情况下…

基于muduo网络库实现的集群聊天服务器

目录 项目内容开发环境安装说明技术介绍项目目录数据库设计项目介绍启动服务器启动客户端注册账号登录成功一对一聊天业务创建群聊业务加入群聊业务群聊业务添加好友业务离线消息存储业务 特殊说明Gitee地址 &#xff01;&#xff01;&#xff01;项目是照着腾讯课堂施磊老师的…

文件操作讲解

目录 一.为什么使用文件 二.什么是文件 2.1程序文件 2.2数据文件 2.3文件名 三.文本文件和二进制文件 fwrite函数 fclose函数 四.文件的打开和关闭 4.1流和标准流 4.2文件指针 4.3文件的打开和关闭 五.文件的顺序读写 5.1文件的顺序读写函数 5.1.1fgetc函数…

OpenCV-python安装教程

先安装opencv-contrib-python pip install opencv-contrib-python 再换源安装opencv-python pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 如果出现 使用这个&#xff0c;3.6环境下不能安装opencv的最新版本 pip install opencv-python4.5.5.62…