Gitlab和Jenkins集成部署操作指南(Python3.5)
1、分享背景
- 时代刚需:Python 2.7在进入2020年后将不再得到维护。起初,官方并没有给出具体的日期表明何时停用Python 2.7。然鹅,随着疫情的到来,我们也意识到,python2.7的停用日期已更新为2020年1月1日了。所以:
- Python 2,谢谢你这么多年来提供的忠诚服务。
- Python 3,现在该你上场了。
- 大问题:Python 3并不向后兼容。
- 面临调整:2020年在git上存储的自动化脚本、jenkins的python运行环境都是在python2.7上进行的,所以根据上述的“时代刚需”,我们QA应该拥抱变化,及时调整,向python3的时代迈进。所以就引出了今天的分享:python3的时代,我们应该如何进行自动化脚本编写和Jenkin集成呢?
2、认识gitlab和jenkins
- Gitlab:仓储,相当于我们工作时存放一切信息的仓库。不过在我们本次分享中,它充当着自身万千角色中的一个特定角色:自动化代码存放的仓库。
- Jenkins:持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。在我们本次分享中,它扮演这另一个角色:自动化测试脚本持续自动构建运行器。
3、Gitlab和Jenkins集成思路和准备
- 思路:Jenkins上首先要有要持续集成运行的工程,有了工程之后还要配置文件去将Gitlab上的代码取到。Gitlab上要有可以提供给Jenkins运行的代码,还要有提供给Jenkins调取和运行代码的一些参数化信息,所需工具信息。以此,Jenkins和Gitlab便可以通过配置文件和代码、配置信息的牵线搭桥而持续化集成起来了。我想,这就是持续化集成的一个简单思路吧。
- Jenkins上要有什么?
- python3的运行环境
- 创建工程
- 配置参数、配置运行脚本的路径
- Gitlab上要有什么?
4、Gitlab上的具体实现
- 拉取代码,合并本地分支,编写代码
- git clone
- git checkout develop
- 编写代码:噼里啪啦
- 提交代码:
- git add . //别忘记有个点,点前面有个空格
- git commit -m “提交的message”
- git remote -v //查询当前远程的版本
- git pull origin master //[示例1:拉取远端origin/master分支并合并到当前分支]//直接拉取并合并最新代码
- 或者 git pull origin dev //[示例2:拉取远端origin/dev分支并合并到当前分支]
- git push origin dev //[示例2:将当前分支提交到远端origin/dev分支]//从本地提交代码到服务器
- 配置Jenkins运行时所需文件、添加代码运行时所用到的模块
- Jenkins运行文件位置:https://gitlab.gridsum.com/gov_law_tech/QA/-/tree/develop/jenkins
- 增加并修改Jenkins运行文件,修改点:
- 参数定义
"clean", "prepare", "test"
对应动作的执行代码值
- 查看并根据所需增加模块
- requirement存放地址:https://gitlab.gridsum.com/gov_law_tech/QA/-/tree/develop/jenkins
5、Jenkins上的具体实现
- 创建工程地址:http://cicd.gridsum.com/job/qa.pythonTest
- 新建项目
- 填写项目名称,以天津公安的案件办理模块为例:“qa_techpub_tjga_AJBL_test”
- 在复制项拷贝qa_techpub_tjga_AJBL_test粘贴
- 保存(录屏见最下方备注)
- 点击工程的“配置”,修改执行脚本中的参数字段、配置文件拉取路径,修改点:
- 环境变量:结合要运行代码的地址和运行所需
- 配置文件拉取路径:结合要运行代码对应的在Gitlab中的Jenkins文件
- 环境变量:结合要运行代码的地址和运行所需
- 保存配置
6、查看Jenkins的构建结果
- 点击构建,等待运行结果
- 截图:
- 截图:
- 查看测试脚本的运行结果
- 大功告成,功德圆满
7、遇坑指南
- Jenkins配置文件填写不正确,引发jenkin运行时找不到运行文件
- 解决办法:学会读懂Jenkins的控制台输出,像开发排查运行日志一样,查看运行时出现的异常,定位出在哪一步出现的错误。
- 字符编码的问题
- 要了解字符编码与解码的相关知识,基础点,随时发现后,随时百度进行解决。
8、引申(根据分享时间):字符编码与解码
- ASC11码
- GBK
- GB2318
- Unicode
- utf-8
- 编码与解码
本次分享后的鸡汤
- 谈一谈怎么做一个优秀的测试
- 谈一谈怎么让测试工作产出变得举足轻重
- 谈一谈测试的美好未来
附件:
- 分享完后的录屏存放
- Jenkin新建项目操作方式录屏参考