【测试】持续集成CI/CD
近期更新完毕,建议关注收藏点赞~
目录
- 概括
- git
- Jenkins
- postman集成jenkins
- 代码集成jenkins
概括
CI/CD stands for Continuous Integration and Continuous Deployment
- 定义
团队成果持续集成到公共平台。一天可以集成1次or多次
本地代码管理 git
远程代码管理 gitee(国内),github,gitlib(公司私有服务器)
持续集成 jenkins
git
- git配置用户名和邮箱
本地管理代码
git config --global user.email "xx@email.com"
git config --global user.name "username(可任意写,不可用中文)"
#设置成功后没有成功信息提示
git安装目录

- gitee
线上集成平台 -
- pull下来线上项目
pycharm->最顶部tab栏VCS(如果是Git则表示该项目正在被git管理中)->get from/check out version control->

仓库名直接决定了这个目录项目名叫什么。
- pull下来线上项目
-
- push上去新项目
VCS->share project on gitee
如果打开了两个项目,只推排第一个项目,应保持只打开一个项目
log in to gitee授予pycharm权限登陆gitee

- push上去新项目
- 更新push到远程仓库
前提:是Git项目
整体流程为add->commit->push
右键点击项目名->git->先添加后提交->必填描述->提交完成后同样的地方点击推送

- 仓库更新的代码pull到本地
指的是相同的项目,线上代码做了更新。
右键点击项目名->git->拉取 - 解决冲突
本地和线上的某一处代码各有不同的更新,不同步。

点击merge->merge->讨论到底选谁的版本

