jmeter3.x源码修改实现jtl文件只打印失败请求
来源:互联网 发布:淘宝的产品分类 编辑:程序博客网 时间:2024/06/03 20:53
在使用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类中,修改如下:
重新编译运行后就可以实现效果了。
0 0
- jmeter3.x源码修改实现jtl文件只打印失败请求
- 如何获取.JTL文件
- jmeter 聚合报告之jtl文件解析
- 修改testNG源码,实现失败用例自动再执行
- struts2源码分析只请求处理简图
- AFN网络请求打印请求失败的错误
- 对OkHttp进行封装,实现了只查询缓存,网络请求失败自动查询本地缓存等功能
- jmeter的测试报告jtl文件转换成html报告
- Jmeter3.2版本发送SOAP请求测试webservice接口
- Jmeter3.2版本发送SOAP请求测试webservice接口
- 修改redis源码,实现aof文件的自动拆分
- Struts2 过滤器实现只允许POST请求
- jmeter3.0 源码分析之:对HTTPS协议的支持
- 网络请求修改plist文件
- 修改Apache Benchmark源码实现请求数据随机的压力测试
- Android图表控件MPAndroidChart——源码修改实现曲线图X轴直尺刻度样式
- 修改Win7引导文件实现Win7与Ubuntu双系统引导的失败
- Cocos2d-x简单游戏<植物大战僵尸>代码实现|第四部分:通关失败场景<后续会提供源码下载链接>
- Curosr相关的Mutex等待事件(转)
- Centos忘记mysql密码以及允许远程连接
- 委派任务
- 2017.01.22 工作要学习的东西
- jquery笔记
- jmeter3.x源码修改实现jtl文件只打印失败请求
- 去掉手机页面a,button,input默认触发事件
- 基础-2 ANDROID ACTIVITY
- 表空间
- 定时器-简单运动
- smack使用TSL连接openfire
- Gauge中执行钩子(Hook)
- 1.22
- 最近一个月的安排