千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读
《一》持续集成的概念
(1)持续集成Continuous Integration
持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进行自动化 测试
(2)持续交付Continuous Delivery
持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境
(3)持续部署Continuous Deployment
在持续交付的基础上,把部署到生产环境的过程自动化, 持续部署和持续交付的区别就是最终部署到生产环境是自动化的

《二》Git+Jenkins工作原理及效果展示

《三》Git服务端的安装
(1)安装JDK 1.7以上
(2)下载安装Gitbit
1.下载Gitblit,下载地址:http://www.gitblit.com/
2.解压缩下载的压缩包即可,无需安装
(3)配置Gitbit
1. 创建用于存储资料的文件夹(仓库)
D > GitServer > gitblit-1.9.1
2. 找到gitblit目录下的data文件下的 defaults.properties 文件,用“记事本”或文本编辑器打开
D > GitServer > gitblit-1.9.1 > data > defaults.properties
3. 找到 git.repositoriesFolder(资料库路径),赋值为 第1)步 创建好的文件目录
git.repositoriesFolder = D:\GitServer\gitRespository
4. 找到 server.httpPort,设定http协议的端口号(注意:所使用的端口不要与已有端口冲突)
server.httpPort = 10086
5. 找到 server.httpBindInterface,设定服务器的IP地址。这里就设定你的服务器IP
server.httpBindInterface = localhost
6. 保存,关闭文件
7. 默认的账户密码:admin/admin
访问:localhost:10086

《四》GIT可视化工具的安装和简单使用
tortoiseGit下载地址:https://download.tortoisegit.org/tgit/
TortoiseGit (TortoiseGit-2.12.0.0-64bit.msi | TortoiseGit-LanguagePack-2.12.0.0-64bit-zh_CN.msi)
(1) 安装小乌龟(TortoiseGit),一路的next
TortoiseGit (TortoiseGit-2.12.0.0-64bit.msi )
(2) 安装汉化包,一路的Next
TortoiseGit (TortoiseGit-LanguagePack-2.12.0.0-64bit-zh_CN.msi)
(3) 设置语言
在TortoiseGit下,鼠标右键点击设置,弹窗,常规设置 > 选择语言:中文(简体)(中国)
(4) 在空白处点击鼠标右键, 选择 --> TortoiseGit --> Settings,右边下拉框中选择中文,然后就汉化成功
(5) 使用可视化工具联系Gitbit服务端
a. 登录服务器(localhost:10086),账号和密码:admin/admin
b. 创建项目文件夹,点击版本库-创建版本库按钮
c. 输入库的名字,点击创建
名称:20220106(自定义)
d. 复制服务端URL:http://admin@localhost:10086/r/zhanzhao.git (ssh://admin@127.0.0.1:29418/EndingDay.git 突然不可用)
e. 本地克隆服务端仓库,本地目录下鼠标邮件->点击Git克隆
a. 在D > temp文件夹下,鼠标右键点击克隆,URL输入:http://admin@localhost:10086/r/20220106.git
b. 效果:D > temp文件夹下,20220106(绿色勾选),新建文档zz.txt
c. 鼠标右键点击Git 提交-->“master”,弹窗:日志信息(测试提交);zz.txt前面的复选框(勾选);提交并推送(点击按钮)
d. 效果:D > temp > 20220106 > zz.txt(绿色勾选):代表提交到服务端(localhost:10086),在服务器 > 版本库 > zz(可见)

《五》GIT关联Pycharm
(1) 打开Pycharm,点击Git/VCS菜单-Get From Version Control 在URL里输入服务端URL,Directory目录自定义(C:\Users\zz\PycharmProjects\20220106)
(2) 服务端URL:http://admin@localhost:10086/r/20220106.git (ssh://admin@127.0.0.1:29418/EndingDay.git 突然不可用)
(3) 服务端URL和Directory目录设置好之后,点击"clone(克隆)"的按钮。效果:服务器的创建的文件数据正确的映射到Pychram上
(4) 在弹出框输入默认密码:admin
(5) 新建代码文件,会提示是否add,点击add添加文件到暂存区
(6) 点击左上角的小菜单commit;Amend(修正)的框输入:新功能代码;点击Commit and push的按钮;Push Commits to 20220106(新功能代码) > Push
(7) 效果:服务端(localhost:10086),在服务器 > 版本库 > 刷新 zz(可见 [新功能代码] )

