前言
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需自行安装,这里不展开):https://www.cnblogs.com/gsxl/p/13660988.html
安装docker请参考:https://www.cnblogs.com/gsxl/p/11674378.html
【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
二、jenkins设置
如未在Linux下安装 jenkins 可以参考这篇的 docker 安装 jenkins:https://www.cnblogs.com/gsxl/p/12129333.html (本篇将是把jmeter、ant都挂载到jenkins容器目录)
1、开启报告样式(否则你的报告没有css、js,因为jenkins会屏蔽防止被攻击),所以需要在,jenkins设置中的【Script Console】“脚本命令行”执行一条语句:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
2、安装插件(安装后重启jenkins):HTML Publisher plugin、Ant plugin
直接搜索安装:HTML Publisher plugin、Ant
3、jenkins - 全局配置设置 - 新增Ant - name随便写一个,目录就写容器内的ant目录;
4、新建job【自由风格项目】
这是我的git托管地址:https://github.com/git-gsxl/jmeter-ant.git build.xml文件中需要改5个地方
①参数化,添加:branch (构建可以指定分支名称)
②Git:代码托管地址
③ant 命令运行
④报告目录编写
以上步骤详细看下面图,另外演示:设置远程构建令牌
4、手动触发构建,输入git或其它代码托管的分支名称,执行后查看报告
最后还可以加入钉钉提醒:
加入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、提醒查看:
2、机器人发的消息:
3、点击链接跳转进入:
当然shell还有这强大的功能,三剑客的使用你可以对html报告进行一个读取,查看多少成功率、总运行用例多少、返回超2s的多少,失败的有多少数量等等;
举个例子:我们要显示,①总接口数量:xxx ②成功率:xxx
是可以通过shell三剑客来读html报告得出结果,再通过变量的方式传入钉钉发送参数,这样能更完善钉钉通知多能查看到的信息。
附加:
Windows搭建传送门:https://www.cnblogs.com/gsxl/p/13655788.html
Linux搭建传送门:https://www.cnblogs.com/gsxl/p/13694071.html
最后欢迎来大家QQ交流群一起学习:482713805