liunx环境下部署分布式压测集群

一、java 环境安装与配置

  • 官网下载 jdk-15.0.1_linux-x64_bin.tar.gz,上传到 liunx 服务器(官网跳转

image.png

  • 解压文件:tar -xzf jdk-15.0.1_linux-x64_bin.tar.gz,生成文件夹 jdk-15.0.1

image.png

  • 在 /usr/ 目录下创建 java 文件夹,将 jdk-15.0.1 移动到 java 文件夹下

注意:移动文件夹需要处于文件存在位置执行命令
image.png

  • 配置环境变量,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

image.png

二、安装 jmeter 并配置环境变量

  • 官网下载 apache-jmeter-5.4.1.tgz,上传到 liunx 服务器(官网跳转

附件:apache-jmeter-5.4.1.zip
image.png

  • 解压文件:tar -xzf apache-jmeter-5.4.1.tgz,生成文件夹 apache-jmeter-5.4.1

image.png

  • 将 jdk-15.0.1 移动到 /usr 文件夹下

image.png

  • 配置环境变量,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

image.png
报错解决:
问题:运行时提示:/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:执行权限,表示可以执行文件作为程序运行。

image.png

三、单机执行压测

  • 将 jmx 文件传输到 Linux 服务器。cd 到文件目录下执行 jmeter -e -o jmx 文件名 -l 执行文件

示例:jmeter -n -o sdk_cz.jmx -l result.jtl
image.png

  • 查看执行结果:tail result.jtl

image.png

  • 将 result.jtl 导出到 Windows 查看,jmeter 添加聚合报告,直接打开 jtl 文件即可

image.png

四、分布式部署压测

  • 控制机和执行机都要安装相同版本 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

image.png

  • 输入 a 或 i 进入编辑模式,修改配置后保存退出(添加需要关联的集群执行机 ip 和端口)

修改:remote_hosts=127.16.124.173:1099,127.16.124.174:1099
image.png
修改:server.rmi.ssl.disable=true(禁用 ssl 验证)
image.png

  • 修改控制机 jmeter-server

修改 server.rmi.localport=172.16.124.173
image.png

执行机配置

  • 修改执行机 jmeter 配置 jmeter.properties
    修改:server.rmi.ssl.disable=true

image.png

  • 修改执行机 jmeter-server

修改 server.rmi.localport=172.16.124.174
image.png

执行分布式压测脚本

  • 将调试好的压测脚本上传到控制机,注意只需要上传到控制机,执行时会自动分发给执行机,若有参数化数据,则需要将参数化文件上传到每个执行机上,并且保持绝对路径一致
  • 两台机器在 /jmeter/bin 目录下执行 jmeter-server 命令

image.png

  • 新开控制机窗口执行测试,命令如下
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:指定远程运行模式,并列出要执行测试的远程主机地址和端口号。

image.png
报错解决:
问题:执行压测脚本时报错“No reoute to host”, 无法远程连接主机
image.png解决:检查防火墙是否关闭

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
image.png
image.png

  • 启动 jmeter/bin 目录下 jmeter.bat 文件,打开后选择远程启动即可

image.png