JMeter分布式压测(保姆教学)

一台控制机,两台执行机

台机器需安装相同版本的jdk和jmeter(JDK1.8)

jdk安装和配置

jdk下载地址
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Windows环境
没有配置过Windows环境jdk的友友可以参考文章
http://t.csdnimg.cn/K5DAi

提供环境验证代码

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_251
JRE_HOME
%JAVAHOME%/jre
CLASSPATH
.;%JAVA_HOME%\lib;%JRE_HOME%\lib
%JAVA_HOME%\bin
java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
Linux(两种方式)
yum安装
  • 查看JDK版本,找到你想要安装的JDK版本,这里以 JDK1.8 为例
输入命令:yum -y list java*
输入命令:yum install -y java-1.8.0-openjdk.x86_64
出现Complete!安装完成
  • 查看JDK版本
输入命令:java -version
手动安装
  • 卸载OpenJDK以及相关的Java文件

    • 查看Java信息及相关的Java文件
    查看JDK信息,输入命令:java -version
    检测JDK安装包,输入命令:rpm -qa | grep java
    
  • 删除Java相关文件(/usr/lib/jvm是默认openjdk安装路径)

    进入安装目录。输入命令:cd /usr/lib/jvm
    
    删除Java相关文件(注意:会删除所有文件,如有其他文件,请不要使用此命令删除),输入命令:rm -rf /usr/lib/jvm 
    
安装JDK
  • 新建一个存放安装包的文件夹
创建文件夹,输入命令:mkdir /usr/local/java
  • 将下载的安装包传到该文件夹

    通过文件传输工具传过去,rz等
    
  • 解压安装包

输入命令:tar -zxvf jdk-8u351-linux-x64.tar.gz
  • 修改配置文件/etc/profile,配置环境变量
输入命令:vim /etc/profile
  • 在配置文件最下方添加下面三种任意一种
注意:JAVA_HOME=/devFile/jdk/jdk1.8.0_261  就是你自己的目录
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
 
#java environment
export JAVA_HOME=/home/jdk/jdk1.8.0_261
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
 
#java environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH
  • 重新加载配置
输入命令:source /etc/profile
  • 查看安装情况
输入命令:java -version

jmeter安装教程

jmeter下载地址
https://jmeter.apache.org/download_jmeter.cgi
Windows
  • 安装jmeter
把下载的安装包解压到某一目录即可,提示:安装目录不用出现中文或空格
  • 配置环境变量 (其实可以不用配置环境变量的,但是后期会用到命令行来执行脚本所以得配)
%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;
  • 验证启动
1、双击jmeter.bat(在bin文件夹里)

2、双击ApacheJMeter.jar(在bin文件夹里)

3、可以cmd命令行打开jmeter 输入:java - jar apachejmeter - jar  或者 jmeter 

能打开就安装成功了。
Linux
  • 使用rz命令将安装包上传至对应的文件路径
rz命令安装:yum install -y lrzsz
unzip命令安装:yum -y install unzip
unzip -n apache-jmeter-5.4.1.zip
  • 配置jmeter环境变量

    • 使用vim命令编辑/etc/profile文件
    vim /etc/profile
    
    • 光标移动至文档最后,使用insert键插入要添加的内容
    export JMETER_HOME=/mytest/jmeter/
    export PATH=$JMETER_HOME/bin:$PATH
    export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJmeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
    
    • 编辑成功后,使用Esc键退出编辑模式,:wq保存当前结果
    • 使环境变量生效
    source /etc/profile
    

    注:
    /mytest/jmeter/是jmeter的安装路径

  • 查看安装情况

jmeter -v
  • 如果执行jmeter命令,提示
../bin/jmeter: Permission denied
  • 解决方法:给Jmeter安装目录授权,切换至jmeter安装目录,执行以下命令
chmod -R 777 apache-jmeter-5.4.1
  • 执行测试
  • 命令1
    • 在当前脚本所在路径下执行以下命令
sh ../jmeter/bin/jmeter.sh -n -t test2.jmx -l /mytest/testscript/result/result1.jtl -e -o /mytest/testscript/report

参数说明
…/jmeter/bin/jmeter.sh :jmeter.sh的文件路径
test2.jmx:压测脚本
/mytest/testscript/result/result1.jtl:运行结果存放路径
/mytest/testscript/report:图形报告存放路径
-n:以NoGUI方式运行脚本
-t:后面接脚本名称
-l:后面接日志名称,保存运行结果
-e:运行结束生成测试报告
-o:测试报告目录路径

  • 命令2
jmeter -n -t test2.jmx -l /mytest/testscript/result/result1.jtl -e -o /mytest/testscript/report

运行结束后,在Xftp工具对应目录中查看运行结果和图形报告

原理

Jmeter分布式压测:Jemter分布式压测是选择其中一台作为调度机(master),其他机器作为执行机(slave);当然一台机器也可以既做调度机,也做执行机。
调度机执行脚本的时候,master将会jmx脚本分发到slave上,slave拿到脚本后以非GUI的形式开始执行。
slave执行完毕后将结果回传给master,并由master进行结果的汇总。

环境搭建

master:Windows10,JMeter版本5.1.1,jdk版本1.8;

slave:2台linux虚拟机(CentOS 7),JMeter版本与master一致,5.1.1,jdk版本1.8;

总结:slave上JDK和Jmeter版本尽量和master上保持一致。

slave机器配置

关闭各slave机器上防火墙

systemctl stop firewalld

关闭各slave机器上SSL配置。RMI的默认传输机制将使用SSL,SSL需要密钥和证书才能工作。
解决方法有两种:

一种是启动bin目录下的create-rmi-keystore脚本

另一种是不使用SSL

这里采用第二种

进入bin目录下编辑文件

修改bin目录下的jmeter.properties文件

vim jmeter.properties
server.rmi.ssl.disable=true

设置服务器主机IP
编辑bin目录下的jmeter-server文件,取消RMI_HOST_DEF的注释项,固定设置当前Linux主机查询到的IP。
进入bin目录下编辑文件

启动Jemter服务

修改slave配置并启动jmeter-server
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.1.224(绑定本机ip)
修改jmeter.properties:
server_port=1009(自定义端口号,避免被占用)
server.rmi.localport=1009(跟上面设置的端口号一致)
server.rmi.port=1099
server.rmi.ssl.disable=true

master机器配置

修改配置文件
打开bin目录下的jmeter.properties文件,修改remote_hosts的值。修改为两台salve机器的ip及端口。

进入到jmeter的配置文件(jmeter.properties)
将server.rmi.ssl.disable的值修改为true
配置remote_hosts(大概270行左右的样子):remote_hosts助攻机器的ip和端口,多个的话用,分隔
mode=Standard去掉注释,在图形界面的时候可以看到助攻机器的执行结果
配置完成后重新启动jmeter,启动jmeter就可以看到运行->远程启动机器,可以看到配置的助攻机器。

添加执行权限:

命令:chmod +x jdk-8u131-linux-x64.rpm

执行rpm进行安装

命令:rpm -ivh jdk-8u131-linux-x64.rpm

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部