一、java环境安装与配置
- 官网下载jdk-15.0.1_linux-x64_bin.tar.gz,上传到liunx服务器(官网跳转)
- 解压文件:tar -xzf jdk-15.0.1_linux-x64_bin.tar.gz,生成文件夹jdk-15.0.1
- 在/usr/目录下创建java文件夹,将jdk-15.0.1移动到java文件夹下
注意:移动文件夹需要处于文件存在位置执行命令
- 配置环境变量,vi /etc/profile,输入a或i进入编辑模式,在最后加上几行,输入完成后esc退出编辑模式。最后输入:wq保存配置
JAVA_HOME=/usr/java/jdk-15.0.1
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
export JAVA_HOME CLASSPATH PATH
- 执行命令:source /etc/profile,无需重启,配置的环境变量立马生效
- 检查是否配置成功,输入java -version
二、安装jmeter并配置环境变量
- 官网下载apache-jmeter-5.4.1.tgz,上传到liunx服务器(官网跳转)
- 解压文件:tar -xzf apache-jmeter-5.4.1.tgz,生成文件夹apache-jmeter-5.4.1
- 将jdk-15.0.1移动到/usr文件夹下
- 配置环境变量,vi /etc/profile,输入a或i进入编辑模式,在最后加上几行,输入完成后esc退出编辑模式。最后输入:wq保存配置
JMETER_HOME=/usr/apache-jmeter-5.4.1
CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
PATH=$PATH:$JMETER_HOME/bin:$PATH
export JMETER_HOME
- 执行命令:source /etc/profile,无需重启,配置的环境变量立马生效
- 检查是否配置成功,输入jmeter -v
报错解决:
问题:运行时提示:/usr/apache-jmeter-5.4.1/bin/jmeter: Permission denied
解决:进入jmeter安装bin,执行ll查看文件权限,展示-rw-r-r--表示无可执行权限。执行以下命令即可
chmod +x jmeter //赋予jmeter权限
chmod +x jmeter-server //赋予jmeter分布式执行权限
r:读取权限,表示可以读取文件的内容。
w:写入权限,表示可以编辑和修改文件的内容。
x:执行权限,表示可以执行文件作为程序运行。
三、单机执行压测
- 将jmx文件传输到Linux服务器。cd到文件目录下执行jmeter -e -o jmx文件名 -l 执行文件
示例:jmeter -n -o sdk_cz.jmx -l result.jtl
- 查看执行结果:tail result.jtl
- 将result.jtl导出到Windows查看,jmeter添加聚合报告,直接打开jtl文件即可
四、分布式部署压测
- 控制机和执行机都要安装相同版本Jmeter,尽量保证安装路径一致
例:以172.16.124.173,172.16.124.174作为压测服务器
控制机:172.16.124.173
执行机:172.16.124.173,172.16.124.174
控制机配置
- 修改控制机jmeter配置jmeter.properties
cd /usr/apache-jmeter-5.4.1/bin
vim jmeter.properties
- 输入a或i进入编辑模式,修改配置后保存退出(添加需要关联的集群执行机ip和端口)
修改:remote_hosts=127.16.124.173:1099,127.16.124.174:1099
修改:server.rmi.ssl.disable=true(禁用ssl验证)
- 修改控制机jmeter-server
修改server.rmi.localport=172.16.124.173
执行机配置
- 修改执行机jmeter配置jmeter.properties
修改:server.rmi.ssl.disable=true
- 修改执行机jmeter-server
修改server.rmi.localport=172.16.124.174
执行分布式压测脚本
- 将调试好的压测脚本上传到控制机,注意只需要上传到控制机,执行时会自动分发给执行机,若有参数化数据,则需要将参数化文件上传到每个执行机上,并且保持绝对路径一致
- 两台机器在/jmeter/bin目录下执行jmeter-server命令
- 新开控制机窗口执行测试,命令如下
jmeter -n -t sdk_cz.jmx -l result.jtl -R 172.16.124.173:1099,172.16.124.174:1099 -e -o report
-n:以非 GUI 模式运行 JMeter。
-t sdk_cz.jmx:指定要运行的测试计划文件为 sdk_cz.jmx
-l result.jtl:将执行结果保存到 result.jtl 文件中,供后续生成测试报告使用。
-e:生成 HTML 格式的测试报告。
-o report:指定测试报告的输出目录为report。
-R 172.16.124.173:1099,172.16.124.174:1099:指定远程运行模式,并列出要执行测试的远程主机地址和端口号。
报错解决:
问题:执行压测脚本时报错“No reoute to host”,无法远程连接主机
解决:检查防火墙是否关闭
iptables -L //检查防火墙是否关闭,返回空列表即为关闭
//关闭防火墙命令
sudo systemctl stop firewalld
sudo systemctl disable firewalld
五、Windows+Liunx环境压测:(需要保持jmeter版本一致,可以实时看到执行数据)
- 每台服务器执行jmeter-server命令,出现提示即标识远程服务启动完成
- 修改jmeter/bin目录下jmeter.profile文件后保存
①remote_hosts=172.16.124.173:1099,172.16.124.176:1099,172.16.124.177:1099,172.16.124.178:1099,172.16.124.179:1099
②server_port=1099
③server.rmi.ssl.disable=true
- 启动jmeter/bin目录下jmeter.bat文件,打开后选择远程启动即可