zoukankan      html  css  js  c++  java
  • jmeter分布式部署

    Jmeter进行负载测试的 时候,发现使用单台机器模拟测试超过比如500个进程的并发就有些力不从心或者说不能如实的反应实际情况,在执行的过程中,JMeter自身会自动关闭, 要解决这个问题,则可以使用分布式测试,运行多台机器运行所谓的 Agent 来分担 JMeter自身的压力(这个和LODARUNNER是一样的道理)

    前提条件

    JMeter分布式环境,一台Controller,一到多台Agent,Controller和Agent可以是同一台机器。

    所有机器,包括Controller和Agent的机器:

    1.运行相同版本的JMeter

    2.使用相同的java版本

    3.有基于SSL的RMI的有效密钥库,或者禁用SSL。(本文举例中是采用的禁用SSL)

    4.都在一个网络

    5.关闭防火墙

    客户机和服务器配置

      1、在所有期望运行 JMeter 并作为 Load Generator 的机器上安装 JMeter,并确定其中一台机器作为 Controller,其他的机器作为 Agent——假定我们使用两台机器 192.168.0.1 和 192.168.0.2 作为 Agent;

      2、在Controller 机器的 JMeter 安装目录下找到 bin 目录,再找到 JMeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它;

       3、在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其 中的 127.0..0.1 表示运行 JMeter Agent 的机器,这里需要修改为“remote_hosts=192.168.0.1:1099,192.168.0.2:1099”——其中的 1099 为 JMeter 的 Controller 和 Agent 之间进行通讯的默认 RMI 端口号; (个人备注:只改要作为Controller的机器上的此文件即可;Agent的机器上的文件可以不理会)

    4、Agent机子要修改jmeter目录bin\system.properties 文件:java.rmi.server.hostname=10.86.16.218 其中10.86.16.218代表Controller机子的IP地址

      5、保存文件,然后依次启动作为 Controller的机器上的jmeter-server文件和作为Agent的机器上的jmeter-server文件(个人备注:如果是 WINDOWS系统版本的jmeter,则是启动jmeter-server.bat的批处理文件,LINUX系统则是jmeter-server文件, 没有后缀的,但是要修改为可执行权限,这后面具体有提到),并重新启动 Controller 机器上的 JMeter.bat,并进入 Run -> Remote Start 菜单项,在这里可以看到远程启动菜单下面有192.168.0.1 ,192.168.0.1两个IP地址

      6、如果要让某个电脑执行,可以点击改电脑的IP地址就可以,如果两个都要执行,可以点击Run 菜单下的“远程运行全部”菜单

       7、有时候用作代理的机器太少,仍不能满足需要,则需要将作为Controller的电脑也当作Agent,则同样需要修改 JMeter.properties文件,将Controller的IP地址写入。同时,这个时候,需要打先打开Controller 电脑中JMeter下bin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run -> Remote Start菜单,可以看到Controller也作为远程机器进行运行。 (针对第六点我个人经过实地测试后要进行细化确认:如果是在LINUX下,此文件的权限都还是要修改的,且jmeter-server会调用名为 jmeter脚本文件,其jmeter文件的权限也要修改为可执行的才可以,且每个被调用的Agent的机器的jmeter-server文件也是要执行 中才可用调用,这点很重要。)。

     

    成功的标志

    1. JMeter Controller的界面上,远程启动菜单可以看到配置的所有的Agent

    3.Agent上jmeter-server.bat启动的控制台没有报错,显示测试的开始和结束

    请求数分布

    jmeter脚本配值500个并发,那么每台agent都会跑500个,所以配值并发数应该为=需求数/(agent台数),并且每台agent的请求都是并发到服务器的。

     

    异常解决

    系统找不到指定的文件

    最近这几天在做Jmeter大数据分布式安装与部署的作业,刚开始一切顺利,双击jmeter.bat窗口顺利的弹了出来,可是,当我双击jmeter-server.bat时,却遇到了下图的错误:

    我们可以看到jmeter.properties文件中有一行是这样的

    s e r v e r . r m i . s s l . d i s a b l e = f a l s e

    server.rmi.ssl.disable=false

    server.rmi.ssl.disable=false

    这行说明什么呢,就是让我们决定是不是要启动SSL。很明显,我的电脑上并没有这个,所以就不能启动。把这个改成

    s e r v e r . r mi.ssl . d i s a b l e = t r u e

    server.rmi.ssl.disable=true

    server.rmi.ssl.disable=true

    这样改好了,

    察看结果树中的响应数据项为空白

    解决jmeter进行分布式测试,远程机器来运行脚本,在察看结果树中的响应数据项为空白

    解决步骤

    1. 打开Controller的jmeter--bin目录下的jmeter.properties文件

    2. 查找到mode=Standard 项

    3. 将其前边的注释去掉,然后保存重启jmeter,再次运行远程机器,就可以看到数据了

     

  • 相关阅读:
    datalist和repeater中radiobutton单选的问题
    SQL循环在表中增加新列
    [jQuery]使用jQuery.Validate进行客户端验证(高级篇上)——不使用微软验证控件的理由
    C# Excel 行高,列宽,合并单元格,单元格边框线,冻结 关于C#操作EXCLE常见操作比较全的
    JS弹出窗口的运用与技巧(转)
    设计模式完整备忘录
    jquery + ashx + Json 操作数据
    SQL STUFF函数 拼接字符串
    获取SQL 各字段说明,表名等有效信息
    谈谈对于企业级系统架构的理解
  • 原文地址:https://www.cnblogs.com/yifengyu/p/15575796.html
Copyright © 2011-2022 走看看