在使用jmeter进行性能压测过程中,经常碰到tps高、压测时间长而导致生成jtl文件过大的问题,虽然可不加“-l”参数让jmeter不生成jtl文件,但这样做弊端也很明显那就是如果出现失败的请求没有日志可以找到失败的原因进而排查问题,所以下面我们就通过修改jmeter源码实现加上“-F”参数后,让jmeter产生jtl里只记录失败的请求的效果。
首先是JMeter.java文件,依葫芦画瓢在这里加上‘-F’的定义:
private static final int SYSTEM_PROPFILE = 'S';// $NON-NLS-1$ private static final int REMOTE_STOP = 'X';// $NON-NLS-1$ private static final int JTLFAILONLY_OPT = 'F';
还有下面这些地方也相应的增加代码:
private static final CLOptionDescriptor D_REPORT_OUTPUT_FOLDER_OPT = new CLOptionDescriptor("reportoutputfolder", CLOptionDescriptor.ARGUMENT_REQUIRED, REPORT_OUTPUT_FOLDER_OPT, "output folder for report dashboard"); private static final CLOptionDescriptor D_JTLFAILONLY_OPT = new CLOptionDescriptor("jtlfailonly", CLOptionDescriptor.ARGUMENT_DISALLOWED, JTLFAILONLY_OPT, "only record the failed request log");
private static final CLOptionDescriptor[] options = new CLOptionDescriptor[] { D_OPTIONS_OPT, D_HELP_OPT, D_VERSION_OPT, D_PROPFILE_OPT, D_PROPFILE2_OPT, D_TESTFILE_OPT, D_LOGFILE_OPT, D_JTLFAILONLY_OPT,
这个地方要获取我们的参数是否为空并将参数传给startNonGui方法。
CLOption jtlfailonly = parser.getArgumentById(JTLFAILONLY_OPT); startNonGui(testFile, jtlFile, rem, reportAtEndOpt != null, jtlfailonly!=null); startOptionalServers();
在startNonGui方法中再将参数传递给runNonGui方法
driver.runNonGui(testFile, logFile, remoteStart != null, remoteHostsString, generateReportDashboard, jtlfailonly);
在runNonGui方法中修改如下,依据jtlfailonly参数是否存在调用ResultCollector的多态方法
if (logFile != null) { ResultCollector logger=null; if(jtlfailonly){ logger = new ResultCollector(summer,jtlfailonly); }else { logger = new ResultCollector(summer); }
ResultCollector方法在ResultCollector类中,修改如下:
重新编译运行后就可以实现效果了。
相关推荐
JMeter导入jmx运行脚本时出现这样的错误jmeter.save.SaveService: Conversion error ...---- Debugging information ---- message : kg.apc.jmeter.vizualizers.CorrectedResultCollector ...cause-message : kg.apc....
jmeter-graph.jar
Ant+Jmeter集成,生成的测试报告的优化,扩展测试报告的内容。jmeter.results.shanhe.me.xsl,这边提供下载。 (忘记我是在哪下载的了,或许是博主,或许是在github上下载的,如果侵权了请联系我删除)
原版的模板文件有免费资源我知道,但这个是我再次加工升级的文件,来自jmeter.results.shanhe.me.xsl。为了便于区分,我将名字做了修改。 我之前上传的jmeter.results.shanhe.me.xsl没有这个功能强大和实用。 功能...
jmeter报告模板,与ant配合使用,可生成比较好看的报告模板,推荐使用,将此模块放入jmeter的extras文件夹下面,ant执行命令时会自动调用此模板
jmeter笔记.txt
jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合,在jmeter.results.shanhe.me.xsl的基础上增加summary,解决换行问题
JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip
Apache JMeter (apache-jmeter-5.5_src.zip 源码)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 ...
[零成本实现WEB性能测试.基于APACHE.JMETER].温素剑.扫描版
Jmeter5.X+BeanShell性能测试
jmeter自带的测试报告得到的测试报告信息并不是很全,这个可以展示更详细
Jmeter5.x专题课程测试+压测+性能测试;Springboot后端程序接口;已打包好,附带源码,本地安装好JDK8后可以运行部署;跨平台
jmeter监控工具下载(JMeterPlugins-Standard-1.4.0.zip+jmeterServerAgent.zip)
性能测试中,我们往往需要将结果保存在一个文件中,这样既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材。jmeter,结果都存放在.jtl文件中
1.Jmeter报告模板文件优化文件jmeter.results.shanhe.me.xsl; 2.响应结果按照json格式展示
第2章 章节二 JMeter4.x基础知识讲解和压测实战 一共十章这是第2章
jmeter后端侦听器kafka 一个JMeter插件,使您可以将测试结果发送到Kafka服务器
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI ...