最近接了压测的需求,顺带熟悉下压测工具的使用。这里推荐JMeter,安装快捷、请求方便,省了一大堆麻烦的事情。
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。参考:https://baike.baidu.com/item/Jmeter
安装
Jmeter是基于Java的压测工具,所以Java是必不可少的,环境需要配置好Java。
下载路径:https://www.oracle.com/java/technologies/javase-jdk14-downloads.html
从中挑一个适合自己的机器的JDK,下载安装好后,将对应的环境变量配置到自己的bash文件下。需要配置的环境变量分别为:
JAVA_HOME:你的路径/jdk1.8.0_251
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JRE_HOME}/lib/tools.jar
PATH=${JAVA_HOME}/bin:$PATH
安装好,从https://jmeter.apache.org/上下载最新的Jmeter,解压后可以直接进入apache-jmeter-5.3/bin/下,运行:sh jmeter.sh -v查看是否可以使用。在mac上正常运行应该会出现这个界面,如果是linux上,就没有界面了。
使用
接下来讲讲,如何在启动的Jmeter里,压测要压测的服务。这里一压测一个SQL服务为例:
点击添加线程组:
添加配置,在线程组界面,有三个参数要注意:
- 线程数:并发的请求数量;
- Ramp-Up时间:在多长时间内完成配置的线程数启动,比如上面线程数配了10,这里时间设置10秒,意味着启动压测后,会在10秒内完成10个线程的启动;
- 循环次数:再以上面的例子举例,配置的参数组会循环多少次,我这里配置了20,上述的操作会循环20次;
然后是JDBC Connection Configration的配置,把对应的仓库链接配置填进去,其他的最大连接数,等待时间等配置按自己需要填写;
JDB request 的配置,可以自行填写sql作为压测请求,也可以引用外部文件,这里我配置了一个变量名为“sql”的外部引用文件来作为压测的请求数据。变量名可以随意,其中编码、分隔符、循环方式可以按需配置;
还需要配置结果树和聚合根报告来查看结果,在这两个选项卡中,可以设置报告导出的路径。这两个选项会提高Jmeter的性能消耗,酌情选取。
最后配置好后,可以点击上方的play按钮,运行压测。
同时,配置好的线程组可以导出到linux里,使用linux的Jmeter进行压测,Mac和linux之间的配置文件是通用的。