在使用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信息并且汇总;
控制机(Controller)配置:
  1. Controller需要安装JDK、Jmeter,并且配置好环境变量;
  2. 查看本机IPipconfig 例如:192.168.10.180;
  3. 打开Jmeter/bin/jmeter.properties,找到remote_hosts=127.0.0.1, 把这一行修改为emote_hosts=192.168.8.1789:1099,192.168.10.180如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来
  4. 配置完后启动jmeter-server.bat, 但是会报错, 提示要加密了, 此时双击create-rmi-keystore.bat然后根据提示信息一致填下去, 遇到yes或者no就直接填Y, 然后回车就ok了, 然后把生成rmi_keystore.jks复制到每一台Agent的bin目录下;
  5. 然后Controller执行jmeter-server.bat
代理机(Agent)配置
  1. Agent需要安装JDK、Jmeter,(版本要与Controller一致)并且配置好环境变量;
  2. 查看本机IPipconfig 例如:192.168.10.178;
  3. 打开Jmeter/bin/jmeter.properties,找到remote_hosts=127.0.0.1, 把这一行修改为emote_hosts=192.168.8.178:1099
  4. 点击jmeter-server.bat就设置完成了, 等待控制机(Controller)启动;
测试结果

此时打开Jmeter添加一个请求(记得添加一个聚合报告方便查看测试结果), 线程数设置为n个, 然后点击导航栏运行----远程全部启动, 等执行完毕后查看聚合报告Samples如果是线程数的两倍就表示成功啦!

注意

如果有参数化文件,那么在负载机同样的位置上也得有一个参数化文件

05 - Jmeter连接多台电脑做压力测试的更多相关文章

  1. Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试

    在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...

  2. 【转载】Jmeter分布式部署测试-----远程连接多台电脑做压力性能测试

    在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需要模拟数以万计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起J ...

  3. jmeter教程--简单的做压力测试

    Jmeter是一个非常好用的压力测试工具.  Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好. 什么是压力测试 顾名思义:压力测试,就是  被测试的系统,在 ...

  4. (转)学习使用Jmeter做压力测试(三)--数据库测试

    数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web ...

  5. 使用JMeter做压力测试

    使用JMeter做压力测试 1.下载Jmeter 地址:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter 运行bin/jmeter.bat ...

  6. 【转】学习使用Jmeter做压力测试(三)--数据库测试

    JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本.根据脚本,JMeter可通过线程组来模拟真实用户对Web服务器做压力测 ...

  7. 学习使用Jmeter做压力测试(一)--压力测试基本概念

    学习使用Jmeter做压力测试(一)--压力测试基本概念 一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测 ...

  8. jmeter模拟对网站做压力测试

    一般的网站,在进入业务功能前先需登录,然后才能访问业务功能.基本框架如下 详细步骤: 1 .用badboy录制登录,访问随意一个网址. 2.用jmeter打开,一会自己写的时候可以参考里面的参数名称或 ...

  9. 【转】学习使用Jmeter做压力测试(二)--压力测试的实施

    JMeter测试步骤: 1.建立测试计划 2.添加线程组 3.添加HTTP请求 4.增加监听器 5.执行测试计划 6.根据JMeter提供的报告分析结果 一.目标 测试访问目标服务器网站首页的每秒查询 ...

随机推荐

  1. Waiting for table flush 阻塞查询的问题

    1.此状态表示大量thread正在等待慢查询语句执行完成. 原因: The thread got a notification that the underlying structure for a ...

  2. CentOS7搭建Docker镜像实战

    开发十年,就只剩下这套架构体系了! >>>   一.搭建环境 使用的是VMWare 12虚拟机安装的CentOS7 安装成功后修改ip: 1. ip addr查看相关信息: 2. 修 ...

  3. 全局解释锁GIL

    ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native th ...

  4. Robot Framework 源码阅读 day2 TestSuitBuilder

    接上一篇 day1 run.py 发现build test suit还挺复杂的, 先从官网API找到了一些资料,可以看出这是robotframework进行组织 测试案例实现的重要步骤, 将传入的te ...

  5. MySQL第五天——日志

    日志 log_error(错误日志) 用于记录 MySQL 运行过程中的错误信息,如,无法加载 MySQL数据库的数据文件,或权限不正确等都会被记录在此. 默认情况下,错误日志是开启的,且无法禁止. ...

  6. rabbit-c编译 vs2013

    需要openssl的库

  7. [python 学习] 编码

    一.源文件编码(encoding: utf-8) 1. python 2.x 默认按ascii编码读取源文件,源码中出现了ascii不能表示的字符 "的",所以报错(3.x版本不报 ...

  8. Tomcat的作用思考及NIO在Tomcat中的应用模型

    Tomcat的作用 平时写完web程序都是直接点击启动,就可以在本机浏览器访问了.但是仔细想想,我们似乎都没有写过浏览器与servlet通信的代码,也没有写过创建request.reponse的代码. ...

  9. 阿里云ECS无法通过SSL远程链接问题。

    自己配置的SSL,通过密码,公司的是通过密钥,结果也是一样, 环境:centos7.x 网络: 家里宽带 公司网络 省图书馆wifi 家里宽带,公司网络均可以链接上去, 但唯独省图书馆wifi链接失败 ...

  10. 【leetcode】1078. Occurrences After Bigram

    题目如下: Given words first and second, consider occurrences in some text of the form "first second ...