Jmeter是一款基于Java开发的压力测试工具,它可以用来测试Web服务器、数据库服务器、JMS服务器等的性能表现。Jmeter功能是十分强大的,支持多种应用服务器协议、各种逻辑元件组合测试逻辑、分布式压力测试,以及生成测试报告等许多功能,此外Jmeter还支持使用Java语言自定义元件以及插件扩展。
不过Jmeter本体不支持WebUI界面的测试,这部分还是需要使用Selenium。
Jmeter官网:https://jmeter.apache.org/
由于Jmeter是Java语言编写的,因此我们的执行环境必须安装JDK,目前最新版本Jmeter5.x要求使用JDK8,对于JDK7只能使用Jmeter3.0,这个版本已经比较古老了,不建议使用。
我们直接在Jmeter官网找到相应的软件包安装即可,其中Windows我们可以使用.zip
包,Linux可以使用.tgz
包,不过其中的内容是一样的,Jmeter本身就是可以跨平台运行的,其中都包含了Linux和Windows下的启动脚本(Shell或Bat)。
Jmeter软件包目录结构如下。
|_ bin
|_ jmeter.sh Linux下启动脚本
|_ jmeter.bat Windows下启动脚本
|_ jmeter.log 运行日志
|_ jmeter.properties 配置文件
|_ jmeter-server Linux下服务端启动脚本
|_ jmeter-server.bat Windows下服务端启动脚本
|_ docs JavaDoc文档
|_ printable_docs 使用手册文档
|_ lib 运行库路径
|_ ext 官方库和第三方插件库路径
在实际工作中,我们可能采用在Windows用图形界面的Jmeter编辑测试脚本,然后控制若干台Linux执行或是上传脚本到Linux服务器上执行的方式,因此在Windows和Linux下使用Jmeter这两种方式我们都应该掌握。
Windows下运行Jmeter非常简单,我们直接双击bin/jmeter.bat
即可。
双击后Jmeter界面就会启动,此时我们就可以在这里编辑我们的测试脚本了。
Linux操作系统下我们可以使用命令行的方式,启动Jmeter并执行测试脚本。我们首先在Windows或其它支持Java图形界面的操作系统上编辑Jmeter测试脚本,保存后会得到一个.jmx
文件,我们将其上传到Linux上执行以下命令即可:
./apache-jmeter-5.4.3/bin/jmeter.sh -n -t <jmx测试脚本> -l <jtl输出文件>
例如:./apache-jmeter-5.4.3/bin/jmeter.sh -n -t ./DemoTestPlan.jmx -l DemoTestPlan.jtl
。
在Linux下使用Jmeter的另一种方式是启动Jmeter服务器,然后在我们其它电脑的图形界面上使用远程连接的方式,远程控制Jmeter服务器执行测试。
Jmeter默认使用1099端口RMI协议进行连接,默认开启了SSL,不过一般我们压力测试都是使用内网环境,如非特殊需求我们可以将SSL关闭,我们首先修改客户端和Linux服务端bin/jmeter.properties
配置文件,找到如下配置取消注释并改为true
:
server.rmi.ssl.disable=true
注意,Jmeter的客户端和服务端都需要修改。此外,在服务端的bin/jmeter.properties
还包含了端口等配置,我们按照提示修改即可。
在客户端的bin/jmeter.properties
我们还需要添加服务端的remote_hosts
,找到如下配置并添加即可:
remote_hosts=127.0.0.1:1099
这里我们只是作为演示,因此添加了127.0.0.1:1099
,实际工作中应该填写对应的服务器IP和端口。
此时我们在客户端选择Run -> Remote start
启动远程服务端即可。
Jmeter支持插件扩展功能,官方插件页面:https://jmeter-plugins.org/,我们可以在其中搜素各种插件并下载安装。
这里注意Jmeter有个叫“插件管理器”的功能本身也是个插件,我们可以访问官方插件页面下载该插件:https://jmeter-plugins.org/install/Install/,下载好后将其放入lib/ext
目录下,重启Jmeter即可。此时我们就可以直接在Jmeter的插件管理器中安装或卸载插件了。