jmeter - Linux下运行Jmeter压测
一、在Linux服务器先安装SDK
1、先从官网下载jdk1.8.0_131.tar.gz,再从本地上传到Linux服务器
2、解压:tar -xzf jdk1.8.0_131.tar.gz,生成文件夹 jdk1.8.0_131
3、在/usr/目录下创建java文件夹,再将 jdk1.8.0_131目录移动到/usr/java中
1)cd /usr/
2)mkdir java
3)mv jdk1.8.0_131 /usr/java
3、配置java环境变量
1)vi /etc/profile
2)在最后面增加两行
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
重启虚拟机后配置才会生效
3)执行命令:source /etc/profile,无需重启,配置的环境变量立马生效
或者执行以下命令(必须是root角色,普通角色没有权限)
# export JAVA_HOME=/usr/local/java/jdk1.8.0_144
# export PATH=$JAVA_HOME/bin:$PATH
4、查看是否安装成功,执行命令:java-version
二、安装Jmeter
1、将本地的Jmeter文件打包成zip文件:apache-jmeter-3.1.zip,再上传到服务器
2、在服务器解压缩,生成apache-jmeter-3.1目录
1)安装unzip:apt-get install unzip
2)解压缩:unzip apache-jmeter-3.1.zip
3、创建文件夹mkdir apache-jmeter-3.1
3、将apache-jmeter-3.1目录放到 /usr/local/apache-jmeter-3.1下
4、配置Jmeter环境变量。vi /etc/profile,再添加如下变量
export JMETER_HOME=/usr/local/apache-jmeter-3.1/apache-jmeter-3.1
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:
$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH
5、source /etc/profile (让配置文件立马生效)
6、查看是否安装成功,执行命令:jmeter -v
三、接口压测
1、将本地生成的jmx文件上传到服务器指定目录,如:/usr/local/apache-jmeter-3.1/jmx
2、进入该目录下,输入命令:# jmeter -n -t Linux_uat_createOrder5bf60s.jmx -l result.jtl,查看结果
jmeter -n -t <testplan filename> -l <listener filename> 示例: jmeter -n -t testplan.jmx -l test.jtl
参数说明:
-n:以NoGUI方式运行脚本
-t:后面接脚本名称
-l:后面接日志名称,保存运行结果 (L)
-e:测试结束后,生成测试报告
-o: 指定测试报告的存放位置
3、查看result.jtl,查看运行结果:
也可以将result.jtl发送到windows下Jmeter查看:添加聚合报告,在聚合报告中打开该文件:
4、注意:客户端和服务器的Jmeter版本最好保持一致,不然运行脚本时会报错。
5、还有另一种脚本执行指令:
# jmeter -n -t Linux_uat_createOrder5bf60s.jmx -l result.jtl -e -o /usr/local/apache-jmeter-3.1/result
在/usr/local/apache-jmeter-3.1/目录下要有空的result文件夹,否则会提示错误。
指令执行完成后,将result文件夹整个download到本地。文件夹包含:
打开index.html,可以看到网页版的结果报告:
详情请查阅相关资料,暂不赘述。
四、进阶压测
多台压测机器分布式压测:
举例以41为主机,42、43为从机,对压测环境服务器进行压测。
1、三台Linux服务器都要安装相同版本Jmeter,尽量保证安装路径一致;
2、配置41的jmeter.properties,将两台从机(42、43)的IP、端口号配置上:
目录:/usr/local/apache-jmeter-3.1/apache-jmeter-3.1/bin
配置remote_hosts,去掉前面的注释符#:
3、在三台Jmeter机器上放置同样的jmx脚本,脚本的聚合报告中,设置结果写入文件路径:
/usr/local/apache-jmeter-3.1/jmx/logs/createOrderResult${__time(YMD)}${__time(HMS)}.jtl
会将压测执行结果放入到/usr/local/apache-jmeter-3.1/jmx/logs目录下,并自动生成带有日期时间戳的jtl文件:
4、在主机41发起压测指令前,需要将42、43两台从机启动:
目录:/usr/local/apache-jmeter-3.1/apache-jmeter-3.1/bin
指令:./jmeter-server
此时说明从机服务已启动。
5、在主机41上执行脚本指令:# jmeter -n -t Linux_uat_createOrder8bf60s.jmx -r
参数说明:-r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器
显示主机41上显示已开始(41不直接压测,远程遥控42、43进行压测)
两台从机也显示收到压测指令,开始压测:
42机器:
43机器:
主机41上显示:end of run,说明压测执行完毕:
执行脚本之后,去目录/usr/local/apache-jmeter-3.1/jmx/logs下找到生成的jtl文件,下载到本地机器Windows环境下可使用jmeter聚合报告查看结果,如图所示:
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!