接口测试(九)—— Git代码托管、jenkins 的持续集成

news2024/11/15 18:13:55

目录

一、持续集成

二、git

1、简介和安装

2、Gitee

2.1 git 和 gitee 管理代码工作原理

2.2 PyCharm 配置 Gitee 插件

3、PyCharm 与 Gitee 相关操作

3.1 将 Gitee的项目 Checkout到 Pycharm中

3.2 推送 PyCharm 新项目到 Gitee远程仓库

3.3 将 Pycharm代码 push到 Gitee远程仓库

3.4 将 Gitee仓库的新代码 pull 到 PyCharm中

3.5 解决冲突

三、Jenkins

1、简介、安装、启动

2、插件安装介绍

3、系统设置

四、持续集成-Postman

1、准备工作

2、使用Jenkins管理-手动构建

3、使用Jenkins管理-自动构建

五、持续集成-代码

1、准备工作

2、使用Jenkins管理-手动构建

3、使用Jenkins管理-自动构建


一、持续集成

概念:

  • 团队成员将自己的工作成果,持续集成到一个公共平台的过程。成员可以每天集成一次,也可以一天集成多次。

相关工具:

  • 本地代码管理:git
  • 远程代码管理:gitee(国内)、github(国外)、gitlib(公司私有服务器)
  • 持续集成:jenkins

二、git

1、简介和安装

  •  安装:
    • 双击 exe文件,一路 next 自动安装,全部默认选项。 (不建议修改默认安装目录)
  • 查看:
    • cmd打开终端,输入 git --version 能看到版本信息,说明安装成功
  • 配置:
    • 安装成功后,打开 cmd 输入命令。 这一步必须操作!!! 操作后无返回结果!!!
    • git config --global user.email "你⾃⼰的邮箱名@xxx.com"
      git config --global user.name "⽤户名(可任意写,不要⽤中⽂)"
  • 简介:
    • git 是一款 在 本地 管理代码的工具。 自带一个小型 仓库,存储本地代码。
    • 官网:Git
    • GUI Clients:Git - GUI Clients

2、Gitee

官网:Gitee - 基于 Git 的代码托管和研发协作平台 

2.1 git 和 gitee 管理代码工作原理

2.2 PyCharm 配置 Gitee 插件

3、PyCharm 与 Gitee 相关操作

3.1 将 Gitee的项目 Checkout到 Pycharm中

使用场景:

  • 第一次加入某个项目,第一次从 gitee 获取代码时。

 

3.2 推送 PyCharm 新项目到 Gitee远程仓库

应用场景:

  • 本地开发的项目,第一次上传到 gitee 中。

3.3 将 Pycharm代码 push到 Gitee远程仓库

应用场景:

  • 本地 和 gitee 有 相同的项目。 本地代码做了新增。需要将新增的代码,推送gitee上。

 

3.4 将 Gitee仓库的新代码 pull 到 PyCharm中

应用场景:

  • 本地 和 gitee 有 相同的项目。 gitee上代码做了新增。需要将新增的代码,拿到本地来。

 

3.5 解决冲突

应用场景

  • 本地 和 gitee 有 相同的项目。 gitee上代码做了新增。本地对同一处代码,做了不同的新增

 

结论:避免少出现 冲突:建议,先 pull ,再 push。

三、Jenkins

1、简介、安装、启动

  • 简介:
    • 基于Java开发(必须安装jdk)的一种开源、跨平台的持续集成工具
  • 安装:
    • 操作细节见《Jenkins安装及配置.pdf》中 “安装JDK” 及 “离线安装Jenkins” 小节。
      链接:https://pan.baidu.com/s/1Q1At9cdDZgGDgEhtex89Og?pwd=fthq 
    • 必须 安装 jdk,要配置 环境变量。
    • 查验:java -version 能看到 1.8 版 jdk 即可。
  • 启动:
    • 1. 在 jenkins.war 文件 所在 目录地址栏 输入 cmd 打开 终端。
    • 2. 输入命令 java -jar jenkins.war 启动服务。
    • 3. 启动成功后,终端窗口 不能关闭。最小化。
    • 4. 在浏览器地址栏 输入 localhost:8080

