linux部署分布式jmeter压测环境

  • 为什么要在linux上上做压测,而不是在GUI界面?

  因为GUI界面本身会消耗服务器资源,其次GUI运行的结果一般是保存在jmeter运行内存中,导致在做长时间压测得时候,内存占用会越来越高,最终可能导致工具报错或者宕机风险,影响测试。

  压测使用机器最好和服务部署的机器在同一网络下,减少网络原因导致的性能问题,这样从服务部署机器镜像一台机器就可以作为负载机使用,更加方便。。

  • 部署方式

  1.安装JDK

    网上一大堆,不在赘述

  2.部署jmeter

   (1)在官网http://jmeter.apache.org/download_jmeter.cgi  下载所需要的jmeter版本,我这里下载的是5.1的版本apache-jmeter-5.1.1.zip

   (2)上传到linux机器,并解压缩unzip  apache-jmeter-5.1.1.zip ,生成apache-jmeter-5.1.1目录

   (3)环境变量配置:

    注意路径改为自己上传的路径:    

    export JMETER_HOME=/opt/apache-jmeter-5.1.1

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

    export PATH=$JMETER_HOME/bin:$PATH

   (4)环境变量立即生效

    source /etc/profile

   (5)查看安装结果

    jmeter -v

    

   3.分布式部署

    我这里是按照三台机器规模部署的,提前在三套机器上分别部署jmeter环境(三台机器上jmeter版本最好一致)

   (1)master节点配置

    master节点可以使用windows也可以使用linux,因为master在工作过程中不直接参与压测,而是起到一个脚本调度,控制slave发起压测的作用,因此本身消耗不大,我这里使用的是linux作为master

    修改jmeter配置文件jmeter.properties 中remote_host为两个slave节点的IP和端口

    remote_hosts=10.8.1.143:1099,10.8.1.144:1099

   (2)slave节点配置

    修改jmeter配置文件/bin/jmeter.properties ,找到并取消这段配置的注释 server.rmi.ssl.disable=false ,false改成true。

    启动slave节点

    jmeter-server -Djava.rmi.server.hostname=10.8.11.143 ,启动 anget 节点。jmeter-server 后面的参数指定 agent 的 IP 

    启动成功之后ps -ef |grep jmeter能够看到jmeter进程

  4.启动压测

   (1)启动slave节点

      nohup  ./jmeter-server  -Djava.rmi.server.hostname=10.8.1.143

   (2)上传所需的jmx脚本和参数化数据到指定路径

   (3)启动压测

    ./jmeter -n  -t /home/cloud-user/msg_test.jmx  -R  10.8.11.143,10.8.11.144  -l ../result/testReport.jtl  -e -o ../report/resultReport    

    命令说明:

      -t  制定需要执行的jmx脚本全路径

      -R  配置两个slave节点的ip地址(和slave节点配置文件jmeter.properties中remote_host配置一样),中间用逗号隔开

      -l   输出测试结果(jtl格式)

      -e  输出图表结果

      -o  报告输出的路径

    (4)导出报告

 
posted @ 2021-03-08 11:22  柚子李子  阅读(268)  评论(0编辑  收藏  举报