记录使用 Jmeter 进行压测的一些关注点


分布式压测

配置文件

使用 Jmeter 压测时,压力机一般是部署在 Linux 上的, 如果是分布式压测,需要修改 master 和 slave 机器上的 Jmeterpath/bin 目录下的 jmeter.properties 文件

直接将下面这句加到 jmeter.properties 文件

1
server.rmi.ssl.disable=true

否则会出现如下错误

1
Exception creating connection to:192.16.*.*;nested exception is:java.io.FileNotFoundException:rmi_keystore.jks

数据文件

如果使用 csv 文件存储数据,需要把数据文件在每台执行机上拷贝一份, 且必须放在相同绝对路径下。

脚本文件

线程组

线程组中主要关注线程数Ramp-up 时间以及调度器

  • 线程数 就是你的单台压力机并发数,如果是分布式压测,那么有 N 台压力机, 并发数就是 N * 线程数
  • Ramp-up 时间 表示启动上面线程数所需的时间
  • 调度器 设置压力持续时间

同步定时器

一定要加!

两个参数的设定

  • 模拟用户的数量与线程组中的线程数一致
  • 超时时间建议与线程组中的Ramp-up 时间 一致

CSV 数据文件设置

执行压测

一般指令

1
$/app/apache-jmeter-4.0/bin/jmeter -n -t /app/MSY/gray/gray.jmx -l results.jtl -e -o /app/MSY/gray/2500 -R 10.111.1.46:1099,10.111.1.47:1099

指令详解

生成报告文件必须指向一个空文件夹,可以直接指向一个不存在的文件夹, 会自动创建。

results.jtl 文件是必须的,生成的测试报告就是对这个文件进行分析的结果

后台运行指令

1
$nohup /app/apache-jmeter-4.0/bin/jmeter -n -t /app/MSY/gray/gray.jmx -l results.jtl  -R 10.111.1.46:1099,10.111.1.47:1099 > /app/MSY/gray/week.log 2>&1 &

运行时生成的日志会保存在 /app/MSY/gray/week.log 文件

可以使用 [tail -f] 指令查看实时日志