2、插件安装介绍

Jenkins左侧菜单栏 —> “Manage Jenkins” —> 选择 “Manage Plugins” —> “可选插件” —> 插件名称 ,如:“HTML Publisher” 

3、系统设置

操作细节见《 Jenkins安装及配置.pdf》中 “配置Jenkins系统邮箱” 小节。
链接:https://pan.baidu.com/s/1Q1At9cdDZgGDgEhtex89Og?pwd=fthq 

配置小结:
1. Manage Jenkins —> Configure System
2. Jenkins Location:
        系统管理员邮件地址: —— 自己申请的邮箱。 (黄色警告,不理)
3. Extended E-mail Notification:(第一个“高级”)

        SMTP Password:POP3/SMTP 服务授权码

        SMTP Username:自己申请的邮箱

4. 邮件通知:(勾选“使用SMTP认证”)
        用户名:—— 自己申请的邮箱
        密码: —— POP3/SMTP 服务授权码。
5. 点击 “应用” —> “保存”

四、持续集成-Postman

1、准备工作

1. 打开已完成并测试无误的 postman 项目脚本。 再次执行测试。
2. 导出( 测试用例集、环境变量 两个文件)“不 支 持 中 文” —— 全部改成英文!
3. 文件所在目录地址栏 输入 cmd 打开终端。注意:用 “绝对路径” 测试。方便使用Jenkins。
4. 执行无误, 查看生成的测试报告文件

# extra版报告
newman run 测试用例集名.json -e 环境变量文件.json -d 数据文件.json -r htmlextra --reporterhtmlextra-export 报告名称.html

# 示例:
newman run "C:\Users\xwp\Desktop\postman_jenkins\iHRM.postman_collection.json" -e
"C:\Users\xwp\Desktop\postman_jenkins\iHRM_env.postman_environment.json" -r htmlextra --
reporter-htmlextra-export report.html

# 示例:
newman run "C:\Users\xwp\Desktop\ihrm\ihrm.postman_collection.json" -e
"C:\Users\xwp\Desktop\ihrm\postman_environment.json" -r htmlextra --reporter-htmlextra-export report.html

  

2、使用Jenkins管理-手动构建

操作步骤:
1. 打开 Jenkins 首页,点击 “新建Item” 创建一个 新任务
2. 输入任务名,如:bjtestAPITestIHRMPostman。选择 “Freestyle project”,点 “确定” 。跳至 “配置”页面。
3. 回主页,可看到 ,多出任务 bjtestAPITestIHRMPostman。 点 任务名称,“配置” 可以继续刚才的配置。
4. 跳至 “构建” 标签。(General 、源码管理、构建触发器、构建环境 四个标签先跳过)
        1. 点击 “增加构建步骤”,选择 “Execute Windows batch command” 选项(macOS选择 “Execute shell”)
        2. 将 cmd 终端 测试无误的 命令, 粘入“命令” 编辑框中(如有红色浪线警告,忽略)。
5. “构建后操作” 标签。
        1. 点击 “增加构建后操作步骤”,选择 “Pulish HTML reports”,点击 “新增” 按钮。
        2. 将 Index page[s] 后的值改为:“report.html” 。名称 应与上面 命令中 生成的 测试报告名称 一致。
        说明:
        因为生成报告时,没有指定目录。 所以:上面 “HTML directory to archive” 是空的。
        如果,指定报告生成到其他位置。 要配置 “HTML directory to archive”的值。
        3. Report title 是生成的报告 标题,可修改为 “Report666” 试试看。
6. 点击 “应用” --> “保存”。
7. 在 自动跳至 页面中,点击 “Build Now”,可在下面 Build History(构建历史)中, 看 到 构 建 正 在 进 行。
        1. 点 #1 后面的名称 , 点击 “控制台输出” 查看 执行的命令。
        2. 再次点 “Build Now”,可以 再构建一次 #2。 以此类推。
