前言

Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。 额,至于我一个开发为什么要了解,可能是因为我不务正业吧!哈哈哈。

本文为Linux下使用JMeter性能测试入门篇 ,运行环境为CentOS release 6.9,JDK版本1.8,JMeter版本为5.1.1。

JMeter安装

JDK的安装我就不在这里多说了,网上教程很多,可自行搜索。主要讲下JMeter的安装。

  1. 官网下载地址:http://jmeter.apache.org/download_jmeter.cgi
  2. 下载最新JMeter 5.1.1 版本: apache-jmeter-5.1.1.zip
    jmeter download
  3. Linux下直接运行命令下载:
    wget
    http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-5.1.1.zip
  4. 下载下来后,解压缩:
    unzip apache-jmeter-5.1.1.zip
  5. 配置环境变量:vim /etc/profile 添加:
    #jmeter
    export PATH=/lyf/apache-jmeter-5.1.1/bin/:$PATH
    ps:其中 /lyf/apache-jmeter-5.1.1/ 是你安装jmeter的实际路径
  6. 刷新配置:source /etc/profile 使配置生效
  7. 然后就可以查看安装的jmeter版本验证下:jmeter -v

Linux使用JMeter命令压测

先导出测试计划,在本地电脑上先将测试计划配置好,然后导出为 .jmx 文件,如果不知道怎么新建测试计划,这里推荐一篇文章:传送门
将jmx文件上传到服务器,rz test2.jmx 我这里直接上传在Jmeter安装目录下,使用jmeteer运行jmx文件,将压测结果输出到test2.jtl文件中,命令如下:

jmeter -n -t test2.jmx -l test2.jtl

jmeter run

如果test2.jtl 太大,建议压缩后,再下载。zip test2.zip test2.jtlsz test2.zip 将test2.jtl 导入本地的JMeter,即可查看压测结果。
jmeter result

权限问题

jmeter: Permission denied
解决方法:给JMeter安装目录授权,执行命令
chmod -R 777 apache-jmeter-5.1.1

关于报错

Socket closed

Non HTTP response code: org.apache.http.NoHttpResponseException (the target server failed to respond)
在Linux环境下压测,当请求数过多时,会报这个错误,原因是:在Jmeter下,发送http请求时,默认选择了 use keepAlive ( Keep-Alive 通俗地讲就是所谓的持久连接,对于http这种大量的短连接服务来说,开启持久连接的好处可节省大量的TCP连接过程的开销,据Apache的官方文档称对包含大量图片的HTML文档造成的延时起来50%的加速作用 )这个是连接协议,Jmeter坑就在这里,默认勾选了这个,但其配置 JMeter.properties 中的时间设置默认却是注销的,不会等待,一旦连接空闲,则立即断开,导致压测中出现事务失败的情况。

可访问 Jmeter 官网查看解释

解决方法:找到Jmeter安装目录 bin下的 jmeter.properties 文件,编辑设置
httpclient.timeout=,设置成觉得合理的时间,一般可设置成10-60ms(表示连接空闲10ms后才会断开),修改完再次压测,错误就没有了。

最后修改:2023 年 09 月 11 日
如果觉得我的文章对你有用,请随意赞赏