链接:https://pan.baidu.com/s/1ceeeTZy45hjuZ_v1sCJTwA 
提取码:ljob 
--jmeter5.4

链接:https://pan.baidu.com/s/1Ev8cAWDQRel8BxImyMo9xQ 
提取码:x7fv 
--ant-1.9.4

链接:https://pan.baidu.com/s/1pQ4XYF6CjWOPvb1RHrbT5w 
提取码:fob3 
--jenkins

 

 

 

 

 

 

 

 

 

 

设置环境变量 CLASSPATH:
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_
HOME%\lib\logkit-1.2.jar;

 

 

验证 ant 集成 jmeter

D:\tool\apache-jmeter-5.4\extras

目录下打开 CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看

D:\tool\apache-jmeter-5.4\extras目录下是否出现 Test.jtl、 Test.html 文件,
若有,则构建成功。注意: Test.jmx 是默认存在的 Sample 脚本文件。
若构建失败,请分析 cmd 打印的日志消息,定位问题;

ant.bat -file build.xml -Dtest=Test

 Jmeter默认报告优化 - 贺满 - 博客园Download serializer-2.7.1.jar : serializer « s « Jar File Download

Programming Tutorials and Source Code Examples

Jmeter报告优化之New XSL stylesheet - 贺满 - 博客园

Jmeter报告优化之New XSL stylesheet - 贺满 - 博客园Jmeter默认的报告展示的信息比较少,如果出错了,不是很方便定位问题。由Jmeter默认报告优化这篇文章可知,其实由.jtl格式转换为.html格式的报告过程中,style文件起了很关键的作用。下面https://www.cnblogs.com/puresoul/p/5049433.html

3、用Ant执行脚本

(1)在jmeter安装目录下新建两个文件夹

TestReport文件夹:用于保存html的结果报告;

TestScrip文件夹:用于保存jmeter的测试脚本。

 

 

 

 

 (4)上传测试脚本test_token.jmx和build.xml文件到TestScrip目录下

 

(5)ant命令执行测试脚本

进入TestScrip目录,输入:ant run(run为build.xml中的target的name名)

(6)查看测试报告

根据bulid.xml文件中定义的测试报告路径,进入相应目录即可找到测试报告文件。

  <!-- jmeter生成html格式的结果报告的路径-->
  <property name="jmeter.result.html.dir" value="/usr/jmeter/apache-jmeter-3.3/TestReport/testToken/html" />

 在这里可以看到报告中的request和response两项没有数据。修改jmeter/bin目录下jmeter.properties文件如下部分,我这里都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面:

jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

reportgen · PyPI

1)下载路径:  Install :: JMeter-Plugins.org

2)下载后放在lib/ext目录下,然后重启Jmeter,会在菜单-选项下多一个 Plugins Manager菜单,打开即可对插件进行安装、升级。

常用的插件有:

用于服务器性能监视的-- PerfMon Metrics Collector

用于建立压力变化模型的-- Stepping Thread Group

用于Json解析的-- JSON Path Extractor

用于展示响应时间曲线的-- Response Times Over Time

用于展示TPS曲线的-- Transactions per Second

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cd /d %ANT_HOME%\bin
ant -f %build.home%\build.xml -Dresult.home=%result.home% -Dbuild.home=%build.home%
-Dtime=%BUILD_ID% -DReportName=%ReportName% -Dthreads=%threads% -
Dduration=%duration% -DPerMonhome=%result.home%/%BUILD_ID% -
DbuildId=%BUILD_ID% -DjobName=%JOB_NAME%

 

 HTML directory to archive: ${result.home}/${BUILD_ID}/png/
Index page[s]: AggregateReport.png
Index page title[s] (Optional): 聚合报告
Report title: 聚合报告

 HTML directory to archive: ${result.home}/${BUILD_ID}/png/
Index page[s]: test_CpuMem.png

 

 

 

 

 线程数: ${__P(request.threads,1)}
持续时间: ${__P(request.duration,300)}

 

 

 配置输出文件格式

 编写 build.xml
