性能自动化环境搭建
链接: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--je
链接: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 - 贺满 - 博客园
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
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>
更多推荐
所有评论(0)