• jmeter分布式压测


    原文转自:https://www.cnblogs.com/whitewasher/p/6946207.html

         在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,这时可以使用Jmeter提供的分布式功能来启动多台电脑来分压测试。

    一、Jmeter分布式执行原理:

      1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

      2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。

      3、执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总。

    二、代理机(Agent)配置:

    1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。

    2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.149

    3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099(还需要配置Controller的ip地址,逗号分隔),1099是端口号,可以随意自定义。

    4、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。

    三、控制机(Controller)配置:

    1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

    2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.174

      

    3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

    4、打开jmeter-server.bat文件,设置完成了。

    四、开始添加线程组和请求来运行查看结果:

    1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置100个线程数,循环2次,就是一台机器发送100*2=200个请求。

    2、添加HTTP请求,这里以访问淘宝为例。

    3、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。

    4、这里以点击远程全部启动为例。运行结束后,查看聚合报告,每台电脑设置的线程数为200,这里一共是两台电脑,所以是200*2=400个线程数。

    报错处理:

    jmeter 启动jmeter-server.bat远程调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)

    1、找到apache-jmeter-4.0injmeter.properties
    2、修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#),重新启动jmeter-server.bat
    3、查看命令窗口显示则启动成功

     slave启动jmeter-server.bat,提示“Could notfind ApacheJmeter_core.jar”

    原因:程序找到jmeter下的文件,是因为没有配置JMETER_HOME

    1)高级系统配置->环境变量,新建系统变量:JMETER_HOME等于你jmeter保存的根目录

    (2)系统环境变量path中增加%JMETER_HOME%in。

    然后重启jmeter-server.bat。jmeter环境是基于Java环境已配置。

    (3) 客户机可以正常ping通,但是不支持master访问,jmeter_server.bat也正常启动。

    原因:客户机的防火墙没有关闭。

  • 相关阅读:
    为什么基于TCP的应用需要心跳包(TCP keep-alive原理分析)
    「DDoS攻击」兴风作浪,教你如何有效防护!
    你还敢乱粘贴吗?
    TODO git如何去掉烦人的merge?
    Git修改已经push到远程的commit信息
    Oracle删除唯一索引失败提示ORA-01418:指定的索引不存在 ORACLE
    mybatis逆向生成代码 [ERROR] No plugin found for prefix 'mybatis-generator' in the current project and in the plugin groups
    MySQL 中 redo log、undo log、binlog 的总结
    VATT: Transformers for Multimodal Self-Supervised Learning from Raw Video, Audio and Text
    OPT: Omni-Perception Pre-Trainer for Cross-Modal Understanding and Generation
  • 原文地址:https://www.cnblogs.com/yagao/p/12490610.html
Copyright © 2020-2023  润新知