一、环境准备
jmeter版本:apache-jmeter-5.1.1(https://jmeter.apache.org/download_jmeter.cgi)
jdk版本:jdk-8u151-windows-x64
ant版本:apache-ant-1.10.6(https://ant.apache.org/bindownload.cgi)
jenkins版本:Jenkins 2.176.2(https://jenkins.io/zh/download/)
下载的war包,可通过编写.bat文件的方式启动,“java -jar E:\tools\jenkins\jenkins.war”(E:\tools\jenkins\jenkins.war,表示war包存放你的位置),启动后,cmd窗口不可关闭;
关于环境变量的配置,参考:
https://blog.csdn.net/qq_39247153/article/details/79305654
https://blog.csdn.net/qq_39247153/article/details/81010107
二、ant+jmeter整合
1、在Jmeter目录下,新建文件夹TestCase(也可以换个路径创建)
2、Jmeter编写脚本:
编写任意接口测试脚本,保存至TestCase目录下;
3、修改jmeter配置文件jmeter.properties:
把jmeter.save.saveservice.output_format=csv修改为jmeter.save.saveservice.output_format=xml,并不要注释,见截图:
(修改原因: jmeter执行结果文件默认保存的是csv格式,不是xml格式,csv无法转化成html格式)
4、在jmeter的extras目录下,把ant-jmeter-1.1.1.jar文件复制到ant的lib目录下:
5、在TestCase目录下,创建build.xml文件(ant执行脚本时会使用,也可以放到ant的安装目录下,在jenkins配置build.xml路径时使用),内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="E:\testtools\jmeter\apache-jmeter-5.1.1" />
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="E:\testtools\jmeter\resultLog\jtl" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="E:\testtools\jmeter\resultLog\html" />
<!-- 生成的报告的前缀-->
<property name="ReportName" value="TestReport" />
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<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="E:\testtools\jmeter\apache-jmeter-5.1.1\TestCase" 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 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="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"> <!--jmeter目录下extras文件夹下.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>
6、在jmeter路径外新建resultLog文件夹,再在resultLog文件夹下新建html和jtl文件夹,用来分别保存html,jtl格式的测试报告:
7、在TestCase文件夹下进入cmd,执行ant(验证是否整合成功),自动执行Jmeter测试脚本,如下则运行成功:
此时对应文件夹中会存在对应的测试报告:
PS:出现的问题:
1.“Java™ Platform SE binary 已停止工作” ,解决方案:将环境变量path中的“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”移到最前面,重启生效;
三、使用Jenkins构建自动化平台
1、在jenkins的全局设置中,新增JDK和Ant的安装路径:
2、打开Jenkins,新建job,选择“构建一个自由风格的软件项目”:
3、安装插件: 进入系统管理- 管理插件- 可选插件,安装 Performance plugin、HTML Publisher plugin、Ant Plugin
4、 配置过程:
4.1.添加项目名称,勾选“丢弃旧的构建”
4.2.源码管理,没有通过GIT或者SVN管理,所以选择“None”:
4.3.构建,点击【增加构建步骤】按钮,选择“invoke Ant”,用来执行Ant:
其中Build File填写build.xml文件路径,Ant-Version只能选择Ant/Default,不可输入;
4.4.在构建后的操作中,点击【增加构建后操作步骤】,选择已安装好的2个Jmeter插件:
配置“Publish html reports”,其中HTML directory to archive填写html报告保存路径:
配置“Publish Performance test result report”,其中Source data files填写jtl格式报告的保存路径:
配置完成,点击“应用”并“保存”,使配置生效;
构建脚本,点击“立即构建”。可在“构建历史”中查看历史记录:
进入某个构建中,可通过“控制台输出”查看执行信息与结果:
查看测试报告:可通过Jenkins中的插件“Publish html reports”“Publish Performance test result report”生成测试报告 ,查看测试报告,也可进入html与jtl格式的报告存放路径,可查看报告结果:
参考:https://blog.csdn.net/cherish0123/article/details/79339732