在使用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.results.shanhe.me.xsl。为了便于区分,我将名字做了修改。 我之前上传的jmeter.results.shanhe.me.xsl没有这个功能强大和实用。 功能...
jmeter报告模板,与ant配合使用,可生成比较好看的报告模板,推荐使用,将此模块放入jmeter的extras文件夹下面,ant执行命令时会自动调用此模板
下载并解压“Jmeter5.x后端接口项目.rar”压缩包,其中包含的“后端接口”文件可能是Springboot项目的源码或部署包。根据项目结构,使用IDE如IntelliJ IDEA导入源码,配置好Maven或Gradle依赖,然后通过命令行或IDE...
Ant+Jmeter集成,生成的测试报告的优化,扩展测试报告的内容。jmeter.results.shanhe.me.xsl,这边提供下载。 (忘记我是在哪下载的了,或许是博主,或许是在github上下载的,如果侵权了请联系我删除)
《JMeter测试报告详解——基于shanhe.me结果分析》 JMeter,作为一款强大的性能测试工具,被广泛应用于Web应用的压力测试、负载测试以及功能测试。然而,JMeter默认提供的测试报告虽然直观,但信息相对有限,对于...
通常,JMeter的bin目录是执行脚本和配置文件的主要位置。将解压后的“report-template”文件夹整体复制,并粘贴到JMeter安装目录下的bin文件夹内。这个步骤的目的是替换掉原有的英文版报告模板,以实现汉化。 执行...
jmeter.results.shanhe.me.xsl和jmeter-results-detail-report_21.xsl报告结合,在jmeter.results.shanhe.me.xsl的基础上增加summary,解决换行问题
【Jmeter5.X核心知识点】 JMeter5.X是一款由Apache公司开发的开源性能测试工具,主要特点是免费且功能强大,支持多种协议的压测,包括Web-HTTP, HTTPS, FTP, Database via JDBC, JMS, SMTP(S), POP3(S), IMAP(S)等...
jmeter-graph.jar
下载完成后,利用7z工具解压7z格式的文件,可以使用命令:`7z x apache-jmeter-5.3.tgz.7z`。 接着,对解压出来的tgz文件进行解压,命令为:`tar -zxvf apache-jmeter-5.3.tgz`。 2. **安装Java环境**: ...
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
此外,JMeter支持使用BeanShell、JSR223等脚本语言编写更复杂的逻辑,实现功能和回归测试。 总之,Apache JMeter是进行性能测试和功能验证的强大工具,通过合理的配置和使用,可以帮助开发者和测试人员深入理解系统...
Jmeter导出文件.jmx
Apache JMeter (apache-jmeter-5.5_src.zip 源码)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 ...
jmeter后端侦听器kafka 一个JMeter插件,使您可以将测试结果发送到Kafka服务器
性能测试中,我们往往需要将结果保存在一个文件中,这样既可以保存测试结果,也可以为日后的性能测试报告提供更多的素材。jmeter,结果都存放在.jtl文件中
在本章节中,我们将深入探讨JMeter 4.x的基础知识,并通过实际的压测案例来进一步理解其核心功能。JMeter是一款开源、跨平台的负载和性能测试工具,广泛应用于Web应用的压力测试,也可用于其他协议和服务的测试。...
Apache JMeter 源码(apache-jmeter-5.4.3_src.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 ...
`jtl.jar`可能是用于处理JTL文件的特定库,或者是一个错误的术语,因为通常不需要单独的JTL库,而是通过JMeter本身来处理JTL文件。 在Java Web开发中,`standard.jar`可能是`jstl-1.x.jar`的一个旧版本或者一个特定...