浅谈 JMeter 运行原理

浅谈 JMeter 运行原理

接触过 LoadRunner 的朋友应该都知道,LoadRunner 可以选择是以进程方式还是线程方式运行的 。在 JMeter中我们是以线程的方式来运行,由于 JMeter 是运行在 JVM 虚拟机上的,每个进程数量就会不允许太多,当我们要大量并发时就需要大量的负载机,这显然是不经济的,再者 JAVA 也支持多线程,所以 JMeter 选择了以线程的方式来运行。

JMeter 通过线程组来驱动多个线程 (类似 LoadRunner 中的虚拟用户)运行测试脚本对被测服务器发起负载,每一个负载机上都可以运行多个线程组,如当我们测试计划中有两个线程组,JMeter 运行场景不仅可以再GUI方式中完成,还可以使用命令行,而且命令行运行的方式对于负载机的资源消耗会更小。下方是Jmeter远程运行架构图。
在这里插入图片描述
1:控制机

运行多台jmeter负载机进行性能测试时,被选中作为管理机的那台机器就是控制机。控制机也可以参与脚本的运行,同时它也担负管理远程负载机指挥远程负载机运行工作,且收集远程负载机运行测试结果。

2:负载机

负载机就是向被测应用服务发起负载(请求)的机器。控制机同时也是一台负载机。jmeter负载机受控制机(jmeter负载机)的管理。与支持其他远程运行的测试工具一样,负载机受控制机管理首先要启动一个客户端程序(Agent:jmeter-server.bat),这样控制机才可以接管负载机。控制机会把运行的脚本隐蔽的发送到远程负载机,但是运行的测试脚本有参数文件或者依赖jar包时,控制机并不能把他们发送到远程负载机,这种情况就需要手动拷贝,也可以用工具实现自动拷贝。

3:远程运行逻辑

远程负载机首先启动agent程序,待控制机连接;控制机连接上远程负载机;控制机发送指令(脚本及启动命令)启动线程;负载机运行脚本,回传状态(包括测试结果);控制机收集结果并显示

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100679.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JS截取字符串方法实例

    JS截取字符串方法实例

    2021年11月3日
    35
  • 跳跃性思维的一些特征【转】

    跳跃性思维的一些特征【转】好吧!我勇敢地承认我是跳跃性思维。跳跃性思维又称选单式思考,经常讲话前言后语不搭,跳跃性很强;一边和别人在聊天,同时想到完全不搭的另外事;旁人聊天时却很迷惑,浑然不知我在表达什么。当你谈话后意识到我时

    2022年8月4日
    3
  • 什么是pl/sql语句_过程化SQL有三种循环结构

    什么是pl/sql语句_过程化SQL有三种循环结构—认识PL/SQL   ***PL/SQL的使用几乎贯穿于整个Oracle的学习过程,也是作为一个初级开发人员必须掌握的重要知识点。   ***结构化查询语言(SQL)是用来访问和操作关系型数据库的一种标准通用语言,它属于第四代语言(4GL),       简单易学,使用它可以很方便地调用相应的语句来取得结果。该语言的特点就是非过程化。也就是说,使用       的…

    2022年10月11日
    0
  • 前端请求后台报错400

    前端请求后台报错400前端请求后台报错400

    2022年5月6日
    124
  • 每天学一点 — CCriticalSection临界区

    每天学一点 — CCriticalSection临界区(转)类CCriticalSection的对象表示一个“临界区”,它是一个用于同步的对象,同一时刻只允许一个线程存取资源或代码区。临界区在控制一次只有一个线程修改数据或其它的控制资源时非常有用。例如,在链表中增加一个结点就只允许一次一个线程进行。通过使用CCriticalSection对象来控制链表,就可以达到这个目的。它就像是一把钥匙,哪个线程获得了它就获得了运行线程的权力,而把其他线程统统阻塞

    2022年7月20日
    12
  • ireport教程_linear predictor

    ireport教程_linear predictor三元元算($F{username}.equals(“a”))?”它是a”:”它不是a”

    2022年9月4日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号