JMeter分布式压测

匿名 (未验证) 提交于 2019-12-02 23:55:01

为了让jmeter工具提供更强大的负载能力,jmeter提供了多台机器同时产生负载的机制。
一、申请5台Linux服务器,配置好点。
二、分布式测试原理:其中一台作为主控机/调度机(server),其他为压力机(agent)

三、处理过程:

  1)调度机server启动以后,会拷贝本地的jmx文件分发到远程的agent机器上;

  2)agent机器拿到脚本以后启动命令行模式去执行脚本,对于每台agent机器拿到的脚本都是一样的,所以如果jmx脚本为50个线程跑3分钟,那么实际并发就是50*5=250个线程并发跑3分钟;

  3)执行时,agent会把执行获得的数据结果传给server机器,server机器会收集所有agent机器的信息并汇总,这样server机器上就存在一份所有agent机器汇总的数据结果。

四、Jmeter分布式压测环境搭建

  1、分布式环境压力服务器要求:

  需要server(控制机)和agent(压力机),agent搭建在linux服务器环境下,server搭建在Linux或windows环境下。
  压力测试瓶颈大都在带宽上面,需要保证压力机的带宽要比服务器的带宽高,不然压力上不去。
  需要保证agent和server都在一个网络中,且在多网卡环境需要保证启动的网卡都在一个网段。
  需要保证server和agent之间的时间同步。
  关闭防火墙

  2、Windows部署jmeter

  (1)部署jdk环境,配置path变量
  (2)直接去官网下载最新的二进制源码包即可。
  (3)解压jmeter到指定目录,设置path变量,安装完成之后,在命令行运行jmeter命令,如果可以正常启动jmeter,说明环境配置ok。

  3、Linux部署jmeter

  (1)jmeter运行环境依赖java的jdk,所以需要安装jdk,jmeter5.0版本以上需要安装jdk1.8及以上版本;首先下载:jdk-8u131-linux-x64.tar.gz、apache-jmeter-5.0.zip,并上传至服务器,并解压:

  (2)配置环境变量:vi /etc/profile

JAVA_HOME=/root/gss/jdk1.8

JRE_HOME=$JAVA_HOME/jre

JMETER_HOME=/root/gss/jmeter

CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$JMETER_HOME/bin/

export JMETER_HOME=/root/gss/jmeter

export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH

export PATH=$JMETER_HOME/bin:$PATH

  (3)立即生效配置文件,执行命令:source /etc/profile

    检查安装结果:java -version、jmeter --version

  (4)

  vi /root/gss/jmeter/bin/jmeter.properties

#server.rmi.ssl.disable=false  # 此为必改项,放开注释,false改为true

说明:

#server_port=1099      #端口号修改:放开注释,随意修改

  (5)修改所有服务器的jmeter配置:

五、上传脚本到主控机上,执行脚本

  jmeter -n -t login.jmx -r -l login.jtl -e -o /root/gss/report-login

jmeter参数介绍:

  -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
  -t 测试文件 -> 要运行的 JMeter 测试脚本文件
  -r 远程执行 -> 启动远程服务
  -l 日志文件 -> 记录结果的文件
  -h 帮助 -> 打印出有用的信息并退出

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!