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

    JMeter的场景运行方式有GUI运行,也有非GUI运行,有本地运行,也有远程运行,远程运行就是一台JMeter控制机控制多台远程机器来产生负载。
    1、背景
     Jmeter 是java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。
     
      那么如何实现多台负载机同时运行的呢?当然不会多个人坐在多台负载机面前,一喊开始,大家同时启动jmeter。这种方式很笨,也很难达到真正的同步。其实,我们通过单个jmeter 客户端就可以控制多个远程的jmeter服务器,使它们同步的对服务器进行压力测试(分布式测试);
     
       
    原理:通过一个jmeter控制器,三台jmeter的Agent,通过这三台压力机去压被测系统。
     
    2、步骤
    a、关闭防火墙;(控制面板-->(系统和安全)-->window防火墙)
     
    b、在所有运行的jmeter并作为负载生成器的机器上安装jmeter,并确定其中一台机器为主的controller,其他的机器作为Agent,然后运行所有agent机器上的jmeter-server文件【在运行之前要先进行第三步的设置】
      如ABC三台机器,如果B(IP为192.168.0.11)和C(IP为192.168.0.12)作为负载(即压力机 Agent),A为主机器,把ABC三台机器都安装jmeter,在压力机(BC)运行jmeter-server文件
    注意:Agent机器上必须安装JDK和配置环境变量,各个机器上安装的版本保持一致
     
    c、在controller机器的jmeter的bin目录下,找到jmeter.properties文件:打开--找到remote_hosts,默认情况下如下所示:
       
     
    将原来的注释掉,标注处改成压力机的IP,后面的端口号看启动jmeter-server的窗口的显示,一般情况下为默认。设置好后保存,在重启JMeter就好了;
     
    d、启动controller机子上的jmeter应用,如下图:选择菜单”运行“--》远程启动,来分别启动agent,也可以直接选择"远程全部启动'来将所有的agent启动;
         
    注意:如果远程运行的脚本有参数化,脚本有依赖的包时,需要手工把这些参数文件依赖的包拷贝到远程机器上。
     
    本地的Jmeter控制器也可以当做Agent来测试,如下设置:
    有时候用作dialing的机器太少,仍不能满足需要,则需要将作为控制器的电脑也当做Agent,则同样需要修改JMeter.properties文件,将Controller的IP地址写入。
    同时需要先打开Controller电脑中的JMeter下bin目录下的jmeter-server.bat,然后在打开Jmeter.bat,此时进入run->Remote Start菜单,可以看到Controller也作为远程机器进行运行。
     
    3、常见问题
    1、controller机器上安装的JDK和JMeter上的要保持一致;
     
    2、Agent机器启动jmeter-server.bat时,后台提示could not find ApacheJmeter_core.jar
      解决方法:这个是开始没有找到ApacheJmeter_core.jar,如果不希望看到Could not find 字样,需要添加环境变量JMETER_HOME,路径为bin目录的上一级目录,这样启动jmeter-server服务时,就不会看到这个提示;
     
    3、Jmeter分布式控制过程中,各个Agent启动的线程数等于线程组中的配置
     
    4、各个机器的IP地址不要在同一网段
      如何检查:cmd -->输入ping IP地址
     
  • 相关阅读:
    Django项目:CRM(客户关系管理系统)--20--12PerfectCRM实现King_admin分页上下页
    Django项目:CRM(客户关系管理系统)--19--11PerfectCRM实现King_admin分页显示条数
    Django项目:CRM(客户关系管理系统)--18--10PerfectCRM实现King_admin日期优化
    Django项目:CRM(客户关系管理系统)--17--09PerfectCRM实现King_admin显示注册表的内容
    Oracle数据库,非空约束、主键约束、外键约束、唯一约束

    Oracle数据库,用户的创建及表的创建
    点击时显示遮罩层,登录时灰色遮罩效果
    多个视频时,利用函数实现播放一个,其他自动暂停
    正则表达式、事件调用
  • 原文地址:https://www.cnblogs.com/wysk/p/7569539.html
Copyright © 2011-2022 走看看