背景简介

JMeter是我们日常开发中最常用的压测工具,我们经常会直接在本地启动JMeter对本地或远程应用进行简单的压测。但是这种压测场景下得出的压测结果并不严谨,受以下两方面影响:

  • 本地机器硬件配置差,压测中本机的性能最先达到瓶颈
  • 本地机器和远程服务端网络延时较高,导致压测性能比预期差
    所以我们做一些简单的验证可以在本地直接启动JMeter进行压测,但是如果要做真实的性能测试,需要使用专用的压测服务器对服务端应用进行压测。而压测服务器一般都是Linux系统,所以需要在Linux系统上使用JMeter进行操作。

JMeter配置

下载JMeter压测工具

登录Linux压测服务器,下载JMeter压测工具,官网下载地址

curl -O https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.2.zip

注意:请确保压测服务器已经安装了JDK1.8

解压并配置JMeter

说明:配置JMeter环境变量是为了方便在任意路劲下使用jmeter命令,如果不配置环境变量,则直接进入JMeter解压目录的bin目录下执行。

1.解压JMeter

unzip apache-jmeter-5.6.2.zip
# 移动到local目录
mv apache-jmeter-5.6.2 /usr/local/

2.配置JMeter环境变量
/etc/profile文件末尾添加以下内容:

export JMETER_HOME=/usr/local/apache-jmeter-5.6.2
export PATH=${JMETER_HOME}/bin:$PATH

保存修改,执行source /etc/profile,重新加载配置文件。
最后,通过jmeter --version查看安装的JMeter版本,验证安装成功。

压测步骤

设置压测场景和数据

1.在windows系统中设置好压测场景和数据,保存到jmx文件中。如: test.jmx

上传JMeter压测脚本

将jmx压测脚本上传至Linux服务器任意目录。

执行压测命令

jmeter -n -t test.jmx -l result.jtl

命令行参数:1.4.4 CLI Mode (Command Line mode was called NON GUI mode)

CLI Mode(Command Line mode was called NON GUI mode)

For load testing, you must run JMeter in this mode (Without the GUI) to get the optimal results from it. To do so, use the following command options:

-n  This specifies JMeter is to run in cli mode
-t  [name of JMX file that contains the Test Plan].
-l  [name of JTL file to log sample results to].
-j  [name of JMeter run log file].
-r  the test in the servers specified by the JMeter property "remote_hosts"
-R  [list of remote servers] Run the test in the specified remote servers
-g  [path to CSV file] generate report dashboard only
-e  generate report dashboard after load test
-o  output folder where to generate the report dashboard after load test. Folder must not exist or be empty
    The script also lets you specify the optional firewall/proxy server information:
-H  [proxy server hostname or ip address]
-P  [proxy server port]

Example

jmeter -n -t my_test.jmx -l log.jtl -H my.proxy.server -P 8000

总结

在进行严谨的性能压测时需要使用JMeter的命令行模式进行压测,且一般压测在Linux服务器上进行,主要步骤如下:

  • 1.下载JMeter
  • 2.解压并配置环境变量
  • 3.在Windows上配置好JMeter的测试计划并保存为jmx文件
  • 4.在压测服务器上通过命令行模式执行压测计划