遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

自动化必备:自动化持续集成环境搭建(上):git + maven + jenkins

前言

当前,自动化已经是测试必备技能之一了,除了要会设计、开发自动化测试框架,搭建自动化持续集成环境也是必须的,本篇,将演示如何搭建自动化持续集成环境;

因为大多数公司是java项目,所以,我在idea中使用springboot开发了几个简单的mock接口,接口自动化测试框架使用【接口自动化测试实战】中实战3的框架,代码仓库我用gitee演示,如果你的是github或者gitlab,也是可以的;

思路介绍

想必部分公司的情况是:开发先把代码提交到代码仓库、测试再通过jenkins去拉取对应的分支、然后测试运行自动化测试框架执行测试脚本、最后查看报告。。。

可否开发提交了代码,后续的任务都自动执行呢?当然是可以的,即:(docker版后续更新

  1、开发提交代码

  2、jenkins自动从代码仓库(gitee)拉取对应分支的代码

  3、自动打包

  4、自动部署

  5、自动从gitee拉取接口自动化测试框架及脚本

  6、自动执行测试脚本

  7、生成测试报告

  8、把报告发布在一个服务下大家通过浏览器访问(也可以发送邮件);

下面就介绍这个流程的具体实现。

环境准备

安装jdk、tomcat、jenkins、maven、git

  jdk:https://www.cnblogs.com/uncleyong/p/10732951.html

  tomcat:https://www.cnblogs.com/uncleyong/p/10742650.html

  jenkins:https://www.cnblogs.com/uncleyong/p/10742867.html

  maven:https://www.cnblogs.com/uncleyong/p/10743181.html

  git(务必源码安装git,yum安装的版本低,会出问题):https://www.cnblogs.com/uncleyong/p/10767747.html

jenkins安装插件

安装gitee插件(因为我的代码仓库是gitee)

maven插件和git插件在安装jenkins的时候已经自动安装好了

maven插件

git插件

jenkins全局工具配置

系统管理→全局工具配置

git

 

 maven

 

 

 jdk

 

jenkins和gitee通讯方式

这里演示使用https,如果你要使用ssh,需要做配置,即提前将Jenkins所在服务器的key添加到gitee上,配置免密登录

先生成秘钥

把公钥添加到gitee

详细请参考:https://www.cnblogs.com/uncleyong/p/6891958.html

 

jenkins任务创建及配置

输入任务名称、选择【创建一个maven项目】

 

源码管理选择Git、输入远程仓库地址 

远程仓库地址获取方式如下:

点击添加→Jenkins

输入gitee的账号密码

或者提前在下面通过账号密码添加,依次点击【系统】--【全局凭据】

 

选择类型为用户名和密码、输入你自己gitee的用户名和密码 

 

如果是ssh方式,Private Key填写Jenkins主机的root用户私钥(/root/.ssh/id_rsa),用户是启动tomcat服务的用户,我是用root安装、启动的

选择刚刚添加的认证、选择master分支

构建

创建一个存放jar包的目录

 

 构建成功执行shell脚本(里面部分命令是调试用的,可以自行删除,比如:显示当前路径pwd)

 

 

 点击【应用】、【保存】

 

现在没项目服务

 

【立即构建】

 

失败了

 

查看控制台输出

 

 

 错误信息

解决方案:https://stackoverflow.com/questions/59763531/maven-dependencies-are-failing-with-501-error

上面提示,自2020年1月15日起,中央存储库不再支持通过纯HTTP进行的不安全通信,并且要求对存储库的所有请求都通过HTTPS进行加密。

于是我们在构建过程中所依赖的settings文件中,加入以下配置:

内容

参考:https://www.cnblogs.com/flashfish/p/12202305.html

        <mirror>
                <id>central</id>
                <name>Maven Repository Switchboard</name>
                <url>https://repo1.maven.org/maven2/</url>
                <mirrorOf>central</mirrorOf>
        </mirror>

重新构建,构建成功

 

放jar包的目录下可以看到已经有jar包,且服务也启动起来了

浏览器访问成功了

 

触发构建项目

上面,是我们手动点击构建后,jenkins去gitee拉取的代码,这一小节,演示触发构建,即开发提交代码后就自动化拉取代码、构建。。。

先把之前的服务停了,jar包删了

点击【配置】

 

构建触发器,可以看到在Gitee webhook中要填写的url

 

 点击【生成】

生成密码 

 

点击【应用】、【保存】

 

 gitee中配置,在演示的java项目中,【管理】--【WebHooks】--【添加】

 

 填入上面jenkins中的url和密码

 

上面点击【添加】后,点击下方【测试】

 

 可以看到,jenkins自动构建了

 

 构建成功

 

 服务也启动起来了

浏览器访问成功

 

下面我们模拟开发提交代码

先把之前的服务停了,jar包删了

我们将部门改为“持续集成部” 

 

add--commit--push代码,另外,git基础请参考:https://www.cnblogs.com/uncleyong/p/10854115.html

 

代码仓库可以看到更新

 

 

 jenkins自动构建

 

服务也启动了

 

url访问,可以看到部门变成了“持续集成部”

持续集成shell脚本优化

现在遗留的问题是,每次需要先手动停止服务、手动删除jar包

我们可以写一个简单的shell脚本

内容如下(里面部分命令是调试用的,可以自行删除,比如:显示当前路径pwd):

命令中,改为执行这个shell脚本

性别改为“女”

add--commit--push

 

自动构建成功

 

日志

服务启动起来了

浏览器请求,性别显示是“女”

 

下一篇,将集成自动化测试框架,自动运行测试脚本、生成测试报告、发布报告。

自动化必备:自动化持续集成环境搭建(下):git + maven + jenkins

https://www.cnblogs.com/uncleyong/p/12229900.html

 

posted @ 2019-05-06 20:19  全栈测试笔记  阅读(5776)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end