前言

jmeter + ant + jenkins 本篇将开始学习Linux下搭建,完成持续集成测试的demo。

一、必备环境

1、jdk(docker安装jenkins的小伙伴请忽略此步骤)

2、jmeter

3、ant

4、jenkins(本篇是docker安装的jenkins,其它方式安装也类型一样部署)

5、git 或 gitlab 或无代码托管(build.xml、jmx、等样式代码)

以上必备环境如果没有安装好那么请详细看这篇(jenkins/git/gitlab需自行安装,这里不展开):

安装docker请参考:

【docker-jenkins重点】

1、将jmeter目录挂载到jenkins容器目录;

我docker-jenkins挂载目录为/root/jenkins/,我已将jmeter、ant挂载至此,如下:



[root@iZbp19lugf22zbsubsf1y6Z jenkins]# pwd
/root/jenkins
[root@iZbp19lugf22zbsubsf1y6Z jenkins]# ll
total 292
drwxr-xr-x   6 root root  4096 May 10 21:42 apache-ant-1.9.15
drwxr-xr-x   8 root root  4096 Jan  2  1970 apache-jmeter-5.3



2、将ant目录挂载到jenkins容器目录,且设置环境变量;

设置容器内部环境变量:

①查看jenkins容器:



[root@iZbp19lugf22zbsubsf1y6Z ~]# docker ps
a14a6692e225        jenkinsci/blueocean    "/sbin/tini -- /usr/…"   8 months ago        Up 2 hours          0.0.0.0:50000->50000/tcp, 0.0.0.0:3006->8080/tcp   jenkins
[root@iZbp19lugf22zbsubsf1y6Z ~]#



②进入容器bash:



[root@iZbp19lugf22zbsubsf1y6Z ~]# docker exec -it a14a6692e225 /bin/bash
bash-4.3$



③设置ant环境变量,且执行生效;

将以下复制粘贴至最后一行:vi /etc/profile

# ANT_HOMEANT_HOME=/var/jenkins_home/apache-ant-1.9.15export PATH=$PATH:$ANT_HOME/binexport PATH=$PATH:$ANT_HOME/lib



bash-4.3$ vi /etc/profile

export CHARSET=UTF-8
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PAGER=less
export PS1='\h:\w\$ '
umask 022

for script in /etc/profile.d/*.sh ; do
        if [ -r $script ] ; then
                . $script
        fi
done


# ANT_HOME
ANT_HOME=/var/jenkins_home/apache-ant-1.9.15
export PATH=$PATH:$ANT_HOME/bin
export PATH=$PATH:$ANT_HOME/lib



④环境变量生效及验证版本:

命令:source /etc/profile



bash-4.3$ source /etc/profile
a14a6692e225:/$ ant -version
Apache Ant(TM) version 1.9.15 compiled on May 10 2020
a14a6692e225:/$



3、build.xml需改为jenkins容器内部目录路径;总共五个地方,详细看build.xml文件

如我的:/var/jenkins_home/workspace/workName




怎么使用dockerfile构建一个jmeter镜像 docker jmeter_linux



二、jenkins设置

如未在Linux下安装 jenkins 可以参考这篇的 docker 安装 jenkins: (本篇将是把jmeter、ant都挂载到jenkins容器目录)

1、开启报告样式(否则你的报告没有css、js,因为jenkins会屏蔽防止被攻击),所以需要在,jenkins设置中的【Script Console】“脚本命令行”执行一条语句:



System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")





怎么使用dockerfile构建一个jmeter镜像 docker jmeter_docker_02


 


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_java_03


 2、安装插件(安装后重启jenkins):HTML Publisher plugin、Ant plugin

直接搜索安装:HTML Publisher plugin、Ant


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_linux_04


 


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_java_05


 3、jenkins - 全局配置设置 - 新增Ant - name随便写一个,目录就写容器内的ant目录;



怎么使用dockerfile构建一个jmeter镜像 docker jmeter_shell_06




怎么使用dockerfile构建一个jmeter镜像 docker jmeter_docker_07


4、新建job【自由风格项目】

这是我的git托管地址:https://github.com/git-gsxl/jmeter-ant.git   build.xml文件中需要改5个地方

①参数化,添加:branch  (构建可以指定分支名称)

②Git:代码托管地址

③ant 命令运行

④报告目录编写

以上步骤详细看下面图,另外演示:设置远程构建令牌



怎么使用dockerfile构建一个jmeter镜像 docker jmeter_shell_08




怎么使用dockerfile构建一个jmeter镜像 docker jmeter_docker_09


 


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_docker_10


 4、手动触发构建,输入git或其它代码托管的分支名称,执行后查看报告



怎么使用dockerfile构建一个jmeter镜像 docker jmeter_shell_11


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_linux_12


 最后还可以加入钉钉提醒:

加入shell:


#!/bin/bash -l
echo "钉钉通知"
curl 'https://oapi.dingtalk.com/robot/send?access_token=你的钉钉机器人token' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {"content": "总结报告:http://ip:3006/job/'$JOB_NAME'/'$BUILD_ID'/InterfaceReport"},
"at": {"isAtAll": true}
}'


1、提醒查看:



怎么使用dockerfile构建一个jmeter镜像 docker jmeter_shell_13


 2、机器人发的消息:


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_docker_14


3、点击链接跳转进入:


怎么使用dockerfile构建一个jmeter镜像 docker jmeter_git_15


当然shell还有这强大的功能,三剑客的使用你可以对html报告进行一个读取,查看多少成功率、总运行用例多少、返回超2s的多少,失败的有多少数量等等;

举个例子:我们要显示,①总接口数量:xxx  ②成功率:xxx  

是可以通过shell三剑客来读html报告得出结果,再通过变量的方式传入钉钉发送参数,这样能更完善钉钉通知多能查看到的信息。