zoukankan      html  css  js  c++  java
  • Linux下的jmeter分布式搭建

    作者:wang.lan[ZSK]

    1、为什么要进行分布式

            Jmeter压测过程中,由于测试机配置有限,CPU、内存都可能是存在瓶颈。如果使用很大的并发进行测试时,就可能会感到程序比较卡,无法继续增加压力了, 这时候就需要搭建Jmeter分布式集群,远程启动测试。

    2、分布式原理

    (1)选择其中一台作为调度机(master),其它机器做为执行机(slave)。

    (2)执行时,调度机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行。

    (3)执行完成后,Slave会把结果回传给master,master会收集所有Slave的信息并汇总 。

    3、安装jdk

    # mkdir -p /usr/lib/java #建立安装目录

    # tar -zxvf jdk1.8.0_151.tar.gz

    # mv /usr/lib/java/jdk1.8.0_161 /usr/lib/java/java8 #移动并重命名

    4、jdk环境配置

    (1)添加jdk8到系统环境变量

    # vi /etc/profile #编辑profile配置文件,点击“i”进入编辑状态,在最后添加下面的内容

    export JAVA_HOME=/usr/lib/java/java8

    export JRE_HOME=${JAVA_HOME}/jre

    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

    export PATH=${JAVA_HOME}/bin:${PATH}

    退出vi 用ESC键只能切换到命令状态,然后输入“:wq ”命令进行保存文件并强行退出vi

    (2)source /etc/profile 让配置文件生效

    (3) java –version 查看jdk是否配置成功

    5、jmeter安装配置

    #mkdir -p /usr/local/jmeter #建立安装目录

    #unzip apache-jmeter-3.0.zip

    注意需要你已经安装unzip命令,如果没有安装就执行yum install unzip -y安装

    export JMETER=/usr/local/jmeter/apache-jmeter-3.0

    exportCLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}

    export PATH=${JMETER}/bin/:${PATH}

            完成添加后下述命令使配置生效: source /etc/profile 检查是否配置成功:命令行输入jmeter –v将出现以下标志

    6、分布式配置

    前提:调度机、执行机部署同一版本jmeter和同一版本jdk,确保所有机器在同一个子网

    1、执行机:

    slave机上需要安装Jmeter,添加环境变量(前面已经介绍过了)

    自定义端口号:jmeter的bin目录下jmeter.properties,修改如下两项配置(默认端口10099)

    server_port=1099

    server.rmi.localport=1099

    启动slave机的服务,即bin目录下的jmeter-server.bat将会得到slave机器IP

     

    1、 调度机:

    找到master调度机中jmeter的bin目录下jmeter.properties,修改如下配置:

    remote_hosts=服务机ip1:1099,服务机ip2:1099

    例如:remote_hosts=134.64.94.89:1099,134.64.94.76:1099

    (备注:多台slave之前用“,”隔开,我这配置了2台,对应前面slave机器的IP和Port

    7、远程启动

    前提:

    (1)上传已经调试成功的脚本(testplan1.jmx)到调度机上(如: /root/results/testplan1.jmx)

    (2)执行机的jmeter服务已成功启动

    (3)调度机和执行机最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater(这里是将调度机与执行机分开的)。

    在调度机执行分布式命令:

    命令语法:./jmeter -n -t [xxx.jmx脚本路径] -r -l [xxx.jtl结果存放路径]

    (1)指定执行机IP(其中-R 指定远程连接的slave机器的ip多个ip之间用逗号隔开)

    ./jmeter  -n -t /root/results/testplan1.jmx -R ip1,ip2  -l /test1.jtl

    (2) 启动所有执行机执行脚本

    ./jmeter  -n -t /root/results/testplan1.jmx  -r -l /test1.jtl

            运行结束后到根目录下找到test1.jtl文件下载即可 在windows系统下启动jmeter将下载好的test1.jtl文件导入聚合报告将展示测试结果

    名词解释:

    -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

    -t 测试文件 -> 要运行的 JMeter 测试脚本文件

    -l 日志文件 -> 记录结果的文件

    -r 远程执行 -> 在Jmter.properties文件中指定的所有远程服务器

  • 相关阅读:
    C# post请求 HttpWebRequest
    C# 获取当前路径
    计算n的阶乘
    查找2-n之间素数的个数
    循环嵌套-打印不定长特殊*号图形
    流程控制-物流费用计算(嵌套if)
    基于Arduino的按键控制LED实验
    基于Arduino的红外遥控
    PS/2的相关知识
    Arduino_URO端口与AtMega328p引脚对应图
  • 原文地址:https://www.cnblogs.com/ustcinfo-qc/p/12123652.html
Copyright © 2011-2022 走看看