JMeter压测过程中及结束后如何查看所有HTTP请求错误?
JMeter HTTP压测错误统计与排查实用方案
以下是参考的压测规格说明:
针对高负载压测下全量错误统计、规律排查的需求,可通过以下几个低开销、易操作的方法实现:
- 仅持久化错误请求结果,避免占用过多资源
高负载场景下不要开启View Results Tree实时查看,会大幅消耗JMeter性能,可通过修改运行配置仅保存错误请求的核心信息:- 启动压测时附加参数即可,无需修改静态配置文件:
jmeter -n -t testplan.jmx -l result.jtl -Jjmeter.save.saveservice.only_save_errors=true -Jjmeter.save.saveservice.response_code=true -Jjmeter.save.saveservice.response_message=true -Jjmeter.save.saveservice.assertion_results_failure_message=true - 压测结束后直接打开
result.jtl文件,即可查看所有错误请求的响应码、错误信息、触发时间等核心字段,可直接导入Excel做分组统计。
- 启动压测时附加参数即可,无需修改静态配置文件:
- 用自带Error Report监听器自动聚合错误分布
直接在测试计划根节点添加Error Report监听器,压测结束后它会自动按响应码、错误信息维度分组统计各错误类型的出现次数、占比,无需额外处理即可直接看到所有错误类型的分布情况,适合快速定位高频错误。 - 自定义后置处理器提取错误特征,方便规律排查
如果需要更灵活的错误特征采集,可给HTTP请求添加JSR223后置处理器,选择Groovy语言,写入以下代码即可将自定义维度的错误信息写入独立日志:
压测结束后对// 判断请求是否执行失败 if (!prev.isSuccessful()) { def errorFile = new File("custom_errors.log") // 可根据排查需要增减要记录的字段,比如请求参数、请求头、响应体片段等 errorFile << "${System.currentTimeMillis()}\t${prev.getResponseCode()}\t${prev.getURL()}\t${prev.getResponseMessage()}\t${prev.getQueryString()}\n" }custom_errors.log按响应码、URL等字段分组筛选,即可快速排查错误是否有固定触发规律,比如是否仅某类接口报错、是否仅带特定参数的请求报错等。
内容的提问来源于stack exchange,提问作者deostroll
相关产品推荐
相关产品推荐

