环境搭建
https://www.cnblogs.com/yoyoketang/p/6848340.html
一、jenkins是什么?
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
Jenkins 是什么?
Jenkins 是一个可扩展的持续集成引擎。
主要用于:
持续、自动地构建/测试软件项目。
监控一些定时执行的任务。
Jenkins 拥有的特性包括:
易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
易于配置-所有配置都是通过其提供的web界面实现。
集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
生成JUnit/TestNG测试报告。
分布式构建支持Jenkins能够让多台计算机一起构建/测试。
文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。
二、CI/CD是什么?
CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。借用网络图片对CI加以理解。
CI
CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。下图反应的是CI/CD 的大概工作模式。
CI/CD
二、实操工具整体介绍
1.下载安装jenkins
参考:
https://blog.csdn.net/zjh_746140129/article/details/80836173
https://blog.csdn.net/qq_29914837/article/details/82779697
https://blog.csdn.net/maguanghui_2012/article/details/82906203
https://blog.csdn.net/qq_26848099/article/details/78901240
2.创建新的job及配置
https://blog.csdn.net/XTY00/article/details/103252967
https://blog.csdn.net/yinyxn/article/details/80184562
3.源码管理
3.1 none:代码放在本地
jenkins的工作空间是workspace,所以我们需要将python代码拷贝到workspace下的job目录中
3.2 subvesion---SVN
https://blog.csdn.net/xu19950210rou/article/details/74433128
4.构建触发器 + 构建环境
4.1定时构建
https://www.cnblogs.com/yy-cola/p/9483472.html
https://www.cnblogs.com/hong-fithing/p/10547176.html
4.2 构建环境
https://www.cnblogs.com/software-test/p/7068262.html
https://www.cnblogs.com/zuodaozhudemeng/p/7479613.html
5.构建
采用windows的批量执行命令------执行windows的cmd
执行python文件:python 文件名.py or pytest 文件名.py --junitxml == test_report.xml
批处理命令学习:https://www.cnblogs.com/xpwi/p/9626959.html
https://www.jb51.net/article/141568.htm
6.构建后操作
python中采用junit.xml的测试报告,选择的时候,选择publish Junit test result report
如若采用了allure,还要添加allure插件,添加allure report ,注意:此时allure report 的path必须和junit report的测试报告名称是一样的路径