《六》Jenkins介绍
(1)Jenkins 是什么?
1. Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件
2. Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的Java程序
(2)需要安装以下软件
Java 8 ( JRE 或者 JDK 都可以)

《七》Jenkins环境搭建
(1)最简单安装方式
1. 下载 Jenkins.war: https://jenkins.io/download/
下载之后放到新建的Jenkins目录下
2. 打开终端进入到下载目录. 运行命令 java -jar jenkins.war --httpPort=8086
进入到下载目录:d:、cd Jenkins
3. 给一个默认密码:289c18cc393942e997a6be5f0de8a320 360af318f4144880b8ba589804bb48c4
需要记住该密码,密码是命令行窗口显示的
4. 安装插件:默认推荐,自定义插件 打开浏览器进入链接 http://localhost:8086
Jenkins的主页面
(2)windows下msi安装包模式
1. msi安装包直接以服务的形式进行安装。 要求你输入账号密码来校验安装,在这一步选择用不需要密码的选项进行安装即可
2.默认启动URL:http://localhost:8080 启动页如果卡住了(这个是因为更新地址是国外的被墙了,需修改成国内的地址),请参照如 下设置:
3.进入用户文件夹下,.jenkins文件夹中,修改hudson.model.UpdateCenter.xml文件,将 https改为http,进行保存,再重启即可
4. 在进入到启动页后,会提示安装推荐插件或者手动选择插件进行安装,直接选择推荐插件安装 即可。如果插件安装失败,没有关系
(3)基于Tomcat来实现部署:适合于任何环境
1. 安装jdk1.8最新版(很重要)已安装的同学可以在控制面板升级,自动更新到最新版
2. 部署tomcat
3. 将Jenkins.war放到tomcat/webapps/路径下即可
4. 启动tomcat/bin/startup.bat即可启动服务,等待过后,可正常访问Jenkins
5. 记得在tomcat部署后,关闭防火墙
6. Jenkins默认端口都会是8080,唯一区别是msi安装后与tomcat安装后的url会有不同

《八》Jenkins任务构建
(1) 点击item(项目)
输入一个任务名称:test20220106,选择:FreeStyle project,点击确定
Test20220106(General、源代码管理、构建触发器、构建环境、构建、构建后操作)
(2) 点击build(构建环境)
在构建(build)项选择:Execute Windows batch command(linx就选择:Excute shell)
(3) 写入自动运行脚本(这个运行脚本,就是你手动在cmd窗口中输入的一个个dos命令)
手动演示
C:\Users\zz>D: 盘符,命令行需要切盘
D:\>cd cd D:\cemaclass\PycharmProjects\CMVIP03\pytest_practice_V3\pytest_allure\report_allure
D:\cemaclass\PycharmProjects\CMVIP03\pytest_practice_V3\pytest_allure> python test_allure.py
命令框脚本(若需修改,点击配置按钮)
D:
cd D:\cemaclass\PycharmProjects\CMVIP03\pytest_practice_V3\pytest_allure
python test_allure.py
(4) 保存
(5) 点击build now(立即生成) 进行构建 > 构建历史 > 控制台输出
(6) 结果检查

《九》Jenkins插件下载速度慢、安装失败
(1)配置国内镜像源(避免插件资源被墙下载失败)
Manage Jenkins >Manage Plugins > Advanced(高级) > Update Site(升级站点)
URL:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json > 点击提交按钮
(2)修改default.json
1.进入localhost:8086/pluginManager/available 可选插件:搜索git 进行安装git,可能失败,需要修改配置文件
install without restart(无需重新启动即可安装)
Download now and install after restart(立即下载并在重新启动后安装)
2. 进入目录:C:\Users\用户名\.jenkins\updates
C/用户/zz/.jenkins/updates(做了下载操作才会自动创建)
3. 修改文件default.json(可能重启被重置,重置多改几次,一定要保证启动的时候,里头的信息是修改后的)
4. PS:这个updates,默认不存在,需要你触发了jenkins插件下载任务才会自动创建
修改配置文件需要备份(修改文件C/用户/zz/.jenkins/updates/default.json)
5. default.json替换连接测试url
http://www.google.com 替换为https://www.baidu.com
6. default.json替换所有插件下载的url
https://updates.jenkins.io/download 替换为 https://mirrors.tuna.tsinghua.edu.cn/jenkins
(3)修改完成后重启下jenkins
1. 在浏览器url地址后面加上 restart 重启jenkins。如 http://ip:8086/restart(此方法仅客户端安装的jenkins才生效)
2. 如果第一种方式无法重启,直接到命令行页面多按几次ctrl+c,然后再次执行命令启动jenkins:java -jar jenkins.war --httpPort=8086
(4)参考博客
Jenkins安装插件提速:https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html

