如何在Linux命令行下获取JMeter请求的90/99百分位数?
解决Linux非GUI模式下JMeter无法生成指定百分位数的问题
问题排查与解决步骤
1. 确认配置文件是否被正确加载
你修改的jmeter.properties可能不是JMeter启动时读取的文件。JMeter默认加载自身bin目录下的配置文件,若修改的是其他路径的文件,配置不会生效。
验证方法:执行以下命令查看JMeter加载的配置文件路径:
./jmeter.sh -v
输出内容会显示配置文件的加载路径,确认你修改的jmeter.properties位于该目录下。
2. 用命令行参数直接指定百分位数(推荐)
无需修改全局配置,直接在启动命令中通过-J参数传递自定义百分位设置,该方式优先级高于配置文件,能确保本次运行生效:
./jmeter.sh -n -t examples/LTTest_unix.jmx -l /testing12.csv -e -o /bin/outputreports -Jaggregate_rpt_pct1=90 -Jaggregate_rpt_pct2=95 -Jaggregate_rpt_pct3=99
3. 检查HTML报告中的数据位置
生成的HTML报告默认存放在/bin/outputreports/index.html,打开后找到Statistics表格,其中的90% Line、95% Line、99% Line列即为对应百分位数。若看不到这些列:
- 删除旧的
/bin/outputreports目录,重新执行命令生成新报告 - 确保JMeter版本为5.0及以上,旧版本Dashboard对自定义百分位的支持有限
4. 备选方案:通过CSV日志手动计算
若以上方法均无效,可直接从生成的/testing12.csv日志中用awk命令计算百分位数。假设响应时间位于CSV的第5列(JMeter默认格式),执行:
awk -F ',' '{print $5}' /testing12.csv | sort -n | awk 'BEGIN{count=0} {arr[count++]=$1} END{print "90th percentile: " arr[int(count*0.9)-1]; print "99th percentile: " arr[int(count*0.99)-1]}'
内容的提问来源于stack exchange,提问作者World of Titans
相关产品推荐
相关产品推荐

