zoukankan      html  css  js  c++  java
  • Jmeter分布式压力测试

    1、场景

    在做性能测试时,单台机器进行压测可能达不到预期结果。主要原因是单台机器压到一定程度会出现瓶颈。也有可能单机网卡跟不上造成结果偏差较大。
    例如4C8G的window server机器,使用UI方式,最高压测在1800并发(RT 20ms以内)左右。如果对于XML文件进行解析,更容易吃CPU,并发数会更低。

    当单台机器不能支持更大的并发时需要考虑分布式压力测试。 

    2、原理

    原理图如下:

    • Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)
    • master通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave
    • slave启动jmeter-server,获得脚本后开始执行
    • slave执行完成后将结果传回给master,master收集整合显示 

    3、注意事项

    1. 关闭防火墙和杀毒软件,开放端口
    $ service firewalld stop
    $ service iptables stop

      2.所有机器最好在同一个子网上

        可以使用ping命令进行检查

    3.所有机器中最好使用相同版本的jdk和jmeter

    4.禁用SSL

     如果在启动jmeter-server.bat 时出现如下错误,则SSL没有禁用

     

       禁用方法,jmeter.properties文件下查找server.rmi.ssl.disable,取消注释,并将其值修改为true:server.rmi.ssl.disable=true     

     

    4、slave配置

    在slave机器中,启动bin目录下的 jmeter-server.bat,如下图:

    启动后的ip和port为:192.168.10.131:50043

    当然启动时端口也是可以自定义的。
    在slave机器的 Jmeter的bin目录下,修改jmeter.properties文件下的server_port和server.rmi.localport两个配置项。比如修改为1000:
    server_port=4444
    server.rmi.localport=4444

    启动后的ip和port为:192.168.10.131:4444 

    5、master配置

    在master机器的 Jmeter的bin目录下,修改jmeter.properties文件下的remote_hosts项,添加IP和port,多台slave的情况下,使用逗号(,)进行分割。

    完成配置后启动master机器上的 jmeter。
    在Run>>Remote Start下可以查看配置的remote_hosts项。

      

    注意:如果jmeter已经启动,修改jmeter.properties文件后需要重启jmeter配置项才可以生效。

    6、脚本执行
    新建一个线程组,线程组下添加一个debug sampler调试采样器和一个树结构监听器
    将debug sampler重新命名为:${__machineIP()} ,该函数的意思是获取执行机器的ip

    通过菜单栏的开始按钮运行脚本

    通过 Run>>Remote Start>>192.168.10.131:4444运行脚本

     

    如果要同时在所有的 slave 机器上运行,则通过 Run>>Remote Start All 执行脚本


    注意:
    在分布式执行中,master向slave发送测试计划时不会将外部文件一起发送。所以在测试中如果使用csv等外部文件进行参数化,则需要把参数文件在每台slave上拷贝一份,最好都放置在bin目录下,因为Jmeter会直接从bin目录下查找。

     

  • 相关阅读:
    JasperReports项目中的应用
    请问两个div之间的上下距离怎么设置
    Spring MVC Flash Attribute 的讲解与使用示例
    8.ireport 取消自动分页,detail不分页
    python网络爬虫学习笔记
    ShareSDK for Android 2.3.8它已发表
    OllyDbg 使用注意事项 (十)
    ListView的cacheColorHint与listSelector物业和fragment里面onActivityResult问题没有响应
    Hdu 3341 Lost's revenge (ac+自己主动机dp+hash)
    PhoneGap 开发与应用 上传 App Store 在
  • 原文地址:https://www.cnblogs.com/tynam/p/12780843.html
Copyright © 2011-2022 走看看