出现上述的提示,先拉取远端版本,重新提交之前更新内容。 -
- 如何避免冲突:先pull,(更新代码),再push
Jenkins
- java编写的,必须安装JDK (JAVA SE8)自动装下面两个环境
jdk java开发环境
jre java运行环境
java -version
Windows需要配置环境变量
系统变量->java\jdk1.8.x_xx\bin
- 安装Jenkins
注意必须安装到用户主目录下,且只有一个.jenkins/目录,不允许两层.jenkins嵌套
创建一个层级不深的目录,放入jenkins.war,便于启动方便
java -jar jenkins.war
#注意不要用鼠标点击终端内部;使用jenkins过程中不能关闭终端,否则服务终止
java -jar jenkins.war --httpPort=8889
浏览器中输入http://localhost:8080 不要勾选保持登陆状态
默认用户名密码是admin 123456
如果长时间访问失效,关闭终端,更换端口重新启动服务。
jenkins左边菜单栏->manage jenkins->manage plugins->可选插件->插件名称html publisher 这个必须安装
- 配置系统邮箱
登陆163邮箱->设置->POP3/SMTP/IMAP->开启
启动jenkins服务器,http://localhost:8080进入,
左侧边栏->manage jenkins->configure system进入系统配置界面->Jenkins location将邮箱地址改成自己的163邮箱
->下拉页面,找到extended email notification->高级->username填邮箱,password写163邮箱授权码
->下拉到底部,邮箱通知->高级->同样填入用户名和密码(依然是授权码)->保存
postman集成jenkins
- 打开已完成且测试无误的postman项目,再次执行测试
- 导出测试用例集、环境变量两个文件,不支持中文,需要全部改成英文
- 终端打开,执行无误,查看newman生成的测试报告文件
#注意是htmlextra 不是html 多年之前已经停止维护了
newman run 测试集文件 -e 环境变量文件 -d 测试数据文件 -r htmlextra --reporter-htmlextra-export report.html
#run xx.json 执行测试集文件
#-r 生成测试报告类型
#--reporter-html-export path存放路径
# -d -e是非必需的
- 使用jenkins管理 手动构建
jenkins->新建item->freestyle project->创建成功,
进入该项目->构建->增加构建步骤->windows选execute windows batch command,mac选execute shell->在这框中加入刚刚能成功运行的newman命令
->增加“构建后操作”->选publish html reports->新增reports,这里面的index pages中的.html文件命名应当与newman命令中生成的.html名一致->应用+保存
进入该项目,左侧边栏出现build now点击就可以出现测试报告,如果有失败测试用例,本次build最前面的图标为红色
点击构建好的结果,进入页面->控制台输出,可以看到execute设置的命令(这里就是newman run)执行过程的调试信息
如何找到这个生成的测试报告?点击工程项目页左边边栏会出现生成的测试报告title
- 使用jenkins管理 自动构建
设置定时,时间到则jenkins自动执行测试用例+build。
配置-> 构建触发器 ->build periodically-> 日程表【格式:分 时 日 月 年,不指定的就用*代替,如40 16 * * *表示每天16:40执行】 - 报告显示不正常的原因
jenkins避免受到恶意攻击,设置安全策略CSP,只允许加载jenkins服务器上托管的css文件和图片文件。如果不担心被恶意攻击,可以绕过安全策略。
#启动时添加一个参数即可
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar Jenkins.war
#启动之后之前生成的报告还是原样,新生成的报告会有变化
代码集成jenkins
- 前提:将无问题的项目代码上传到gitee/github
-手动构建
步骤:跟之前的步骤差不多,这里只提不同的地方:
构建->源码管理->Git->添加仓库URL
构建->增加构建步骤->命令改成python run_suite.py (项目全局执行入口文件)
->“构建后操作”增加,同样index pages里面.html名称要跟run_suite.py里的.html命名相同;项目代码中要求报告放在/report目录下,则HTML directory to archive 填写report(目录名)
->继续增加构建后操作步骤,editable email notification。project recipient list直接在默认后面加逗号分隔符,放收件人的邮箱;content-type选择邮件内容类型;default content设置邮件内容样式,可参考html格式模版;
->advanced settings,triggers如果默认设置不采用点击右上角红叉❌,add trigger->always成功失败都发送
后续同理,点击build now就完成了手动构建
- 自动构建
-
- 生成报告触发器 :同样,配置->构建触发器 build periodically
-
- 另一种触发器,检查gitee上的代码是否有更新
配置->构建触发器->poll SCM->也是5个*的设置多久检查一次,数字前面加’/'表示隔多久检查一次,如*/1 * * * *表示每1分钟检查一次
只要代码发生变化,到时间build history就会增加一条
- 另一种触发器,检查gitee上的代码是否有更新
相关文章:
【测试】持续集成CI/CD
近期更新完毕,建议关注收藏点赞~ 目录 概括gitJenkinspostman集成jenkins代码集成jenkins 概括 CI/CD stands for Continuous Integration and Continuous Deployment 定义 团队成果持续集成到公共平台。一天可以集成1次or多次 本地代码管理 git 远程代…...
阿里云直播Web
官方文档:Web播放器SDK常见问题_视频点播(VOD)-阿里云帮助中心 bug:播流的不稳定,直播总会进入 onM3u8Retry 监听,用户端就会黑屏,(但其实并没有关播,正常关播进入的是pause这个监听࿰…...
DuckDB:PRAGMA语句动态配置数据库行为
PRAGMA语句是DuckDB从SQLite中采用的SQL扩展。PRAGMA命令可能会改变数据库引擎的内部状态,并可能影响引擎的后续执行或行为。本文介绍PRAGMA命令及其典型应用场景。 DuckDB PRAGMA介绍 在 DuckDB 中,PRAGMA 是一种编译指示(compiler directi…...
GO通过SMTP协议发送邮件
什么是SMTP协议 SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是用于发送邮件的协议。当一个邮件服务器需要发送邮件给另一个邮件服务器时,它会使用SMTP协议与目标服务器建立连接,并传输邮件内容。SMTP协议的…...
轻量自高斯注意力机制LSGAttention模型详解及代码复现
模型背景 近年来,卷积神经网络(CNN)在高光谱图像分类领域取得了显著进展。然而,CNN面临 长距离关系建模 和 计算成本 增加的挑战。为解决这些问题,研究人员提出了基于 轻量自高斯注意(Light Self-Gaussian-Attention, LSGA) 机制的视觉转换器(Vision Transformer, VIT),旨…...
解读若依框架中的`@Excel` 和 `@Excels` 注解
文章目录 一、Excels 注解详解1.1 适用场景1.2 作用与好处 二、Excel 注解详解2.1 核心属性解析2.2 高级用法2.3 综合应用案例 三、总结 解读若依框架中的 Xss 注解博客:解读若依框架中的 Xss 注解 接下来我们将对若依框架中的 Excel 和 Excels 注解进行更加详细的…...
云商城--基础数据处理和分布式文件存储
第2章 基础数据处理和分布式文件存储 1.分布式文件存储系统Ceph学习 1).掌握Ceph架构 2).掌握Ceph组件 3).搭建Ceph集群(了解) 2.Ceph使用 1).基于Ceph实现文件上传 2).基于Ceph实现文件下载 3.SKU、SPU管理 1).掌握SKU和SPU关系 2).理解商品发…...
六十九:基于openssl实战验证RSA
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,广泛应用于数据加密和数字签名领域。在实际开发和学习过程中,理解 RSA 的工作原理和使用场景非常重要。本文将以 OpenSSL 工具为基础,通过实例操作来验证和理解 RSA 的…...
Three.js 用户交互:构建沉浸式3D体验的关键
文章目录 前言一、基本交互:鼠标与触摸事件二、高级交互:键盘控制与游戏手柄支持三、物理模拟与碰撞检测四、手势识别与多点触控五、增强现实(AR)与虚拟现实(VR)六、触觉反馈与震动效果七、语音控制八、眼球…...
Android车机DIY开发之学习篇(五)默认应用修改
Android车机DIY开发之学习篇(五)默认应用修改 android默认应用位置 sdk/packages/apps InitRC配置 应用安装的目录 /system/priv-app 该路径存放一些系统底层的应用,比如Setting,systemUI等。该目录中的app拥有较高的系统权限,而且如果要使…...
linux 设置mysql 外网访问
1、修改 MySQL 配置文件 找到并编辑配置文件:在Linux系统中,MySQL的配置文件通常是/etc/mysql/my.cnf,使用命令sudo vim /etc/mysql/my.cnf打开文件。 注释或修改 bindaddress:找到bindaddress 127.0.0.1,将其注释掉…...
SQL UNION 操作符
SQL UNION 操作符 SQL UNION 操作符用于合并两个或多个 SELECT 语句的结果集。它将多个结果集组合成一个单独的结果集,并去除重复的行。为了使用 UNION,每个 SELECT 语句必须具有相同的列数,并且对应列的数据类型必须兼容。 语法 SELECT c…...
c++ 17 constexpr
未来已来:从SFINAE到concepts #include <type_traits> #include <vector> #include <list> #include <iostream> // 一个通用的容器打印函数,支持任何带 begin()/end() 的容器 template<typename Container> …...
Java QueryWrapper groupBy自定义字段,以及List<Map>转List<Entity>
Java queryWrapper groupby自定义字段 String sql "data_id,(select value from lz_html a where a.data_id lz_html.data_id and class_nametest-item-status) status," "(select value from lz_html a where a.data_id lz_html.data_id and class_nametes…...
【Rust自学】11.7. 按测试的名称运行测试
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.7.1. 按名称运行测试的子集 如果想要选择运行的测试,就将测试的名称(一个或多个)作为cargo test的…...
Git:Cherry-Pick 的使用场景及使用流程
前面我们说了 Git合并、解决冲突、强行回退等解决方案 >> 点击查看 这里再说一下 Cherry-Pick功能,Cherry-Pick不是merge,只是把部分功能代码Cherry-Pick到远程的目标分支 git cherry-pick功能简介: git cherry-pick 是用来从一个分…...
Ubuntu 24.04 LTS系统安装Docker踩的坑
一开始我跟着Docker给出的官网文档 Ubuntu | Docker Docs 流程走,倒腾了两个多小时,遇到了各种坑,最后放弃了。在我们使用脚本安装Docker命令前,我们先把已经安装的Docker全部卸载掉。 卸载Docker 1.删除docker及安装时自动安装…...
工作生活的感悟
前言 这篇博客基本每年都更新,每年都有新的感悟,作为一个记录吧!以后按照年来记录 2022年 不经意间,已在职场耕耘数载,特此记录以作回顾。 无用之用,方为大用: 年岁渐长,愈发体会…...
NCCL学习笔记-函数解析
前言 1.NCCL 是一个专注于 GPU 间高性能通信的库,不提供进程管理或安全通信功能。 2.用户需要依赖应用程序的进程管理系统(如 MPI)来管理进程,并确保 NCCL 在安全的网络环境中运行。 3.通过正确配置环境变量(如 NCCL_…...
windows系统如何将基座大模型私有化部署
1.windows10系统 安装npm、node、 git 最新版本 安装vmware虚拟机 内存8GB以上 双核4线程 2.vmware虚拟机 安装ubuntu系统 22.04版本 3.进入ubuntu系统 3.1 安装Ollama 基座大模型工具 在命令行中执行 curl -fsSL https://ollama.com/install.sh | sh 浏览器打开 …...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