8. 完成后,左侧菜单中 多出 “Report666” 菜单栏。点击可查看 测试报告。可能会样式错乱。后续解决。
        特别说明:
        如有 红色 “失败” 提示,检验是否 测试用例 断言没有通过!用例断言失败, Jenkins 自动判定为 失败!


图片步骤:

 

3、使用Jenkins管理-自动构建

简单来说:自动构建,就是设置一个定时器,定时时间到, Jenkins 自动执行测试用例
 

操作步骤:
1. Jenkins 首页,点击任务名:如: bjtestAPITestIHRMPostman。跳至 “配置” 页面。
2. “构建触发器” 标签。 选择 “Build periodically(定期地)”
3. “日程表” 中写入:* * * * *(空格隔分) —> 分别对应 “分 时 日 月 年”

  • 修改:10 16 * * * 就是 每天的 16 点 10 分 执行。

4. 点击 “应用” --> “保存”。 等待 。。。自动构建 —— 成功!
5. 报告样式错乱 原因:

  •  Jenkins为了避免受到恶意攻击,设置了CSP安全策略。只允许加载 Jenkins服务器上托管的 CSS文件 和 图片文件。
  • 我们的用例、代码都是放在自己的服务器上,被恶意攻击的可能性极低。

6. 解决 报告样式错乱:
        1. 在 启动时,添加参数 :

        

java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar Jenkins.war

        2. 如果,已生成的报告,样式依然错乱, 重新 “Build Now” 生成新的报告即可。

五、持续集成-代码

1、准备工作

运行无误,能生成报告的 iHRM项目代码 上传至 Gitee中。 

2、使用Jenkins管理-手动构建

1. 打开 Jenkins 首页, 点击 “新建Item” 创建一个新任务。
2. 输入任务名,如: bjtestAPITestIHRMCode。选择 “Freestyle project”,点 “确定”,跳至 “配置” 页面。
3. “源码管理” 标签。 选择 “Git”。 在 Repository URL 后写入 项目代码在 Gitee的 URL。
4. “构建” 标签。
        1. 点击 “增加构建步骤”, 选择 “Execute Windows batch command” 选项(macOS选择 “Execute shell”)
        2. 输入命令 python run_suite.py ( 与在 pycharm 的 Terminal 中执行,相同含义)
5. “构建后操作” 标签
        1. 点击 “增加构建后操作步骤”,选择 “Pulish HTML reports”,点击 “新增” 按钮。
        2. 在 “HTML directory to archive” 中 写入 报告生成的位置。 如:./report (与项目目录一致)
        3. Index page[s] 后的值,与 run_suite.py 中代码,生成的测试报告名称保持一致。如:ihrm.html。

6. 再次点击 “增加构建后操作步骤”, 选择 “Editable Email Notification” 设置 邮件发送测试报告。
        1. 在 “Project Recipient List” ,$DEFAULT_RECIPIENTS 后使用 英文 “,” 隔分,添加邮箱地址。
        2. 下面 “Content-Type” 的值,选择 HTML(text/html)
        3. 复制讲义中 “邮件测试报告模板” 代码到 “Default Content ” 中

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
<div>
<h2>项目信息</h2>
<ul>
<li>项目名称:${PROJECT_NAME}</li>
<li>详细测试报告:<a
href="${PROJECT_URL}HTML_20Report/">${PROJECT_URL}HTML_20Report/</a></li>
<li>触发原因:${CAUSE}</li>
<li>项目Url:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<hr/>
<h2>构建日志</h2>
<div>${JELLY_SCRIPT,template="html"}</div>
<hr/>
</div>
</body>
</html>

7. 点击右下角 “Advanced Settings” 按钮。将 “Trigger” 原有的内容 点 最外层 “红叉” 删除。
        点击 “Add Trigger” 选择 Always 。
8. 点击 “应用” --> “保存”。
9. 点击 “Build Now” 开始手动构建。

图片步骤详情如下:

 

 

 

 

 

 

 

 

3、使用Jenkins管理-自动构建

