在使用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如果是线程数的两倍就表示成功啦!

注意

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

最新文章

  1. linux node安装
  2. Verilog HDL那些事_建模篇笔记(实验九:VGA驱动)
  3. HTML5气泡悬浮框(已经加上完整文件)
  4. 算法练习26-xx
  5. 2016 Multi-University Training Contest 7
  6. (转)将wcf 以webservice的方式调用
  7. ECG信号读出,检测QRS,P,T 波(小波去噪,并根据检测),基于BP辨识的神经网络
  8. virsh 常用操作
  9. R语言︱非结构化数据处理神器——rlist包
  10. 创建一个QT for Android的传感器应用应用程序(摘自笔者2015年将出的《QT5权威指南》,本文为试读篇)
  11. 【Visual C++】游戏编程学习笔记之二:定时器的使用
  12. D3 learning notes
  13. Houdini SDF/Raymarching/等高曲面绘制
  14. Mybatis入门实例
  15. python基础(9)-迭代器&生成器函数&生成器进阶&推导式
  16. (八) .launch文件 ---编写简单的启动脚本文件
  17. win7下面iis错误汇总
  18. Mac 10.12安装WebStorm
  19. 【转】Spring+Mybatis+SpringMVC+Maven+MySql搭建实例
  20. Java:有关自定数组的学习

热门文章

  1. 前端写代码自动刷新神器Browsersync
  2. 360CTF Re wp
  3. CentOS安全防护实例
  4. 浅谈ContextLoaderListener及其上下文与DispatcherServlet的区别
  5. [python 学习] 类
  6. HTML表单(来自MDN的总结)
  7. [洛谷P2296] NOIP2014 寻找道路
  8. python中sort与sorted区别
  9. python之requests模块中的params和data的区别
  10. centos 配置vlan