Jmeter 命令行压测
1. 单机压测
- 1.1 准备工作
- 1、压力机上配置好JDK
- 2、在windows下调试好jmeter脚本,然后上传至压力机上
- 3、进入Jmeter 的bin目录下需要添加执行权限 chmod -R +x ./*
- 1.2 单机压测步骤
- 1、执行命令:jmeter -n -t pinter.jmx -l result.jtl
- -n:no-gui,命令行模式
- -t:jmx脚本路径
- -l:jtl结果文件存放路径
2、概要日志数据解释

- +:表示过去10s执行情况
- =:表示脚本从开始运行到现在的情况
- 在Jmeter的bin/jmeter.properties中可修改控制台取样间隔的时间。summariser.interval=10,默认为30秒
2、查看结果报表
- 方式一:把生成的jtl文件下载下来,在GUI界面的聚合报告里打开,可以展示tps和 应时间等数据

- 方式二:生成html报表
- 1、进入jmeter的bin目录下,修改reportgenerator.properties
- 2、修改jmeter.reportgenerator.overall_granularity=1000(设置报表中数据展示间隔1秒,默认值为1分钟)
- 3、创建一个存放数据报表的文件夹report
- 4、执行命令:jmeter -g result.jtl -o report,会在report下生成数据文件
- -g:指定jtl文件的路径
- -o:指定html报表生成到哪个文件夹下

- 5、执行命令zip -r report.zip report,将文件夹进行压缩

- 6、下载压缩文件夹,使用浏览器打开index.html
3. 分布式压测
- 3.1 为每台压力机配置主机名
- 1、输入hostname可查看主机名
- 2、永久修改主机名:hostnamectl set-hostname 主机名
- 3、编辑/etc/hosts文件,绑定ip和主机名,格式为192.168.50.144 zhuyaliji
- 4、输入reboot,重启压力机之后,主机名生效
- 4.2 分布式测试步骤
- 1、在每台机器上都部署Jmeter
- 2、如果是java脚本,将java脚本相关lib包都放在jmeter目录lib/ext下
- 3、将jmeter的场景文件jmx上传到主jmeter的任意位置,参数文件放到每一台压力机上,存放目录要相同
- 4、修改jmeter.properties文件,去掉ssl.disable=true前面的注释
- 5、在每台机器上进入到jmeter的bin目录下,都启动nohup ./jmeter-server &(后台启动jmeter-server服务)
- 6、在主jmeter的bin目录下,修改jmeter.properties,将其中的remote_hosts修改为作为压力机的两台机器ip,
- remote_hosts=127.0.0.1,192.168.0.102
- 7、在主jmeter的机器上,执行jmeter -n -t pinter.jmx -l result.jtl -r
- -r:remote
- 注意:
- 1、如果是http脚本,在controller的机器上有脚本文件即可
- 2、如果是Java脚本,在每一台机器上都得有脚本文件和依赖的jar包
- 3、每台机器的防火墙都要关闭
- 3、命令行压测问题排查思路
- 1、查看当前目录下的jmeter.log
- 2、查看Jmeter中bin目录下的jmeter-server.log
- 3、查看生成的.jtl文件
- 4、把jmx文件在GUI模式下执行,在查看结果树当中勾选 仅错误日志,并填写一个文件名(最好是.xml格式)用于记录错误日志

作者:一个老宅男
微信:ZhengYing8887
出处:https://www.cnblogs.com/ZhengYing0813/
备注:本文版权归作者所有,欢迎转载和添加作者微信探讨技术,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。