《十》Jenkins拉取git仓库代码并执行自动化脚本
(1)安装git插件
1. Manage Jenkins > Manage Plugins > Available(可选插件)
2. 搜索git,点击check
3. 点击 install without restart
(2)在git服务器配置ssh的key
1. 进入Gitbit:根据自己配置的来 (http://127.0.0.1:10086/)
2. 点击个人头像>用户中心
3. SSH KEYS
a. 使用本地生成秘钥命令创建秘钥:ssh-keygen -t rsa -C "leihujie@aliyun.com"
b. 生成秘钥一般保存在: C:\Users\用户名\.ssh\(私钥:id_rsa 公钥:id_rsa.pub)
c. 将后缀为pub的公钥里面的内容复制添加到Key里,点击添加
(3)创建Jenkins item
1. 进入Jenkins :根据自己配置的来(http://localhost:8086/)
2. Test20220106 > 配置 > 源码管理 > Git > Repositories URL(http链接)(3-4-5)
3. 点击item(项目)
输入一个任务名称:test20220106,选择:FreeStyle project,点击确定
Test20220106(General、源代码管理、构建触发器、构建环境、构建、构建后操作)
4. 点击 Source Code Mangement(源码管理) 页签>点击Source Code Mangement 项>选择 git
5. 填写git仓库(Repositories URL)地址:http://admin@localhost:10086/r/20220106.git
方式1:http://admin@localhost:10086/r/20220106.git
方式2:ssh://admin@127.0.0.1:29418/zz.git(可能会报错)
1. 在Credentials点击Add > jenkins
2. Kind(类型) 选择 SSH Username with private key
3. Private Key 勾选 Enter directly>Add,在里头输入“私钥”(安装git的时候有生成 过C:\用户\用户名\.ssh下,也可能在用户名目录下),注意不是.pub公钥
方式1可能遇到的问题:可能会提示128错误,见PPT解决办法
1. 本地使用命令行客户端执行 git clone http://admin@localhost:10086/r/20220106.git
2. 会提示要输入用户名和密码,成功后在jenkinis里把仓库连接 换成http的就可以了
6.点击build now 进行构建
7. 查看Console Output(控制台输出),构建日志,得到构建拉取的工程目录: C:\Users\cema\.jenkins\workspace\pytest_demo
(4)成功的执行了自动化代码:用git拉取到了服务端的最新的代码,在jenkins的服务端构建执行
a. D > temp > 20220106 > test_case.py
1.新建py文件:test_case
2.文件内容:
import
def test_case_01():
print('来自Jenkins的pytest')
if__name__='_main_':
print,main(['-s','test_case.py'])
b. 鼠标右键点击Git 提交-->“master”,弹窗:日志信息(新增代码);test_case.py前面的复选框(勾选);提交并推送(点击按钮)
c. 效果:D > temp > 20220106 > test_case.py(绿色勾选):代表提交到服务端(localhost:10086),在服务器 > 版本库 > zz(可见)
d. 若基于当前Test20220106项目工程,不需要配置路径,直接写(如:python test_case.py),点击保存
e. Jenkins:(localhost:8086/job/Test20220106/) > Build Now(立即生成)> 控制台输出

《十一》Jenkins生成Allure报告(Allure Jenkins Plugin)
(1)Allure安装(Allure测试报告)
1. 安装JDK1.8 才可运行allure ,怎么安装,直接百度,一大堆
2. 下载 https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
3. 解压Allure压缩包(D:\安装包,解压到D:)
4. 配置Allure到环境变量,到path里面,D:\allure-commandline\allure-2.13.2\bin
5. 验证:allure --version
(2)Allure Jenkins Plugin插件安装
1. 打开jenkins首页-Manage Jenkins-Manage Plugins-Availble(可选插件),搜索:Allure
2. 勾选Allure,点击 install without restart(安装不重启)
(3)配置Allure工具
1. 打开jenkins首页-Manage Jenkins-Global Tool Configuration-Allure Commandline
2. 不要勾选 Install automatically
3. 安装目录:输入本地allure安装地址,不用到bin ,如下: D:\allure-commandline-2.13.5\allure-2.13.5 点击保存
4. 进入jenkins首页-Manage Jenkins-Configure System-Global properties(全局属性) 勾选Tool Locations,
5. 输入allure安装地址: D:\allure-commandline-2.13.5\allure-2.13.5 点击保存
(4)点击(test20220106 > 配置)进入JOB(工作表),点击BUILD(构建)的区域界面中
1.命令行输入:pytest -s --alluredir ./allure_report
2.构建后操作(Post-build Actions):选择Allure Report,Path里填写对应的报告数据路径: allure_report,点击保存
(5)构建项目(Build Now)后,查看生成的Allure报告

《十二》测试报告发邮件(Email Extension Plugin)
(1)安装Email Extension Plugin 插件
打开jenkins首页-Manage Jenkins-Manage Plugins-Availble(可选插件),搜索:Email,安装 Email Extension Template
(2)测试你的邮箱(jenkins系统自带的邮件功能)
1. 打开jenkins首页-Manage Jenkins-Configure System,找到Jenkins Location-System Admin e-mail address
(系统管理员邮件地址)(先配置系统管路员邮箱地址,即发件人的地址)
2. 找到E-mail Notification(电子邮件通知)(在最下面)
a. SMTP server(服务器): 邮箱的服务器地址,不同的邮箱这里是不一样的,qq邮箱的:smtp.qq.com
b. 点击高级,勾选使用SMTP认证。用户名: 你自己的邮箱地址,跟上面系统管理员邮箱地址一致
c. 密码:QQ邮箱是用的SMTP_SSL模式,所以这里不是QQ的密码,是授权码
d. Use SSL:QQ邮箱需勾选,腾讯企业邮箱不需要勾选
e. SMTP Port: 一般默认465
f. Reply-To Address(回复地址): 测试收件人的地址
g. 勾选发送测试邮件测试配置
Test e-mail recipient(测试电子邮件收件人):输入测试邮件
点击右侧的 Test configuration 按钮即可进行邮件的测试
3. 配置授权码
https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256
(3)Extended E-mail Notification(扩展电子邮件通知) 配置
SMTP server:smtp.qq.com
SMTP Port:465
点击高级,展示下面的属性设置项:
SMTP Username:发件人邮箱 SMTP Password:授权码
Use SSL:QQ邮箱需勾选,腾讯企业邮箱不需要勾选
Default Content Type:邮件的类型使用HTML 格式
Default Recipients:默认的收件人
配置邮件的模板内容----这个插件的高级之处
Default Subject:邮件的主题,一般不用改 Default Content: 邮件的正文内容,html格式,群文件提供了模板文件(第五期 > 邮件正文内容)
(4)job配置触发器
1. 打开我们需要发送邮件的job
配置里面添加构建后的操作(Post-build Actions) Editable Email Notification
2.添加触发机制Add Trigger(记得点Advanced才会有这个选项):选择 always是不管构建成功还是失败都会发邮件
a.配置当前job的收件人Recipient List (邮箱)
b.勾选添加日志到邮箱:Attach Build Log 点击保存

《十三》构建触发器之定时构建和轮询SCM
(1)定时构建语法
五颗星,中间用空格隔开 * * * * *
第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
1.每30分钟构建一次: H/30 * * * *
2.每2个小时构建一次: H H/2 * * *
3.每天早上8点构建一次: 0 8 * * *
4.每天的8点,12点,22点,一天构建3次 :0 8,12,22 * * *
5. 若有多个时间点,中间用逗号隔开
(2)定时构建(Build periodically)
(1)定时构建(Build periodically):周期性进行项目构建,这个是到指定的时间必须触发构建任务
(2)比如我想在每天的9点,17点,朝九晚五各构建一次,在定时构建(Build periodically-构建触发器)里设置
(3)点击进入Job-Build Triggers,勾选Build periodically 填写0 9,17 * * *
1. 为了允许定期计划的任务在系统上产生负载,应在可能的情况下使用符号H ( for"哈希") 。
2. 例如对于十几个日常工作,使用 0 0 * * * 将导致午夜的大峰值。
3. 相反,使用H * * * 每天仍然 会执行每一次作业,但同时使用有限的资源,更好地使用有限的资源。 改成H 9,17 * * *
posted on   隆江猪脚饭  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示