文件位置: E:\JENKINS\TEST\build.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
Author:Fresh.Qin
Email:lzqinfen@126.com
-->
<project name="ant-jmeter-test" default="all" basedir=".">
<!--
<tstamp>
<format property="time" pattern="yyyyMMddHHmmss" />
</tstamp>
-->
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\tool\apache-jmeter-3.1\" />
<!-- 需要改成 Jmeter CMDRunner.jar 目录-->
<property name="CMDRunner.home" value="${jmeter.home}\lib\ext\CMDRunner.jar" />
<property name="ReportGen.home" value="${jmeter.home}\lib\ext\ReportGen.jar" />
<!-- 需要改成自己本地的 Jmeter 目录-->
<!--<property name="result.home" value="E:\jmeter\BCS\Report" />-->
<property name="cpuresult.home" value="E:\JENKINS\TEST\perfmon" />
<property name="script.home" value="E:\JENKINS\TEST\Scripts" /><!-- jmeter 生成 jtl 格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${result.home}\${time}\jtl\" />
<!-- jmeter 生成 html 格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${result.home}\${time}\html\" />
<!-- jmeter 生成 png 格式的结果报告的路径-->
<property name="jmeter.result.png.dir" value="${result.home}\${time}\png\" />
<!-- 生成的报告的前缀-->
<!--<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" />
<!--给 Jmeter 传入的 参数-->
<!--
<property name="threads" value="1" />
<property name="duration" value="30" />
<property name="PerMonhome" value="E:\jmeter\BCS\Report" />
<property name="build.home" value="E:\jmeter\BCS\" />
-->
<target name="all">
<echo message="jmeter.result.jtl.dir=${jmeter.result.jtl.dir}" />
<echo message="jmeter.result.html.dir=${jmeter.result.html.dir}" />
<echo message="jmeter.result.png.dir=${jmeter.result.png.dir}" />
<echo message="jmeter.result.jtlName=${jmeter.result.jtlName}" />
<antcall target="clean" />
<!--第一步 运行脚本-->
<!--<antcall target="run.script" />-->
<antcall target="test" />
<!--第二步 生成基础报表
<antcall target="base.report" /> 存在性能问题,不再生成基础报表-->
<!--第三步 生成扩展报表-->
<antcall target="extras.report" />
<!--第四步 清理生成的文件-->
<antcall target="finish" />
</target>
<target name="clean">
<mkdir dir="${jmeter.result.jtl.dir}" /><mkdir dir="${jmeter.result.html.dir}" />
<mkdir dir="${jmeter.result.png.dir}" />
<delete includeemptydirs="true">
<fileset dir="${cpuresult.home}" includes="**/*.jtl"/>
</delete>
</target>
<target name="test">
<taskdef name="jmeter"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<testplans dir="${script.home}" includes="*.jmx" />
<property name="jmeter.save.saveservie.output_format" value="xml" />
<property name="request.threads" value="${threads}"/>
<property name="request.duration" value="${duration}"/>
</jmeter>
</target>
<target name="extras.report">
<!--TPS 每秒事务数-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png
${jmeter.result.png.dir}/${ReportName}${time}_TPS.png --input-jtl
${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type TransactionsPerSecond --limitrows 100 --relative-times no"/>
</exec>
<!--RTP 响应时间的百分比-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png
${jmeter.result.png.dir}/${ReportName}${time}_RTP.png --input-jtl
${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type ResponseTimesPercentiles "/>
</exec>
<!--RTD 响应时间分布情况-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png
${jmeter.result.png.dir}/${ReportName}${time}_RTD.png --input-jtl
${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type ResponseTimesDistribution "/>
</exec>
<!--RLOT 响应时间随时间的变化曲线-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png${jmeter.result.png.dir}/${ReportName}${time}_RLOT.png --input-jtl
${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type LatenciesOverTime --limitrows 100 --relative-times no"/>
</exec>
<!--CpuMem Cpu 内存监控结果生成-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png
${jmeter.result.png.dir}/${ReportName}${time}_CpuMem.png --input-jtl
${cpuresult.home}/test-perfmon.jtl --plugin-type PerfMon --limit-rows 100 --relative-times
no"/>
</exec>
<!--生成聚合报告的 CSV 文件,后面需要二次处理-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-csv
${jmeter.result.png.dir}/AggregateReport.csv --input-jtl
${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type AggregateReport"/>
</exec>
<!--CSV 转换成 PNG-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${ReportGen.home}
${jmeter.result.png.dir}/AggregateReport.csv ${jmeter.result.png.dir}/AggregateReport.png"/>
</exec>
<!--服务器监控数据处理-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png
${jmeter.result.png.dir}/test_CpuMem.png --input-jtl ${cpuresult.home}/test-perfmon.jtl --
plugin-type PerfMon --limit-rows 100 --relative-times no"/>
</exec>
</target>
<target name="finish">
<copy todir="${jmeter.result.jtl.dir}">
<fileset dir="${cpuresult.home}">
<include name="**/*.jtl" />
</fileset>
</copy>
</target>
</project>

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