Jenkins 持续集成体系介绍
Jenkins 持续集成体系介绍
简介
持续集成CI/持续交付CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。
CI/CD 的核心概念是持续集成、持续交付和持续部署。本文我们将学习最流行的持续集成工具 Jenkins 的使用。
Jenkins 是一个广泛用于持续构建的可视化 Web 工具,持续构建是各种项目的“自动化”编译、打包、分发部署。Jenkins 可以很好的支持各种语言(比如:Java、 c#、 php)的项目构建,也完全兼容 ant、maven、gradle 等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如 Github 直接集成。
Jenkins 是框架集,可以整合任何内容,从而实现公司的持续集成体系,比如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试。Jenkins 可自由部署在各平台:Windows、Linux、Mac。
环境安装
Jenkins 的安装有两种方式:
- 下载 war 包,直接通过 Java 运行或者通过 tomcat 等容器运行;
- 使用 docker 镜像进行部署和运行;
通过 war 包进行 Jenkins 部署
- 直接运行 war 包,访问 http://ip:8081
java -jar jenkins.war --httpPort=8081
- tomcat 部署 jenkins.war
- 将 jenkins.war 复制到 tomcat 的 /webapps 目录下
- 启动 tomcat,访问 http://ip:8080/jenkins
通过 Docker 运行 Jenkins
安装Docker
官网下载最新版本安装:
https://www.docker.com/
Docker 布署 Jenkins
1、创建 docker 的文件影射卷
docker volume create jenkins-hogwarts
2、创建实例
docker run -d --name myjenkins -p 8080:8080\ -p 50000:50000 -v /<your path>:/var/jenkins_home \ jenkins/jenkins
3、获得初始管理密码
docker exec jenkins-hogwarts cat /var/jenkins_home/secrets/initialAdminPassword
注意:如果忘记初始化密码,容器启动成功后,使用docker exec -it myjenkins bash进入刚启动的 Jenkins 容器,执行以下命令即可获取初始命令:
cat /var/jenkins_home/secrets/initialAdminPassword
然后输入初始化密码,安装推荐插件。
建立管理员用户,管理员账号是后续用于添加用户和管理权限的。
Jenkins job 机制
Job 是 Jenkins 的一个执行计划,是一系列操作的集合,构建是 Jenkins 的任务的一次运行。
创建job及配置详解
- 新建 Jenkins Job
- 类型选择”自由风格“
- 设置构建记录的最大保留数(保留天数和构建次数)
- 源码管理(可选择 SVN、Git)
- 通过构建,可以执行 windows、shell 命令触发脚本执行
- 添加构建参数(用于参数化构建)
- 设置定时构建,格式为分钟、小时、日期、月份、星期
定时构建场景举例
#1.每30分钟构建一次 H/30 * * * * #2.每2小时构建一次 H H/2 * * * #3.每天早上8点构建一次 0 8 * * * #4.每天的8点、12点、22点,1天构建3次 0 8,12,22 * * * #5.每3分钟构建一次,每天0点至23:59,周一至周五执行该任务 H/3 0-23 * * 1-5
插件管理
Jenkins 强大的原因之一就是插件众多,插件帮助 Jenkins 丰富自身原有的功能。
安装插件
- 进入插件安装页面: Manage Jenkins -> Manage Plugins -> Avaliable
- 在 Filter 中输入希望安装的插件名称,然后看一下过滤结果
- 如果插件存在,勾选该插件,然后执行 “Download now and install after restart”
- 标签也分别代表 Update(可更新), Available(可选的), Installed(已安装), Advanced(高级 – 配置代理服务 或者 自定义插件)
安装 Jenkins Allure plugin 插件
1、进入插件安装页面: Manage Jenkins -> Manage Plugins -> Avaliable
2、搜索 Allure
3、选择 Jenkins Allure plugin 安装,重启 Jenkins
UI 自动化测试持续集成
打包依赖
Python 有强大的包管理工具 pip,我们可以用 pip 导出项目中的依赖包:
pip freeze > requirements.txt git add requirements.txt git commit -m “add requirements.txt” git push
在部署/测试环境中安装依赖
1、解决环境初始化问题,如果没有 venv 环境,就创建并安装依赖
[ -d tutorial-env ] || python -m venv tutorial-env
2、加载 venv 环境
source tutorial-env/bin/activate
3、更新依赖
pip install -r requirements.txt
4、运行测试,并生成 JUnit 测试结果和 Allure2 的报告
python -m pytest --junitxml=junit.xml --alluredir=allure_results/ test_cases
经过上述步骤,就可以在服务器部署的时候直接安装需要的依赖库,而不用等着报错再去一个一个安装了。
另外pip freeze > requirements.txt指令必须用在整个工程项目完全跑通的情况下,才能将所有的有关依赖库写入 requirements.txt 文件中去,而pip install -r requirements.txt指令则使用于服务器部署时较为合适。
Jenkins 生成测试报告
配置 allure commandline
- Manage Jenkins 管理 Jenkins
- Global Tool Configuration 全局工具管理配置
- 点击 Allure Commandline 安装,如下图:其中name可随便定义,作为标识。
配置 Post-build Actions
- Add post-build action
- Publish JUnit test result report
- 构建1次
- 构建2次
如图:
Jenkins Allure 测试报告
查看报告
安装完 Allure 插件之后,执行 Jenkins job, 生成的测试结果会将结果 Allure history trend 展示在项目首页,如下图:
每个项目结果都会生成独立的测试报告,查看单个job的测试结果报告,如下图:
Jenkins 生成的项目趋势图,如下图:
小结
以上,阅读完本章节,恭喜你已经进一步掌握了互联网移动 App 自动化测试技术体系实战技能。更多测试技术进阶方向与学习资料内容,请阅读下一小节内容。
<p> 专刊包含了10+年经验测试架构师对测试职业发展的深度解读 帮助你掌握当下 BAT 流行的 App 自动化测试技术基础技能和工具使用;以及从入门到进阶的自动化测试实战经验,在面试中能够脱颖而出。 本专刊购买后即可解锁所有章节,故不可以退换哦~ </p> <p> <br /> </p> <p> <br /> </p>