ALLEN老师自动化测试小课堂借助git+Jenkins实现脚本管理、部署及定时执行
前面我们已经学习了如何使用python+selenium+unittest+ddt等实现脚本的开发,并且可以在jenkins中实现定时任务的设置,下面我们借助git及Jenkins公式实现队自动化脚本的管理、部署及定时执行。
- git:自动化脚本版本控制、部署、协同开发等。
- gitee:码云,是基于git实现在线代码托管的仓库。
- jenkins:集成git及自动化脚本的定时任务设置。
一、git及gitee的使用
git 是一种版本控制系统,是一个命令,是一种工具。
gitee 即码云,是基于git实现在线代码托管的仓库,免费使用,不用自己搭建环境。
github也是一款常用的在线托管的仓库,相比而言,国内使用gitee更方便。
1、git安装
我们介绍比较简单的win10系统下安装git的方法,官网下载链接:
https://git-scm.com/download/win
2、gitee注册
目前 Gitee 提供了面向个人开发者的「社区版」和面向企业研发团队的「企业版」服务,支持 Git/SVN 管理,提供代码审核、Bug 跟踪以及 Webhook 钩子回调等功能,开发者可以在 Gitee 自行创建仓库。
如果是我们自己用的话,可以注册个人开发者用户,可免费创建 1000 个仓库(不限公有、私有),提供最多 5G 的免费代码存储空间。
通过访问码云首页右上角点击「注册」或点击「加入 Gitee」即可注册个人账号。
https://gitee.com/
在 Gitee 的注册界面依次填入各项,需注意的是:邮箱建议填写国内邮箱如163邮箱/QQ邮箱,以免因为众所周知的原因无法接收激活邮件,个性地址一经选定,无法修改,请慎重填写。当然,你也可以通过微信授权等第三方登录平台授权登录,授权登录后按照引导提示填写相关信息即可完成注册。
二、git进行脚本的管理
Git 的工作就是创建和保存你项目的快照, 常用的命令:git clone、git push、git add、git commit、git checkout、git pull。
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1、gitee设置
1)注册并登录gitee,并在gitee中创建一个空分支的项目,创建仓库verydows_test。
可以生成一个未初始化的在线仓库,以备后面用。
2)创建gitee的SSH公钥
Gitee 提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
进入git安装目录,右键鼠标,点击git bash,输入:
ssh-keygen -t rsa -C "XXXXX@163.com"
按照提示完成三次回车,即可生成 ssh key,在下面文件夹中查看,打开并复制id_rsa.pub文件中的内容。
在gitee的【设置->SSH公钥】中添加标题和公钥,保存退出即可。
3)配置git的全局环境
在git bash命令行中输入如下命令,设置全局的用户名和邮箱。
git config --global user.name "ALLEN"
git config --global user.email "xxxxx@163.com"
2、推送脚本到gitee
我们需要提前准备使用python+selenium+unittest+ddt等实现的自动化脚本,在本地已经能够正常运行。
在脚本开发的目录下(D:\Git\project),启动cmd命令行,分别执行如下的命令,实现本地仓库上传到gitee的在线仓库。
1)生成一个隐藏的目录.git文件夹,生成本地仓库
cd D:\Git\project
git init
2)关联本地仓库gitee上的无分支仓库
先在gitee上获取verydows_test的HTTPS链接地址,复制出来即可。
在cmd窗口继续输入指令,不报错就可以继续了:
git remote add origin https://gitee.com/xxxxx/verydows_test.git
3)将本地所有文件加载到本地暂存区
通过执行git add *可以将当前文件夹下所有的文件及文件夹一起加载。
如果需要加载某个文件或者文件可以分别执行:
git add maintest.py
git add public/
git add *
3)本地暂存区提交到git本地仓库
git commit -m 第一次提交本地数据
4)本地仓库推送到gitee在线仓库
git push -u origin master
5)刷新gitee网站的verydows_test仓库页面
verydows_test仓库中正常显示同步上来的文件,则推送脚本完成。
3、同步数据到本地仓库(这个可以不做,只是演示能下载到本地,Jenkins中配置即可)
再在需要下载并运行脚本的电脑上,同步数据到本地文件夹。
在本地创建一个新的文件夹目录:D:\Git\LocalProject
1)初始化本地仓库,cmd下运行:
cd D:\Git\LocalProject
git init
2)关联gitee仓库和本地仓库
git remote add origin https://gitee.com/xxxx/verydows_test.git
3)拉取数据到本地仓库
git pull origin master
4)查看下载到本地的脚本
三、jenkins+git配置
关于jenkins的安装参考前面的文章,本文不再赘述。
1、环境变量配置
1)配置python和git的环境变量。
2)git全局配置
在插件管理->全局工具配置中,如下图配置git工具的本地安装全路径,必须带这git.exe。
否则在创建项目,添加gitee仓库的时候会报出错误:Failed to connect to repository : Error performing command: git.exe ls-remote -h xxxxxxx HEAD
2、配置私人令牌
在下面链接页面,获取个人gitee账户的私人令牌:
https://gitee.com/profile/personal_access_tokens
弹出的页面中,复制私人令牌的字符串备用。
在Jenkins中:【插件管理->系统配置】中配置gitee参数(需要安装gitee插件)
按照下面的配置设置令牌参数,保存。
在上图的证数令牌,下拉框中选择创建的令牌,保存退出即可。
在jenkins【插件管理->凭据管理】中查看令牌设置好的令牌。
3、配置项目(jenkins任务)
1)创建一个自由风格的项目
Jenkins首页->新建Item->项目名:verydows_test,选择freestyle project->确定
2)配置gitee链接
3)配置原码管理
在gitee中verydows_test仓库的HTTPs链接(如下图获取)。
在jenkins原码管理处,勾选git管理,Repository URL中输入上图中的地址:
此处如果粘贴url后报权限或者访问拒绝问题,主要原因是凭据问题,在上图的Credentials中【添加->Jenkins】,配置gitee的用户名及密码,再在上图中选中即可。
4)配置原码下载目录
前3步的内容配置好之后,jenkins结合git就可以实现master代码下载下来,我们可以自定义这个目录的位置:
下面就可以设置触发器了,可以使用gitee的webhook是实现事件触发,但是webhook要求jenkins必须部署在公网上。
此处就已定时触发任务讲解。
5)配置定时任务
在构建触发器中选择时间触发器(Build periodically)。
00 18 * * *:表示每年每月每天的下午六点,触发执行构建。
6)构建项目
选择Execute windows patch command,执行下面任务:
- cd到指定的下载代码所在的文件夹目录:
- 执行脚本中的主运行文件maintest.py
d:
cd D:\Jenkins\workspace
python maintest.py
exit 0
7)保存、运行项目
保存退出,立马构建该项目,查看控制台运行情况。
到我们脚本执行的报告目录下就可以找到html执行报告文件了。
打开该文件,就是所有自动化脚本的执行情况:
四、总结
到此,我们就成功的实现了jenkins+git+gitee对自动化测试脚本的托管管理、自动部署和执行了。
大家可以仔细研究一遍,对我们建立持续集成思想,会有很大的帮助。
大家要是觉得对自己有帮助的话,就点赞、喜欢、收藏下该文,鼓励一下作者!!!
关注作者、专栏,可方便查阅后续整理的测试相关文章,您的关注是我持续创作的动力!!
-
上一篇
填完信息后,点击立即安装,等待一会,即可完成配置。
继续点击注册用户,第一个注册的用户将会成会管理员。
打开 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流水线
文章目录