1. 点击 “配置” 查看,在 “构建触发器” 标签。 选择 “Build periodically(定期地)” 添加 定时构建!
2. “日程表” 中写入:* * * * *(空格隔分) —> 分别对应 “分 时 日 月 年”
        修改:10 16 * * * 就是 每天的 16 点 10 分 执行。
3. 也可以在 “构建触发器” 标签 中选择 “Poll SCM”。 写入 :*/1 * * * * (空格隔分)
        代表1分钟 检查一次 gitee 上的代码,查验是否有更新。
4. PyCharm 修改代码 Commit、Push,或者 直接在 Gitee修改,导致 Gitee上的代码有 变动。会触发Jenkins会自动构建。
 

 

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

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

相关文章

React基础知识(组件实例三大核心属性state、props、refs)(二)

系列文章目录 第一章&#xff1a;React基础知识&#xff08;React基本使用、JSX语法、React模块化与组件化&#xff09;&#xff08;一&#xff09; 文章目录系列文章目录一、State1.1. state基本使用1.2 state的简写形式二、Props2.1 props的基本使用2.2 props属性值限制2.3 …

精品基于SSM的小学生课程资源网络云平台

《基于SSM的小学生课程资源网络云平台》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据…

redux

文章目录redux是什么redux使用情况redux工作原理redux安装redux的3个核心概念Action——形成动作Reducers——操作状态store——存储状态APIredux的响应式redux实现加减案例不使用ActionCreators实现使用ActionCreators实现异步Actionreact-redux使用容器组件创建修改App.jsx在…

干电池升压IC3.3V的电源芯片fs2111/FS2112

干电池升压3.3V的电源芯片FS2111/FS2112 FS2111/FS2112适用于一节干电池升压到3.3V&#xff0c;两节干电池升压3.3V的升压电路&#xff0c;FS2111/FS2112干电池升压IC。 FS2111/FS2112 干电池1.5V和两节干电池3V升压到3.3V的测试数据 两节干电池输出500MA测试&#xff1a; F…

CubeMax添加Rtthread操作系统 组件STM32F103

CubeMax添加Rtthread操作系统 组件STM32F103 本篇主要介绍&#xff0c;怎么使用STM32CubeMx工具&#xff0c;添加RT-Thread操作系统组件&#xff0c;码代码的IDE是keil。快速移植RT-Thread实时操作系统&#xff0c;所用的IDE可自行官网下载最新版。 CubeMax官网下载链接 RTthre…

Ajax(六)

1. XMLHttpRequest的基本使用——URL编码与解码 1.1 什么是URL编码 1.2 如何对URL进行编码与解码 <body><script>var str 黑马程序员//对str编码var str2 encodeURI(str)console.log(str2)//一个汉字对应三个百分号&#xff0c;反解码从console里头复制console.…

js解决单线程之路 - worker的使用分析

写在前面 今天写一个关于实现多线程的东西&#xff0c;都知道js是一个单线程的语言&#xff0c;所谓的单线程就是一次只能做一件事&#xff0c;多线程就是一次可以做很多件事&#xff0c;当然目前我们的电脑等设备很少会有单线程了&#xff0c;比如我们的电脑一般都是标的6核12…

stm32f103zet6的GPIO基础知识

IO数量 16*7112个&#xff0c;GPIOA~GPIOG7组,共144个引脚 IO模式 很多IO口既可以做为输入&#xff0c;也可以做为输出 输入模式 VSS指的是地&#xff0c;VDD是高电平&#xff0c; MOS英文全称为Metal-Oxide-Semiconductor。 意思为金属-氧化物-半导体&#xff0c;而拥有这…

Python画一棵茂盛的分形树

文章目录前情回顾添加分岔茂盛的分形树前情回顾 上次画了一棵分形树&#xff1a;用Python画一棵分形树&#xff0c;得到的图如下 发现看的人还是挺多的&#xff0c;但没什么人点赞&#xff0c;这说明我能给大家画分形树&#xff0c;大家很高兴&#xff0c;但这棵树太秃了&…

[附源码]Python计算机毕业设计调查问卷及调查数据统计系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

在Ubuntu上搭建Nexus服务

