前言
使用JumpServer开源堡垒机对Linux服务器做分布式性能压测,当单台机器无法满足性能压测的负载要求时,或者单台机器的网络带宽存在瓶颈的情况下,可以采用分布式部署的方案来解决这些问题。
一、Linux 上传 jdk-8u211-linux-x64.tar
1. 打开JumpServer文件管理,找到对应的机器文件夹把jdk-8u211-linux-x64.tar上传上去
2. 移动jdk-8u211-linux-x64.tar位置并解压
(1)mv /tmp/jdk-8u211-linux-x64.tar.gz /data/ # 把jdk压缩包从tmp目录夹移动至data目录
(2)tar zxf jdk-8u211-linux-x64.tar.gz -C /data/ # 解压jdk到data目录下
3. 编辑/etc/profile文件,添加JAVA环境变量,然后保存退出
(1)vim etc/profile.d/java.sh # 创建java.sh 并进行编辑
(2)i # 进入编辑状态添加下面的java环境变量
#set java environment
JAVA_HOME=/data/jdk1.8.0_211
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
(3)按Esc退出编辑状态,在输入 :wq #保存并退出
4. 使环境变量生效
source /etc/profile
5. 查看JAVA是否安装成功
java -version
二、Linux 下载 apache-jmeter
1. 下载并解压apache-jmeter
wget https://mirrors.bfsu.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.3.tgz # 下载
mkdir -p /data/ # 创建data目录
tar -xvf apache-jmeter-5.4.3.tgz -C /data/ # 把apache-jmeter解压到data目录下
rm -rf jdk-8u211-linux-x64.tar.gz # 删除压缩包
2. 编辑/etc/profile文件,添加Jmeter环境变量,然后保存退出
(1)vim etc/profile.d/jmeter.sh # 创建jmeter.sh 并进行编辑
(2)i # 进入编辑状态添加下面的Jmeter环境变量
# jmeter目录下存在bin目录
export JMETER=/data/apache-jmeter-5.4.3
export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}
export PATH=${JMETER}/bin/:${PATH}
(3)按Esc退出编辑状态,在输入 :wq #保存并退出
3. 使环境变量生效
source /etc/profile
4. 查看Jmeter是否安装成功
jmeter -v
三、master控制器压测机配置
1. 在data/apache-jmeter-5.4.3/bin/目录对jmeter.properties进行修改
(1)查看Linux执行机的ip地址,然后设置remote_hosts=执行机1:端口号,执行机2:端口号
(2)修改server_port=1099 执行启动远程连接的端口号 ,remote_hosts配置成一致的端口号
(3)server.rmi.ssl.disable=false 改为 server.rmi.ssl.disable=true
(4)server.rmi.localport=4000 执行机Jmeter_server启动显示的端口启动的端口号
(5)查找到mode=Standard 项,将其前边的注释去掉(解决Jmeter进行分布式测试,远程机器来运行脚本,在察看结果树中的响应数据项为空白)
2. 在data/apache-jmeter-5.4.3/bin/目录对jmeter-server进行修改
RMI_HOST_DEF=-Djava.rmi.server.hostname=127.0.0.1 地址改成本机的ip地址,执行和控制机都需要改
四、Slave代理压测机配置
1. 在data/apache-jmeter-5.4.3/bin/目录对jmeter.properties进行修改
(1)修改server_port=1099 表示控制机要远程连接通信的端口号,即Master配置文件Jmeter.properties的remote_hosts配置的端口号
(2)server.rmi.localport=4000 执行机Jmeter_server启动显示的端口启动的端口号
(3)server.rmi.ssl.disable=false 改为 server.rmi.ssl.disable=true
2. 在data/apache-jmeter-5.4.3/bin/目录对jmeter-server进行修改
RMI_HOST_DEF=-Djava.rmi.server.hostname=127.0.0.1 地址改成本机的ip地址,执行和控制机都需要改
五、运行
1. 先用本地同版本jmeter生成.jmx测试脚本,把.jmx测试脚本上传到Linux master控制机和slave代理机上。
2. Slave代理机运行
chmod 777 jmeter-server
jmeter-server
3. master控制机运行
jmeter -n -t /data/workspace/domiancases.jmx -r -l /data/workspace/test200x100.jtl
六、给压到Slave代理机
上传jar的架包到Slave代理机上
Java -jar xxxxxxx.jar #启动架包
nohup java -jar xxxxxx.jar & #后台锁定进程 防止中断
尝试访问查看是否成功
curl https://127.0.0.1:8080/xxxxx/product/25544309474361346/1
Slave 查看架包是否存在 ps -ef | grep java
查看本地端口是否启动:telnet 127.0.0.1 8081
在jmeter.properties文件中修改配置
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
在user.properties文件中追加配置
jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true