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

[持续集成]

学习目标

  • 能够使用 Git 代码托管平台管理代码
  • 能够实现 jenkins+postman 的持续集成
  • 能够实现 jenkins+代码 的持续集成

持续集成

  • 概念 : 将自己工作成果持续不断地把代码聚集在一起,成员可以每天集成一次或多次
  • 相关工具 :
    • git : 代码管理工具,自带本地仓库
    • gitee : 远程代码管理仓库,云端仓库,github是国外远程代码管理仓库,gitlab是企业私有服务器
    • jenkins : 实现持续集成,管理当前测试脚本,生成测试报告,发送邮件

Gitee

默认安装结束后,使用git --version查验
在这里插入图片描述

git config --global user.email  "自己邮箱@xxx.com"	//这里建议网易云邮箱
git config --global user.name  "用户名(可任意写,不允许中文)"
  • 简介 :
    • Git分布式版本控制系统,实现版本控制+多人协同
      在这里插入图片描述
    • 推送 :
      • add : 添加
      • commit : 提交
      • push : 推送
    • 拉取 :
      • pull
pycharm配置Gitee插件

在这里插入图片描述

pycharm与Gitee相关操作
将Gitee的项目checkout到Pycharm中
  • 应用场景 : 第一次从gitee下载代码到pycharm,本地pycharm中无此代码
  • 操作步骤

在这里插入图片描述
在这里插入图片描述

  • 点击clone

在这里插入图片描述
在这里插入图片描述

推送Pycharm新项目到Gitee远程仓库

在这里插入图片描述
在这里插入图片描述

  • 输入账号密码后点击share
  • 点击add
    在这里插入图片描述
  • 功能列表中VCS消失,项目转变为git接管
将Pycharm代码push到Gitee远程仓库(上图小矩形)
  1. 新增文件,自动弹窗,右键Demi–>Git–>Add在这里插入图片描述
  2. 点击Git–>Commit提交(此时commit提交到了本地仓库)
    1
  3. 确认被提交的文件选中
    步骤3
    选中文件
    在这里插入图片描述
    点击push后,进入gitee查看
    在这里插入图片描述
将Gitee仓库的新代码pull到Pycharm中
  • 新建一个文件
    在这里插入图片描述
  • 写入名称,内容点击提交
    在这里插入图片描述
  • 在pycharm中,右键git–>pull
    在这里插入图片描述
    在这里插入图片描述
  • 注:pull时会自动对比差距,导入新建的内容
冲突解决
  • 应用场景 : pycharm本地项目,已经被gitee管理,gitee上与本地对同一个文件,做了不同的修改,当本身push时,就会产生冲突!
  • 具体操作步骤
    • 在gitee的文件中做更改
    • 在pycharm中同名文件做更改,commit提交到本地仓库,再点击push
    • 提示,点击merge合并处理

在这里插入图片描述
在这里插入图片描述

  • 点击箭头会加入(左侧本地,中间合并结果,右侧gitee代码)
    在这里插入图片描述
  • 合并后push依旧提示拒绝推进
    在这里插入图片描述
    • 解决办法:将gitee中的版本2pull下来,再push就可以成功推送到gitee

小结: 使用git的习惯,先pull再push

Jenkins

  • 简介 : 基于java开发(需要jdk)的一种开源,跨平台(win,linux,macos)的持续集成工具
  • 安装java 8并配置环境变量
    • 配hi环境变量的目的 : 能在任意一个目录下,使用java命令
系统设置
  1. Manage Jenkins --> Configure System
  2. Jenkins Location:
    • 系统管理员邮箱地址 --> 自己申请的邮箱
  3. Extend E-mail Notification:(点击高级)
    • SMTP Username : —> 自己申请的邮箱
    • SMTP Password : —> POP3/SMTP服务授权码
  4. 邮件通知 : (勾选SMTP认证)
    • 用户名 : —> 自己申请的邮箱
    • 密码 : —> POP3/SMTP 服务授权码
  5. 点击应用 —> 保存
持续集成postman
  • 准备工作
    • postman中运行一遍用例集,没有问题后导出
    • 注意导出用例集和环境,名称中没有中文
    • 获取文件地址:摁住shift键右键—>选中文件—>复制文件地址,得到文件绝对路径
    • 执行命令生成测试报告

在这里插入图片描述

