- 0 背景
- 1 单元测试
- 1.1 创建jekins项目
- 1.2 配置文件配置
- 12.0 配置对应的gitlab
- 1.2.1 git配置
- 1.2.2 构建触发器配置
- 1.2.3 构建配置
- 1.2.4 构建后操作
- 1.3 构建
- 2 压力测试
- 2.1 安装Aphache Jmeter
- 2.2 配置jemter文件并进行本地测试
- 2.3 配置jekins
- 3 排错
- 附录
持续集成是 DevOps 最重要的部分,用于集成各个 DevOps 阶段。Jenkins 是最著名的持续集成工具。
Jenkins 是一个用 Java 编写的开源自动化工具,带有用于持续集成的插件。Jenkins 用于持续构建和测试您的软件项目,从而使开发人员更容易将更改集成到项目中,并使用户更容易获得新的构建。它还允许您通过与大量测试和部署技术集成来持续交付软件。
借助 Jenkins,组织可以通过自动化来加速软件开发过程。Jenkins 集成了各种开发生命周期过程,包括构建、文档、测试、打包、模拟、部署、静态分析等等。
Jenkins 借助插件实现了持续集成。插件允许集成各种 DevOps 阶段。如果要集成特定工具,则需要安装该工具的插件。例如 Git、Maven 2 项目、Amazon EC2、HTML 发布者等。
1 单元测试 1.1 创建jekins项目- 1, 先编写一个简单的spring boot项目,上传到gitlab/github上;
- 2,在jenkins的主页,点击新建任务,选择构建一个自由风格的项目;
下面这个Gitlab Connection的网址为安装插件时,就配置好了。
- 1,配置以上的Gitlab Connection,首先为Jekins安装gitlab的插件;
- 2,登录上gitlab,点击“Access Tokens”,输入“Name”和“Expries at”,勾选“api”,点击“Create personal access token”,生成access token,记录下来;
- 3,在系统管理的系统配置中,配置如下的gitlab,添加对应的token;
在配置文件中依次配置下面的信息:
1.2.1 git配置- 3 ,在源码管理中添加git配置,输入git项目的URL复制到Repository URL中,
- 4,点击Credentials中的添加按钮,根据自己的需求添加自己的凭证,这里选择Username with password,然后输入自己的用户名和密码,选择添加,最后在Credentials中的下拉框中选择自己的凭证;
- 5,在构建触发器中,选择如下的配置,同时在gitlab上的设置的集成(Integrations)中添加webhook(URL填写构建触发器中提示的那个);
- 5,在构建中,选择调用顶层maven配置,maven版本选择服务器上安装了的版本,目标填写自己项目src下的需要测试的文件夹名;
- 6,在构建后操作中选择Public HTML reports,点击新增;
- 7,在IDEA的终端中,运行mvn test,然后文件夹中会出现编译后的路径,复制jacoco(插件,用于单元测试的)的路径到HTML directory to archive中;
- 8,在增加构建后的步骤中,选择Record JaCoCo coverage report,最后点击应用,新建后会产生一个如下图的标志,
- 9, 修改代码(如果不确定远程可以构建,可以现在本地运行mvn test【test可以替换为自己构建的项目】),在上传完代码到git托管平台后,点击立即构建按钮(如果项目没有改变,则构建会失败);
- 10,点进#6,就可以看到如下的界面,点击Coverage Report,就可以看到覆盖率报告。
官方下载网址,下载后解压安装即可,由于本机是mac,直接下载编译好的文件,然后解压,打开文件就可以。
打开文件方法如下:
cd /Applications/apache-jmeter-5.4.3/bin sudo sh jmeter
下面的选项,可以配置语言:
-
1,新建线程组,配置测试信息;
-
2,添加http请求,并配置相应的信息(IP、端口、路径、Get/Post类型、请求体【如果有的话,】);
get请求参数:
post请求json:
-
3,添加聚合报告和结果树;
-
4,保存配置并运行测试;
-
5, 结果如下;
- 6,本地测试没有问题后,把刚刚保存的jml文件移到项目中,路径没有限制(不过最好在压测的项目中单独新建一个文件夹存储);
- 7,在项目的根目录下,添加build.xml文件用于apache ant使用jmeter;
根据自己的实际情况更改build.xml配置中的配置信息(完整的文件内容,附在文章末尾);
下面配置中的basedir为jml文件存放的相对路径;
下面配置中的name的信息,用于构建后操作中的HTML directory to archive 、Index page[s]的名称;
2.3 配置jekins
创建自由风格的项目后,进行如下的配置:
- 1,源码管理,复制git项目的URL地址;
- 2,构建触发器;
- 3,构建环境,添加apache ant自动化工具(需要提前安装ant插件);
ant插件配置(系统管理 - -> 插件管理中进行安装),在系统管理 - -> 系统配置中进行配置:
- 4,构建中,添加Invoke Ant,进行如下配置(填写相对路径),target中添加三个指令:清除、测试、报告;
- 5,构建后的操作,添加html报告,然后点击新增,然后进行如下配置;
下面的HTML directory to archive、Index page[s]一定要填写build.xml中编写的配置信息(
解释:HTML directory to archive:需要存储的 HTML 所在的目录,这个目录是相对job的workspace的只需要输入相对路径就可以了,如果路径输错,job 可能不会执行。Jenkins 会把你输得这个目录下的文件都存储到build信息中(如果是在从节点上执行的,会把这个目录下的文件全部存储在主节点下;如果是在主节点下执行的,则会从workspace中存储到build文件夹下),页面上显示的html 并不是直接从你输入的路径中读取的。
- 6 ,点在立即构建后,等待构建完成;
- 7,如果构建成功后,点击HTML Report,便可以查看报告。
如果项目构建失败,可以点击构建的项目,进入控制台输出查看报错。
下面是安装过程中,遇到的一些错误,希望大家可以避坑
- 1,BUILD FAILED /var/jenkins_home/workspace/jkTest3/SpringCloudTest/build.xml:48: input file /var/jenkins_home/apache-jmeter-5.4.2/work/resultLog/jtl/TestReport.jtl does not exist【解决办法:build.xml中的basedir不对,导致ant没有使用jmeter进行构建】
- 2,[ERROR] The goal you specified requires a project to execute but there is no POM in this directory 【解决办法:项目的pom.xml的配置不对,注意父子依赖】
build.xml:
本轮构建的结果如下: ${report}



