文章目录
- docker + Jenkins+JMeter持续集成接口自动化
- 一 . Linux环境安装docker
- 二 . docker 安装jenkins
- 三 . jenkins容器 安装 git ,jdk
- 三 . jenkins容器 安装 jmeter,ant
- 1. 将 jmeter和 ant 压缩包移动到 Linux环境中
- 2. 使用 cp 复制命令 放到docker容器内某个目录
- 3. 将 apache-jmeter-5.2.1/extras文件夹下的ant-jmeter-1.1.1.jar文件拷贝到apache-ant-1.9.16/lib路径下
- 4.jmeter结果文件默认保存的是.csv格式的文件,因为后面要生成html,所以要修改下默认配 置,修改文件“apache-jmeter-5.2.1\bin\jmeter.properties”,设置:jmeter.save.saveservice.output_format=xml
- 5. 为了让html报告内容显示更好看,进入apache-jmeter-5.2.1\bin\jmeter.properties,将所有saveservice有关文件,将false改成true,并去掉注释
- 三 . jenkins 运行 jmeter脚本
- 四 . jenkins 使用 ant运行 jmeter脚本,需要编写个build.xml 进行运行
- 五 . jenkins 使用 ant运行 jmeter脚本
docker + Jenkins+JMeter持续集成接口自动化
一 . Linux环境安装docker
安装过程跳转该页面:centos7 安装docker
二 . docker 安装jenkins
安装过程跳转该页面:docker 安装 jenkins
三 . jenkins容器 安装 git ,jdk
1. 直接进入jenkins 系统管理 - 全局工具配置 直接安装
2. 进入jenkins容器中查询 jdk 和 git 路径进行配置
jdk :然后通过echo $JAVA_HOME来查看 java 路径在/usr/local中,然后配置进 jenkins 的 JAVA_HOME 中即可
git 通过which git查看 git 执行文件路径为/usr/bin/git,把这个复制到 jenkins 路径中
三 . jenkins容器 安装 jmeter,ant
1. 将 jmeter和 ant 压缩包移动到 Linux环境中
jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
ant下载地址:https://ant.apache.org/bindownload.cgi
2. 使用 cp 复制命令 放到docker容器内某个目录
jenkins 容器命名为 jenkins,将压缩包放到容器内部 data目录下,在进入容器内部解压
docker cp /data/apache-jmeter-5.2.1.zip jenkins:/data
docker cp /data/apache-ant-1.9.16-bin.zip jenkins:/data
unzip apache-jmeter-5.2.1.zip # 解压到当前文件
unzip apache-ant-1.9.16-bin.zip # 解压到当前文件
在进行配置系统环境变量
vi /etc/profile
在文件末尾增加地址
jmeter 环境变量
export JMETER=/data/apache-jmeter-5.2.1
export PATH=$JMETER/bin:$PATH
ant 环境变量
export Ant=/data/apache-ant-1.9.16
export PATH=$Ant/bin:$PATH
进行保存,在刷新系统环境变量
source /etc/profile
在给jmeter和ant bin目录给予最高权限
chmod 777 apache-ant-1.9.16
chmod 777 apache-jmeter-5.2.1
在验证jmeter是否配置成功
输入: jmeter -v
ant -version
3. 将 apache-jmeter-5.2.1/extras文件夹下的ant-jmeter-1.1.1.jar文件拷贝到apache-ant-1.9.16/lib路径下
注意:为啥需要将jar包放到ant/lib中,ant运行时才能找到
"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,之后可以触发Jmeter脚本
cp /data/apache-jmeter-5.2.1/extras/ant-jmeter-1.1.1.jar /data/ant-1.9.16/lib
4.jmeter结果文件默认保存的是.csv格式的文件,因为后面要生成html,所以要修改下默认配 置,修改文件“apache-jmeter-5.2.1\bin\jmeter.properties”,设置:jmeter.save.saveservice.output_format=xml
5. 为了让html报告内容显示更好看,进入apache-jmeter-5.2.1\bin\jmeter.properties,将所有saveservice有关文件,将false改成true,并去掉注释
三 . jenkins 运行 jmeter脚本
1. 使用jenkins创建一个 job 工作目录
2. 使用jenkins 中 Git 拉取 jmeter中代码 ,配置完成后,点击构建,在jenkins工作空间查看拉取的脚本,会将脚本放到jenkins容器文件中,
注意:怎么看脚本放在那个位置中,可以看构建运行存放的地址
四 . jenkins 使用 ant运行 jmeter脚本,需要编写个build.xml 进行运行
1. jmeter 脚本目录格式
- 创建个 report 目录, 在这个目录在创建个 html文件夹 存放 脚本运行报告,在创建 jtl,脚本运行的结果
- 创建个test 目录,存放 jmeter脚本
- 创建个 lib目录,将jmeter脚本 新增加的 jar包存放进去,也可以将 本地jmeter中lib 复制过来
- 创建个 csv目录,存放 jmeter脚本 运行的参数化,比如 csv等
- 创建个build.xml文件,用于ant 直接运行
2. build.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<!--Project为整个量的根目录;name随便写,可自行更改;default默认执行什么任务,下面有个target name = "all";basedir为.代表当前目录-- 需要改到当前jenkins运行目录>
<project name="jmeter_test" default="run" basedir=".">
<tstamp>
<!-- 这里是加入了年月日时分秒,用来加在报告的后缀上-->
<format property="time" pattern="yyyyMMddhhmmss"/>
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录,写到bin目录的上一步就可以-->
<property name="jmeter.home" value="/var/jenkins_home/jmeter/apache-jmeter-5.2.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="/var/jenkins_home/workspace/**/report/jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="/var/jenkins_home/workspace/**/report/html" />
<!-- 生成的报告的前缀ReportName的value可以自定义值,下面的jtl和html的名字是用变量来的也不需要改 -->
<property name="ReportName" value="alen" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}-${time}-report.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}-${time}-report.html" />
<!-- 对应到上面的,run,下面调用了两个:test和report-->
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<!-- 对应到上面的target为test -->
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}" >
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本,脚本要执行某一个就写死哪个 -->
<testplans dir="/var/jenkins_home/workspace/**/test" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar" />
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar" />
</path>
<!-- 对应到上面的target为report -->
<target name="report">
<tstamp><format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="/var/jenkins_home/jmeter/apache-jmeter-5.2.1/extras/jmeter.results.shanhe.me.xsl" >
<param name="dateReport" expression="${report.datestamp}" />
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
五 . jenkins 使用 ant运行 jmeter脚本
- 配置每天早上8点运行,需要想要几点可以搜索下
- 使用ant 运行脚本
3.脚本运行后,需要报告显示 ,先安装插件,
1.HTML测试报告展示的插件:HTML Publisher Plugin、Performance plugin , Groovy
HTML Publisher Plugin下载(为了方便在jenkins中查看html测试报告):
Performance plugin下载(根据测试工具获取性能KPIs)
Groovy 下载 (jenkins打开HMTl测试报告样式丢失,未加载JS和CSS问题,在 Groovy Script
输入 System.setProperty(“hudson.model.DirectoryBrowserSupport.CSP”, “”) 解决css问题
4.设置运行报告生成位置
5.在立即构建,点击html就可以查看报告