在互联网行业高速发展的今天,掌握CI/CD已经成了加薪必不可少的技能了。要真正做到CI/CD,对于我们测试的要求是相当的高了,芒果在昨天一天的时间里就听了数次的吐槽说这些知识点太难掌握了,要求太多了,自己的代码能力太差了,自己的自控以及学习能力也just so so。
这个时候芒果必须说了:你当然是需要一个一样人美声甜的又细致耐心的芒果来带你一起学习啦。
这篇文章芒果先来带大家看看,基于入门简单、功能又强大的Python怎么来实现CI/CD的吧~
万事开头难,芒果想说要开始提升的第一步就是摆脱对于代码,对于未掌握技能的“畏惧心理”,然后我们就可以开始Python实现持续交付之路啦~
(上图为Java版本,Maven、Nexus、JUnit请自行替换为Python的pip、Unittest等)
01
最开始进行的肯定是我们辛苦的程序猿及程序媛们的进行代码的编写啦~为了保证代码的质量,在代码编写完成之后,使用SonarQube、PyTest、Unittest、coverage等来进行代码扫描、单测,而代码的版本管理Git&GitLab自然必不可少。
02
高质量的代码提交之后,就是我们现在进行得最多的测试阶段了。作为测试,持续测试相信大家都不陌生,接口、性能、安全、自动化测试等等,包括yapi、postman、sqlmap、swagger、selenium、jmeter、locust等等工具或者框架的使用,这里芒果不做过多的介绍。
03
找bug->改bug->回归测试,继续找bug->继续改bug,如此循环直待通过验收,就可以进行部署啦~对于现在的微服务架构,要做到持续部署,容器化跟自动化部署是必然的选择。将开发好并经过测试、通过验收的应用以及依赖包封装在可移植容器docker中,使用k8s进行容器的管理;对于服务的部署、配置管理我们可以使用ansible等自动化运维工具。
04
在整个执行过程中,我们使用神奇Jenkins来进行包括代码的静态扫描、自动化测试脚本的执行、自动化部署代码的执行等等来管理构建流程。
当当当当~“打开冰箱门->把大象放进去->关上冰箱门”简单三步把大象放进了冰箱;开发->测试->部署搞定整个软件开发持续交付流程。
回过头来芒果跟大家捋一捋上面提到的技术要点:
开发:
作为基础Python的基础语法、编码规范等等是必学的;为了后续自动化测试平台的搭建、了解Web开发原理以及流程,Web开发、前端也是得有一定了解的,所以给大家推荐《Python编程-从入门到实践》作为入门书籍。
作为重要一环的持续集成,使用版本管理工具Git&GitLab帮我们管理控制代码;使用SonarQube、PyTest、Unittest、coverage等来进行代码扫描、单测保证代码质量;借助开源的持续集成工具Jenkins来帮我们管理必要的。关于以上这些工具的使用大家可以在官网找到详细的介绍以及使用。
Git:https://git-scm.com/doc
Jenkins:https://jenkins.io/doc/
SonarQube:https://docs.sonarqube.org/latest/
测试:
作为测试,相信大家都不陌生,这里芒果不做过多的介绍,大家可以在语雀的TestOps社区找到对应的介绍。
语雀的TestOps社区地址:https://www.yuque.com/testops
部署:
除了持续测试,跟测试人员相关性最大的,也是大部分测试人员所欠缺的技术可能就是持续部署相关技术了。这里芒果给大家推荐《第一本Docker书》和《Kubernetes权威指南》来学习容器的使用跟管理,对于ansible推荐大家看看《Ansible权威指南》。
在前面掌握了敏捷&DevOps理论体系之后,芒果会带大家逐一了解基于Python的CI/CD实现细节哟,
前面芒果也写过一篇文章给大家介绍基于Python而言TestOps应该掌握哪些技能:
测试运维工程师必会技能
下面是刚刚推荐的书单:
Python编程-从入门到实践
Python入门用书,这本书的第一部分非常详细的介绍用Python 编程所必须了解的基本概念;第二部分将理论付诸实践,讲解如何开发三个项目,包括创建和定制简单的Web 应用,我们可以参照开始搭建自己的自动化测试平台
Ansible权威指南
说到自动化运维,开源的运维工具Ansible不得不提,本书不但介绍了Ansible的基础知识,还介绍了Ansible的实践经验和高阶的二次开发,对Ansible的周边扩展介绍得比较实在,理论联系实践,对于深入了解自动化运维技术能起到非常好的铺垫作用
第一本Docker书
微服务时代,容器化是必经之路,本书由Docker公司前服务与支持副总裁James Turnbull 编写,是权威的Docker 开发指南,从Docker的原理到如何自己动手玩转Docker统统都有
Kubernetes权威指南
鼎鼎有名的容器管理K8S推荐用书,容器圈重磅开山作,本书囊括了Kubernetes入门、核心原理、实践指南、开发指导、高级案例、运维指南及源码分析等方面的内容,由浅入深地介绍了Kubernetes容器云平台,并围绕着生产环境中可能出现的问题,给出了大量的典型案例,有很好的可借鉴性