zoukankan      html  css  js  c++  java
  • Jmeter分布式

    一、环境准备:

    1、jmeter3.0(确保master与slave版本一致)

    2、jdk1.8(确保master与slave的jdk大版本一致)

    master_jdk

    slave_jdk

    3、网络(确保master,slave,server在同一个网络,互相能ping通)

    4、关闭slave上的防火墙,否则会报错

    PS:本次试验master实在win7上,3台slave在CentOS6.5

    二、slave配置

    1、修改$JMETER_HOME/bin/jmeter-server的最后位置

    将#RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XX修改为

    RMI_HOST_DEF=-Djava.rmi.server.hostname=172.18.104.104

    PS:多网卡必须配置,否则会把报错

    2、修改$JMETER_HOME/bin/jmeter.properties,来修改jmeter-server的端口

    server_port=2099

    server.rmi.localport=2099

    多slave重复以上步骤

    3、启动slave

    在jmeter/bin下运行  ./jmeter-server,启动成功如下

    三、master配置

    1、修改$JMETER_HOME/bin/jmeter.bat,启动指定ip

    window:

    新增set rmi_host=-Djava.rmi.server.hostname=172.18.104.74(master 的ip)

    修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

    linux:

    新增 rmi_host=“-Djava.rmi.server.hostname=172.18.104.74”(master 的ip)

    修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"

     PS:多网卡必须配置,否则slave执行完毕,回传数据给master的时候会报错

    2、修改$JMETER_HOME/bin/jmeter.properties,添加slave主机

    # Remote Hosts - comma delimited
    remote_hosts=172.18.104.101:2099,172.18.104.102:2099,172.18.104.109:2099,172.18.104.104:2099
    #remote_hosts=localhost:1099,localhost:2010

    3、启动master检查slave配置是否生效,成功如下

     四、master控制slave执行脚本

    1、随便在master上以baidu为例,点击远程启动,选中其中一个salve

    2、运行结果如下说明成功了,依次调整其他几个slave

     3、全部运行结果,4个salve运行有4个结果就对应上了

    五、关于参数化的设置

    1、master在windows上,slave在linux或MAC上的时候,参数化设置经常会出问题

    2018/07/17 10:49:04 INFO - jmeter.threads.JMeterThread: Thread finished: 10S-1000 1-99
    2018/07/17 10:49:04 INFO - jmeter.threads.JMeterThread: Thread started: 10S-1000 1-100
    2018/07/17 10:49:04 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File D:apache-jmeter-3.0inMac.txt must exist and be readable
    at org.apache.jmeter.services.FileServer.createBufferedReader(FileServer.java:422)
    at org.apache.jmeter.services.FileServer.getReader(FileServer.java:388)

    解决办法就是,master设置参数化的时候不要写绝对路径,直接就写一个文件名字,如:Mac.txt。另外需要将Mac.txt拷贝到master上的jmter的bin目录下($JMETER_HOME/bin)

    六、非GUI运行分布式,多台slave之间用,分隔

    D:apache-jmeter-3.0in>jmeter -n -t C:UsersAdministratorDesktoppobuli分布
    式.jmx -R 172.18.104.104:2099,172.18.104.102:2099 -l d:linux.jtl

    PS:非GUI运行的结果与GUI运行结果不一样,待研究

    1、GUI运行结果

     2、非GUI运行结果

  • 相关阅读:
    建站始末——(转载)
    阿里云——大神建个人网站分享(转载)
    从零开始建设个人网站
    前端资料——书籍
    【python】*与** 参数问题
    【python】python异常类型
    【python】unittest中常用的assert语句
    【性能测试】性能测试总结<四>
    【性能测试】性能测试总结<三>
    【性能测试】性能测试总结<二>
  • 原文地址:https://www.cnblogs.com/edgars/p/9300627.html
Copyright © 2011-2022 走看看