如何在JMeter中获取并记录所有采样器的收发数据总大小?
获取JMeter测试中收发数据总大小的简便方法
以下是几种直接实用的方式,无需复杂配置就能拿到所有采样器的收发数据总和:
1. 用聚合报告(Aggregate Report)快速查看
打开聚合报告Listener,它会自动统计每个采样器的:
- Sent Bytes:该采样器所有请求发送的总字节数
- Received Bytes:该采样器所有请求接收的总字节数
若需要全局所有采样器的总和,直接将所有采样器的对应列数值相加即可。
2. 导出报告CSV后批量求和
- 在Summary Report或聚合报告中,点击「Save Table Data」按钮,将数据导出为CSV文件
- 用Excel、Google Sheets等表格工具打开CSV,找到
sentBytes和receivedBytes列,使用求和公式(如SUM())计算全局总收发量
3. 用后置处理器累加全局变量(适合实时统计)
如果需要在测试运行过程中实时记录总收发量,给所有采样器添加JSR223 PostProcessor,写入以下Groovy代码:
// 累加发送字节到全局变量 def totalSent = vars.get('TOTAL_SENT') ?: 0 totalSent = (totalSent as long) + ctx.getPreviousResult().getSentBytes() vars.put('TOTAL_SENT', totalSent.toString()) // 累加接收字节到全局变量 def totalReceived = vars.get('TOTAL_RECEIVED') ?: 0 totalReceived = (totalReceived as long) + ctx.getPreviousResult().getReceivedBytes() vars.put('TOTAL_RECEIVED', totalReceived.toString())
测试结束前,添加一个Debug Sampler或JSR223 Sampler,输出${TOTAL_SENT}和${TOTAL_RECEIVED}变量值,即可看到全局总收发字节数。若需要转换为TB等单位,可在代码中加入单位转换逻辑,比如除以1024*1024*1024*1024。
4. 用Summary Report的扩展统计
若使用JMeter 5.0+,Summary Report的「Save Response Data」选项导出的结果中包含每个请求的收发字节数,导出后同样可以用表格工具求和得到总量。
内容的提问来源于stack exchange,提问作者KarelHusa
相关产品推荐
相关产品推荐

