ALLEN老师自动化测试小课堂借助git+Jenkins实现脚本管理、部署及定时执行
前面我们已经学习了如何使用python+selenium+unittest+ddt等实现脚本的开发,并且可以在jenkins中实现定时任务的设置,下面我们借助git及Jenkins公式实现队自动化脚本的管理、部署及定时执行。
- git:自动化脚本版本控制、部署、协同开发等。
- gitee:码云,是基于git实现在线代码托管的仓库。
- jenkins:集成git及自动化脚本的定时任务设置。
一、git及gitee的使用
git 是一种版本控制系统,是一个命令,是一种工具。
gitee 即码云,是基于git实现在线代码托管的仓库,免费使用,不用自己搭建环境。
github也是一款常用的在线托管的仓库,相比而言,国内使用gitee更方便。
![](https://pic4.zhimg.com/80/v2-d88fb74cfef94ee83c9c9543eb7fa8c3_720w.webp)
1、git安装
我们介绍比较简单的win10系统下安装git的方法,官网下载链接:
https://git-scm.com/download/win
![](https://pic1.zhimg.com/80/v2-55c155f28af431b53708da50dfdf5320_720w.webp)
2、gitee注册
目前 Gitee 提供了面向个人开发者的「社区版」和面向企业研发团队的「企业版」服务,支持 Git/SVN 管理,提供代码审核、Bug 跟踪以及 Webhook 钩子回调等功能,开发者可以在 Gitee 自行创建仓库。
如果是我们自己用的话,可以注册个人开发者用户,可免费创建 1000 个仓库(不限公有、私有),提供最多 5G 的免费代码存储空间。
通过访问码云首页右上角点击「注册」或点击「加入 Gitee」即可注册个人账号。
https://gitee.com/
![](https://pic3.zhimg.com/80/v2-a199f2afc103df95311365e831562f16_720w.webp)
在 Gitee 的注册界面依次填入各项,需注意的是:邮箱建议填写国内邮箱如163邮箱/QQ邮箱,以免因为众所周知的原因无法接收激活邮件,个性地址一经选定,无法修改,请慎重填写。当然,你也可以通过微信授权等第三方登录平台授权登录,授权登录后按照引导提示填写相关信息即可完成注册。
二、git进行脚本的管理
Git 的工作就是创建和保存你项目的快照, 常用的命令:git clone、git push、git add、git commit、git checkout、git pull。
![](https://pic4.zhimg.com/80/v2-5e2baec0efb8b35b5f16dd8f28dd21d7_720w.webp)
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1、gitee设置
1)注册并登录gitee,并在gitee中创建一个空分支的项目,创建仓库verydows_test。
![](https://pic2.zhimg.com/80/v2-44717b46a3697c4bbc0941a2b542ec4d_720w.webp)
可以生成一个未初始化的在线仓库,以备后面用。
![](https://pic1.zhimg.com/80/v2-69abc9df4185be32449c6870e6fbb604_720w.webp)
2)创建gitee的SSH公钥
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
进入git安装目录,右键鼠标,点击git bash,输入:
ssh-keygen -t rsa -C "XXXXX@163.com"
按照提示完成三次回车,即可生成 ssh key,在下面文件夹中查看,打开并复制id_rsa.pub文件中的内容。
![](https://pic3.zhimg.com/80/v2-15687c6432b167342a9ff57c202f7ab6_720w.webp)
在gitee的【设置->SSH公钥】中添加标题和公钥,保存退出即可。
![](https://pic1.zhimg.com/80/v2-d1f2ad79d9686199b1e9a507f4c4e07c_720w.webp)
3)配置git的全局环境
在git bash命令行中输入如下命令,设置全局的用户名和邮箱。
git config --global user.name "ALLEN"
git config --global user.email "xxxxx@163.com"
2、推送脚本到gitee
我们需要提前准备使用python+selenium+unittest+ddt等实现的自动化脚本,在本地已经能够正常运行。
![](https://pic4.zhimg.com/80/v2-8920c2b1a3cefdf85886a7498833eb47_720w.webp)
在脚本开发的目录下(D:\Git\project),启动cmd命令行,分别执行如下的命令,实现本地仓库上传到gitee的在线仓库。
1)生成一个隐藏的目录.git文件夹,生成本地仓库
cd D:\Git\project
git init
![](https://pic1.zhimg.com/80/v2-c12ed1d2890d28ffa9345a14cee8ed7c_720w.webp)
2)关联本地仓库gitee上的无分支仓库
先在gitee上获取verydows_test的HTTPS链接地址,复制出来即可。
![](https://pic4.zhimg.com/80/v2-2b6a5c767c96b139ca7b4d27649599eb_720w.webp)
在cmd窗口继续输入指令,不报错就可以继续了:
git remote add origin https://gitee.com/xxxxx/verydows_test.git
![](https://pic4.zhimg.com/80/v2-c5b2cb01f66320c5ea37944c171d3b7b_720w.webp)
3)将本地所有文件加载到本地暂存区
通过执行git add *可以将当前文件夹下所有的文件及文件夹一起加载。
如果需要加载某个文件或者文件可以分别执行:
git add maintest.py
git add public/
git add *
![](https://pic1.zhimg.com/80/v2-6aced2e0c96c51e9716721d41c937a58_720w.webp)
3)本地暂存区提交到git本地仓库
git commit -m 第一次提交本地数据
![](https://pic4.zhimg.com/80/v2-9aaf237ff778552e3db5bf35f25fd197_720w.webp)
4)本地仓库推送到gitee在线仓库
git push -u origin master
![](https://pic1.zhimg.com/80/v2-7b7a8041b6a04c8dd34d3354a7fb6a20_720w.webp)
5)刷新gitee网站的verydows_test仓库页面
verydows_test仓库中正常显示同步上来的文件,则推送脚本完成。
![](https://pic3.zhimg.com/80/v2-7ba8ecd7a00ac2c5a19802a3091256ee_720w.webp)
3、同步数据到本地仓库(这个可以不做,只是演示能下载到本地,Jenkins中配置即可)
再在需要下载并运行脚本的电脑上,同步数据到本地文件夹。
在本地创建一个新的文件夹目录:D:\Git\LocalProject
1)初始化本地仓库,cmd下运行:
cd D:\Git\LocalProject
git init
![](https://pic2.zhimg.com/80/v2-5770e1d12d261086dd2c12afb7aba221_720w.webp)
2)关联gitee仓库和本地仓库
![](https://pic1.zhimg.com/80/v2-c064d4dd8a6f6c45663ad18a3973e290_720w.webp)
git remote add origin https://gitee.com/xxxx/verydows_test.git
![](https://pic2.zhimg.com/80/v2-42a6244245118b72effcea5a05be7309_720w.webp)
3)拉取数据到本地仓库
git pull origin master
![](https://pic4.zhimg.com/80/v2-2d50861b7a6f4e5207383344fcd4633f_720w.webp)
4)查看下载到本地的脚本
![](https://pic2.zhimg.com/80/v2-368ab718b2128d251613e02cf56bb19d_720w.webp)
三、jenkins+git配置
关于jenkins的安装参考前面的文章,本文不再赘述。
1、环境变量配置
1)配置python和git的环境变量。
![](https://pic2.zhimg.com/80/v2-0519e8256722664ae141cf0c6c6402a9_720w.webp)
2)git全局配置
在插件管理->全局工具配置中,如下图配置git工具的本地安装全路径,必须带这git.exe。
否则在创建项目,添加gitee仓库的时候会报出错误:Failed to connect to repository : Error performing command: git.exe ls-remote -h xxxxxxx HEAD
![](https://pic4.zhimg.com/80/v2-c4fbd5e85cf159b7c8d5af1fe206e953_720w.webp)
2、配置私人令牌
在下面链接页面,获取个人gitee账户的私人令牌:
https://gitee.com/profile/personal_access_tokens
![](https://pic3.zhimg.com/80/v2-2bccdb3d33748b59a09bd74a7c115a2e_720w.webp)
弹出的页面中,复制私人令牌的字符串备用。
在Jenkins中:【插件管理->系统配置】中配置gitee参数(需要安装gitee插件)
![](https://pic3.zhimg.com/80/v2-ea7b5404a87e23621363833d11b59d02_720w.webp)
按照下面的配置设置令牌参数,保存。
在上图的证数令牌,下拉框中选择创建的令牌,保存退出即可。
![](https://pic3.zhimg.com/80/v2-f574231ef0e48041ff9605ad28731692_720w.webp)
在jenkins【插件管理->凭据管理】中查看令牌设置好的令牌。
![](https://pic4.zhimg.com/80/v2-b27aea69b8681c04502a5c57f4d120e7_720w.webp)
3、配置项目(jenkins任务)
1)创建一个自由风格的项目
Jenkins首页->新建Item->项目名:verydows_test,选择freestyle project->确定
2)配置gitee链接
![](https://pic4.zhimg.com/80/v2-208d69f7c92589349ce21afd5a8d287b_720w.webp)
3)配置原码管理
在gitee中verydows_test仓库的HTTPs链接(如下图获取)。
![](https://pic2.zhimg.com/80/v2-bde02b6269ae3de10ab649ec394d0109_720w.webp)
在jenkins原码管理处,勾选git管理,Repository URL中输入上图中的地址:
![](https://pic2.zhimg.com/80/v2-daf83161ad1c2d699e0273dc9dc39f39_720w.webp)
此处如果粘贴url后报权限或者访问拒绝问题,主要原因是凭据问题,在上图的Credentials中【添加->Jenkins】,配置gitee的用户名及密码,再在上图中选中即可。
![](https://pic1.zhimg.com/80/v2-ea30a76d8c7fe407535aef8ca4d25754_720w.webp)
4)配置原码下载目录
前3步的内容配置好之后,jenkins结合git就可以实现master代码下载下来,我们可以自定义这个目录的位置:
![](https://pic4.zhimg.com/80/v2-f6ff021abcb69e330fe920dd577de85f_720w.webp)
下面就可以设置触发器了,可以使用gitee的webhook是实现事件触发,但是webhook要求jenkins必须部署在公网上。
此处就已定时触发任务讲解。
5)配置定时任务
在构建触发器中选择时间触发器(Build periodically)。
00 18 * * *:表示每年每月每天的下午六点,触发执行构建。
![](https://pic1.zhimg.com/80/v2-8c8c630f50669c88857fa8a72039e39c_720w.webp)
6)构建项目
选择Execute windows patch command,执行下面任务:
- cd到指定的下载代码所在的文件夹目录:
- 执行脚本中的主运行文件maintest.py
d:
cd D:\Jenkins\workspace
python maintest.py
exit 0
![](https://pic1.zhimg.com/80/v2-b1bf32c1493a58530d097375b88617ac_720w.webp)
7)保存、运行项目
保存退出,立马构建该项目,查看控制台运行情况。
![](https://pic1.zhimg.com/80/v2-caaae771f1f57dcfdc10b1baccbbc4d0_720w.webp)
到我们脚本执行的报告目录下就可以找到html执行报告文件了。
![](https://pic3.zhimg.com/80/v2-cbab1c0f523e11d559515e5ea4680dca_720w.webp)
打开该文件,就是所有自动化脚本的执行情况:
![](https://pic1.zhimg.com/80/v2-a300fa2cb5c0fff1eecfab8245d9c490_720w.webp)
四、总结
到此,我们就成功的实现了jenkins+git+gitee对自动化测试脚本的托管管理、自动部署和执行了。
大家可以仔细研究一遍,对我们建立持续集成思想,会有很大的帮助。
![](https://pic2.zhimg.com/80/v2-884fcd634ab3f3ede18ecfffe3be5d81_720w.webp)
大家要是觉得对自己有帮助的话,就点赞、喜欢、收藏下该文,鼓励一下作者!!!
关注作者、专栏,可方便查阅后续整理的测试相关文章,您的关注是我持续创作的动力!!
-
上一篇
填完信息后,点击立即安装,等待一会,即可完成配置。
继续点击注册用户,第一个注册的用户将会成会管理员。
打开 Gitea 的安装目录,找到
custom\conf\app.ini
,在里面加上一行代码START_SSH_SERVER = true
。这时就可以使用 ssh 进行 push 操作了。
如果使用 http 的方式无法克隆项目,请取消 git 代理。
gitconfig--global --unset http.proxygitconfig--global --unset https.proxy
配置 Jenkins
需要提前安装 JDK,JDK 安装教程网上很多,请自行搜索。
打开 Jenkins 下载页面。
前端项目自动化部署——超详细教程(Jenkins、GithubActions)
本教程主要讲解了怎么使用Jenkins和GithubActions部署前端项目。
-
下一篇
浏览器http://10.10.22.91:10000
等待初始化完成解锁Jenkins
获取初始密码[root@localhost app] cat jenkins/jenkins_home/secrets/initialAdminPassword安装推荐插件
创建用户并配置实例
安装Docker Pipleline插件
在 系统设置->Configure Global Security,不验证ssh可用性
Gitee ssh公匙配置与测试项目提交
1、进入docker容器创建rsa[root@localhost app] docker exec -it jenkins bashroot@c781568bbe98:/ ssh-keygen -t rsa -C senfel@sina.cn后续步骤全部enter
查看公匙并配置在gitee sshroot@c781568bbe98:/ cat /root/.ssh/id_rsa.pub
查看私匙并记住后面jenkins创建流水线配置凭证root@c781568bbe98:/ cat /root/.ssh/id_rsa
2、准备一个项目, 在根目录下创建两个文件Dockerfile、 Jenkinsfile
Dockerfile
FROM openjdk:8-jre-alpine将当前目录下的jar包复制到docker容器的/目录下COPY target/*.jar /app.jar运行过程中创建一个xx.jar文件RUN touch /app.jar;ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms128m -Xmx256m -Djava.security.egd=file:/dev/./urandom"ENV PARAMS=""声明服务运行在8080端口EXPOSE 8080指定docker容器启动时运行jar包ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar /app.jar $PARAMS" ]
Jenkinsfile
pipeline{agent anyenvironment {WS = "${WORKSPACE}"IMAGE_NAME = "demo"}//定义流水线的加工流程stages {//流水线的所有阶段stage(step1:env check){steps {sh pwd && ls -alhsh printenvsh docker versionsh java -versionsh git --version}}stage(step2:compile){agent {docker {image maven:3-alpineargs -v maven-repository:/root/.m2}}steps {sh pwd && ls -alhsh mvn -vsh cd ${WS} && mvn clean package -s "/var/jenkins_home/appconfig/maven/settings.xml" -Dmaven.test.skip=true}}stage(step3:package){steps {sh pwd && ls -alhsh docker build -t ${IMAGE_NAME} .}}stage(step4:arrange){// 删除容器和虚悬镜像steps {sh pwd && ls -alhsh docker rm -f ${IMAGE_NAME} |" alt="实战:Docker+Jenkins+Gitee构建CICD流水线">
实战:Docker+Jenkins+Gitee构建CICD流水线
文章目录