前几篇我们讲解了JMeter的组成部分, 下面我们来了解JMeter的运行原理。
接触过LoadRunner的读者应该知道, LoadRunner可以选择是以进程方式还是以线程方式来运行,
在JMeter中我们是以线程的方式来运行的。由于JMeter是运行在JVM虚拟机上的, 每个进程
的开销比LoadRunner的进程开销要大, 如果以进程的方式来运行的话, 每台负载机上的进程
数量就不会允许太多,当我们要大量并发时就需要大量的负载机,这显然是不经济的,再者
Java也是支持多线程的, 所以JMeter选择了以线程方式来运行。
JMeter通过线程组来驱动多个线程(类似LoadRunner中的虚拟用户) 运行测试脚本对
被测试服务器发起负载,每一个负载机上都可以运行多个线程组,如图3-13中此测试计划有
两个线程组。JMeter运行场景不仅可以在GUI方式中完成, 还可以使用命令行, 而且命令行
运行的方式对于负载机的资源消耗会更小。
JMeter支持远程运行,
下图是JMeter远程运行架构图。

(1) 控制机:运用多台JMeter负载机进行性能测试时, 被选中作为管理机的那台机器即是控制机。JMeter控制机也可以参与脚本的运行, 同时它也担负着管理远程负载机指挥远程
负载机运行的任务,并且收集远程负载机的测试结果。
(2) 负载机:向被测试应用服务器发起负载的机器, 控制机同时也是一台负载机。JMeter负载机受控制机(JMeter负载机) 管理。与其他支持远程运行的测试工具一样, 负载机受控
制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负
载机。控制机会把运行的脚本隐蔽地发送到远程负载机,但是如果运行的测试脚本有参数文
件及依赖的jar包时, 控制机并不能把它们发送到远程负载机, 这种情况就需要手动拷贝了,
当然在利用JMeter做性能测试自动化时可不能这样, 我们可以用工具来实现自动拷贝。
(3)远程运行逻辑:
远程负载机首先启动Agent程序, 待控制机连接;
控制机连接上远程负载机:
控制机发送指令(脚本及启动命令)启动线程;
负载机运行脚本,回传状态(包括测试结果);
控制机收集结果并显示。

运行原理_JMeter运行原理相关推荐

  1. 以太坊完整工作原理和运行机制!

    以太坊完整工作原理和运行机制! 2018年04月28日 00:00:00 阅读数:26 作者 | Preethi Kasireddy 编译 | 老曹.Aholiab 链圈的人提起「以太坊」三个字想必是 ...

  2. BC之SC:区块链之智能合约——与传统合约的比较以及智能合约模型部署原理、运行原理相关配图

    BC之SC:区块链之智能合约--与传统合约的比较以及智能合约模型部署原理.运行原理相关配图 目录 SC与传统合约的比较 SC模型部署原理.运行原理 SC与传统合约的比较 1.传统合约VS智能合约  特 ...

  3. 使用ToolRunner运行Hadoop作业的原理及用法

    使用ToolRunner运行Hadoop作业的原理及用法 @(HADOOP)[hadoop, 大数据] 使用ToolRunner运行Hadoop作业的原理及用法 一示例程序一打印所有参数 1直接运行程 ...

  4. java字节码运行原理_JVM 内部原理(六)— Java 字节码基础之一

    JVM 内部原理(六)- Java 字节码基础之一 介绍 版本:Java SE 7 为什么需要了解 Java 字节码? 无论你是一名 Java 开发者.架构师.CxO 还是智能手机的普通用户,Java ...

  5. Java虚拟机(一)结构原理与运行时数据区域

    前言 本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚拟机系列,这一篇文章我们来学习Java虚拟 ...

  6. php的工作原理,PHP的运行机制和工作原理的内容

    这篇文章给大家介绍的内容是关于PHP的运行机制和工作原理的内容,有着一定的参考价值,有需要的朋友可以参考一下. 一.PHP设计理念及特点 多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保 ...

  7. MR的原理和运行流程

    文章目录 MR的原理和运行流程 Map的运行过程 Reduce处理过程 Shuffle过程 MR运行过程 Yarn && Job MR的原理和运行流程 Map的运行过程 以HDFS上的 ...

  8. jvm性能调优实战 - 41JVM运行原理和GC原理Review

    文章目录 Pre JVM和GC的运行原理 对象什么时候进入老年代? 老年代的GC是如何触发的? 正常情况下的系统 Pre 我们已经把完整的JVM运行原理.GC原理以及GC优化的原理,还有线上发生GC问 ...

  9. grpc通信原理_容器原理架构详解(全)

    目录 1 容器原理架构 1.1 容器与虚拟化 1.2 容器应用架构 1.3 容器引擎架构 1.4 Namespace与Cgroups 1.5 容器镜像原理 2 K8S原理架构 2.1 K8S主要功能 ...

最新文章

  1. nginx reload内存碎片问题-(一)
  2. 【Java 网络编程】UDP API 简介 ( DatagramSocket | DatagramPacket )
  3. php foreach 符号,关于php:php-foreach循环中变量之前的符号
  4. powerdesigner显示工具面板_10分钟看懂Photoshop 绘画(画笔面板1-3)
  5. 谷歌guava_使用Google Guava进行馆藏创建和不变性
  6. Java编译过程(传送门)
  7. java lambda表达式详解_Lambda表达式详解
  8. 模板模式(部分方法延迟到子类实现)
  9. 关于c:if没有c:else解决方案
  10. bzoj 2141 : 排队 (cdq分治+bit)
  11. 改变照片分辨率的软件_设计图像,想调整大小而又不降低质量,用这3个软件,那就对了...
  12. Android系统 miui主题6,miui主题工具-miui主题工具最新版v2.6.2 安卓版_永辉资源网
  13. pycharm汉化版安装
  14. RGB色彩之间的过渡参考
  15. android的sd卡分区,AndroidSD卡做磁盘分区图文教程
  16. 计算机维修5级,电脑芯片级维修教程
  17. VUE2中provide 和 inject用法,以及怎么做响应式数据?
  18. vue3.0的写法以及setup的用法
  19. 微信公众号文章存在敏感词被屏蔽
  20. 什么是软考?计算机专业有没有必要考?

热门文章

  1. Linux 删除mysql数据库失败的解决方法
  2. CENTOS6.5 TFS部署
  3. Windows 10企业批量部署实战之Windows 10客户端部署
  4. Chirpy Zippy工具使用心得
  5. (转)C#对FTP的操作(上传,下载,重命名文件,删除文件,文件存在检查)
  6. 寻找数组中 的最大值最小值
  7. JSP基础(一)JSP介绍,文件结构及执行过程
  8. c++ 在函数中传递数组和sizeof用法注意事项
  9. 解决RichEdit line insertion error的方法(转载)
  10. 【题解】洛谷P1283 平板涂色(搜索+暴力)