介绍 Nexus&#xff1a;Nexus 是一个强大的 Maven 仓库管理器&#xff0c;它极大地简化了自己内部仓库的维护和外部仓库的访问。如Android远程仓库依赖&#xff0c;Java服务端应用程序依赖等&#xff0c;都很方便。 Docker方式 准备 ubuntu上已经安装docker&#xff0c;docker安…

20221218解决在Ubuntu18.04下编译Firefly的Core-3588J出现lz4的问题

20221218解决在Ubuntu18.04下编译Firefly的Core-3588J出现lz4的问题 2022/12/18 15:37 解决方法&#xff1a;编译最新的lz4的dev分支&#xff01; https://wiki.t-firefly.com/zh_CN/Core-3588J/android_compile_android12.0_firmware.html Core-3588J产品规格书 3. 编译 Andro…

Bootstrap5 小工具

Bootstrap 5 提供了很多有用的类来帮组我们快速实现效果&#xff0c;不需要重复写一些 CSS 代码。 背景颜色 设置不同元素的背景颜色时&#xff0c;需要通过 .text-* 类来设置匹配的文本颜色&#xff1a; 实例 <div class"p-3 mb-2 bg-primary text-white">.…

跟老韩学JAVA——IDEA基本使用和快捷键

1. IDEA介绍 2.IDEA下载和安装 这个博主的下载安装介绍的很详细了&#xff0c;我就不过多介绍了 3.IDEA的基本使用 1&#xff09;修改字体大小 File -> Settings -> Editor -> Font -> Size 2)修改字体变粗 3)修改背景颜色 4) 修改菜单栏字体大小 5&#xff…

滑动窗口思想练习题

文章目录1. 找到字符串中所有字母异位词做法一&#xff1a;采用两个数组分别记录字符出现频次做法二&#xff1a;采用diff记录s和p字符串中字符的频次差2. 串联所有单词的子串个人理解&#xff0c;如有异议&#xff0c;欢迎指正&#xff01;1. 找到字符串中所有字母异位词 题目…

XiaoMi手机MIX 2S线刷固件和刷入Recovery

mix 2s 固件下载地址 https://web.vip.miui.com/page/info/mio/mio/detail?postId4865868&app_versiondev.20051 miflash线刷工具下载地址 https://miuiver.com/miflash/ 安装miflash线刷工具 点击安装驱动 打开miflash 手机关机按音量下加开机键进入bootloader&#xf…

Spring boot整合rocketmq(windows)

目录 1.环境搭建 2.命名服务器和业务服务器的启动 3.名词说明 4.执行步骤 5.示例 1.导入依赖 2.配置(至少指定下面两个) 3.代码 6.常见问题 1.环境搭建 下载地址&#xff1a;https://rocketmq.apache.org/解压缩进行安装&#xff0c;默认服务端口&#xff1a;9876 环…

执行 select ... for update 语句,如果查询条件没有索引字段的话,是加行锁还是加表锁?

大家好&#xff0c;我是小林。 昨天在群里看到大家在讨论一个 MySQL 锁的问题&#xff0c;就是执行 select … for update 语句&#xff0c;如果查询条件没有索引字段的话&#xff0c;是加「行锁」还是加「表锁」&#xff1f; 如果你做过这个实验的话&#xff0c;你会发现执行…

数据结构刷题训练营1

开启蓝桥杯备战计划&#xff0c;每日练习算法一题&#xff01;&#xff01;坚持下去&#xff0c;想必下一年的蓝桥杯将会有你&#xff01;&#xff01; 笔者是在力扣上面进行的刷题&#xff01;&#xff01;由于是第一次刷题&#xff01;找到的题目也不咋样&#xff01;所以&a…

SPRING-了解3-注解

IOC容器操作Bean 注解格式&#xff1a;注解名称(属性名称属性值,属性名称属性值) 放在类&#xff0c;方法&#xff0c;属性都可以 目的&#xff1a;简化XML配置 对象创建四大注解 1&#xff09;用的位置不是强制的 Component 最普通 Service 用在service层 Controlle…