# 报告代码
newman run 测试用例集名.json -e 环境变量.json -d 数据文件.json -r html --reporter-html-export 测试报告名.html
# 本人电脑无法使用htmlextra故省略不写了
手动构建----Jenkins管理
  1. 选择新建
    在这里插入图片描述
  2. 点击构建–> 添加构建步骤–>执行windows批处理命令
    在这里插入图片描述
    在这里插入图片描述
  3. 选择同页面publish-build-actions中的publish html reports,点击新增
  4. 写入输出测试报告的目录,index中是生成的报告名,与前文名字一致
  5. 点击apply—>save即可
  6. 回到初始页面,点击build now立即构建,点击时间点会跳转页面,方便调试
    在这里插入图片描述
  7. 进入页面点击console-output,查看命令执行结果(我这里有问题)
    在这里插入图片描述
自动构建----使用jenkins

在这里插入图片描述
在这里插入图片描述

  • 报告可能样式错乱,更正参数得到格式正确报告
java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar Jenkins.war
持续集成-代码
  • 准备工作
    • 将代码上传到Gitee中
    • 将仓库设置为开源
手动构建----使用jenkins管理
  1. 新建任务—>进入任务的configure界面
  2. Source Code Management设置为Git(项目设置为开源)
  3. 在Git选项弹出框中,填入仓库url地址
  4. 下滑选择构建环境–>构建–>增加构建步骤–>选择execute windows选项,命令填入pytest
  5. 构建后的操作选择publish HTML reports–>点击新增(填入与pytest.ini中代码保持一致)
    在这里插入图片描述
  6. 设置发邮件,点击"增加构建后操作步骤",选择Editable Email Notification设置 邮件发送测试报告
    • 在Project Recipient List,$DEFAULT_RECIPIENT,写入新邮箱,与原有内容使用英文逗号分开
    • Content Type选择HTML选项
    • Default Content填入邮件测试报告模板
      在这里插入图片描述
  7. 点击高级设置—>Triggers–>整个框点×,点击Add Triggers—>Always,点击应用保存即可.
    在这里插入图片描述
  8. 点击build now生成测试报告,点击时间进入查看测试是否结束
自动构建----使用jenkins管理
  1. 点击 “配置” 查看,在 “构建触发器” 中选择 "Build periodically(定期的) "添加定时构建
  2. “日程表” 中写入: * * * * * (空格隔分) —> 对应分 时 日月年
    • 如 10 16 * * * 就是每天16点10分执行
  3. “构建触发器” 标签中选择 “Poll SCM”,写入*/1 * * * *(空格分隔)
    • 代表每一分钟检查一次gitee上的代码,查验是否有更新
  4. Pycharm修改代码Commit ,Push或者直接在gitee上修改,导致Gitee上的代码有变动,触发Jenkins自动构建.
    在这里插入图片描述
    有些遗漏,复习的时候再来补充吧
http://www.lqws.cn/news/450109.html

相关文章:

  • 腾讯云COS“私有桶”下,App如何安全获得音频调用流程
  • 效果成本双突破!快手提出端到端生成式推荐系统OneRec!
  • CSS知识补充 --- 控制继承
  • C++网络编程入门学习(五)-- CMake 学习笔记
  • 51单片机重要知识点1
  • git更改远端文件名称以及删除指定文件夹
  • 【Mini-F5265-OB开发板试用测评】3、MDS 可编程 IP 互联模块
  • npm下载离线依赖包
  • 算法-每日一题(DAY11)每日温度
  • CDGP|2025年传统工厂数据治理:智能制造升级的新引擎
  • ESP32-HTML-08
  • .Net Framework 4/C# 进程和线程的使用
  • .NET 4.7中使用NLog记录日志到数据库表
  • 基于PyQt5和PaddleSpeech的中文语音识别系统设计与实现(Python)
  • 数字媒体专业核心课程体系以“艺术创意+数字科技+产业应用”三维融合
  • VSCode1.101.1Win多语言语言编辑器便携版安装教程
  • Can‘t resolve ‘react/jsx-runtime‘ in xxx
  • Vue框架深度解析:从Vue2到Vue3的技术演进与实践指南
  • day43-硬件学习之ARM基础知识
  • uniapp 微信小程序在线引入字体图标
  • 数据集-目标检测系列- 餐具叉子 数据集 fork >> DataBall
  • LibCpr: Windows环境下实现一个C++版本的Http客户端
  • Spring Cloud 服务调用详解:Ribbon 负载均衡与 Feign 声明式接口调用
  • 【MATLAB代码】制导方法介绍与例程——追踪法,适用于二维平面,目标是移动的|附完整源代码
  • C++基础算法————并查集
  • 【Dify精讲】第14章:部署架构与DevOps实践【知识卡片】
  • 虹科案例 | 欣旺达如何实现动力电池测试的长期稳定性+自动化?
  • 【NLP入门系列三】NLP文本嵌入(以Embedding和EmbeddingBag为例)
  • 高效获取速卖通商品实时数据:API 接口开发与接入全流程
  • ReAct