Jmeter运行原理

Jmeter运行原理:

  JMETER是运行在JVM虚拟机上的,每个进程的开销比loadrunner的进程开销大,如果以进程的方式来运行每台负载机上的进程数量不会允许太多,当有大量并发时就需要大量的负载机,jmeter选择了以线程方式来运行。jmeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载,每一个负载机上都可以运行多个线程组。jemter运行场景不仅可以再gui方式中完成,还可以运行命令行,而且命令行的运行方式对于负载机的资源消耗会更小。Jmeter基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行过程中通过断言来验证结果的正确性,可以通过监听来记录测试结果;

  如果取样器中有参数化需求,可以通过配置元件或者前置处理器来完成;

  如果取样器中有关联需求,可以通过后置处理器来完成;

  如果要模拟负载场景,比如模拟多少用户,运动多长时间,可以通过线程组完成;

  如果要模拟并发场景,可以通过定时器来完成;

  如果要控制业务的执行逻辑,比如登录只运行一次,可以通过控制器来完成;

  一:jmeter远程运行,远程运行架构图

  1:控制机

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

  2:负载机

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

  3:远程运行逻辑

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

原文地址:https://www.cnblogs.com/qiaoli0726/p/9784108.html

时间: 2024-10-11 13:47:37

Jmeter运行原理的相关文章

Jmeter结构体系及运行原理

Jmeter结构体系 把Jmeter的结构体系拆分为三维空间,如图: X1~X5:是负载模拟的一个过程,使用这些组件来完成负载的模拟: X1:选择协议,模拟用户请求,检查服务器响应是否正确,然后收集结果信息: X2:完善测试脚本部分,包括参数化,关联等: X3:控制测试脚本业务逻辑: X4:集合点,模拟用户并发: X5:用户数,一个线程代表一个用户: Y1:可以理解为选择协议,包含负载模拟部分,负责模拟用户请求: Y2:可以理解为检查点,结果验证部分,负责验证结果正确性: Z:可以理解为监控器,

虚拟内存运行原理!

                                   虚拟内存运行原理! 在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间.当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需要的进程使用. 在Linux内存管理中,主要是通过"调页Paging"和"交换Swapping"来完成上述的内存调度.调页算法

黑马公开课——运行原理与GC学习笔记

.NET Framework 程序的运行原理 .NET Framework的组成:(1)基础类库(BCL):使用线程的类来完成编程,对于不存在的类,就自己编写:(2)编译工具:将源文件,编译成"程序集"(exe或dll等)[.NET环境中,MSIL=CIL=IL](3)公共语言运行时(CLR):执行前检测.编译:执行到了某个方法时才编译这个方法的代码[即时编译器(JIT)]编译过程:.NET源代码(C#)-->通过C#编译器编译成程序集[程序集中包括:元数据(一个表,显示了程序中

html的运行原理

     html的运行原理      1.本地运行       html 文件 使用 浏览器(软件)        视频文件   使用 暴风软件       2,远程访问运行          在100%情况(除了自己测试外)是远程访问html文件        html的基本结构         不管这个html 文件有多复杂,它的基本结构式          <元素 属性='属性值'...>内容</元素>          如果没有内容,可以这样写          <

Memcached概念、作用、运行原理、特性、不足简单梳理(1)

http://www.cnblogs.com/yinrq/p/5013742.html Memcached概念.作用.运行原理.特性.不足简单梳理(1) 大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过.这都没什么关系,本文旨在从各个角度综合的介绍这种产品,尽量深入浅出,如果能对您现在或以后的工作有所帮助,笔者将感到无比荣幸. Memcached概念.作用.运行原理.特性.不足简单梳理(1) Memcached下载安装.NET

Nginx FastCGI的运行原理

一.FastCGI 1.介绍 CGI全称通用网关接口 Commmon Gateway Interface 用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上. 传统CGI接口方式性能较差,由于每次HTTP服务器遇到动态程序需要重启解析器来执行解析,然后结果被返回给HTTP服务器.这在处理高并发时,几乎是不可能的,因此诞生了FastCGI.另外传统的CGI接口方式安全性也很差 一个可伸缩地.高速地在HTTP服务器和动态脚本语言间通信的接口 接口在linux下是socke

Linux下管道的运行原理及实现

管道(PIPE) 管道的运行原理 管道是一种最基本的IPC机制,由pipe函数创建: #include<unistd.h> int pipe(int filedes[2]); 调用pipe函数时在内核中开辟一块缓冲区用于通信,它有一个读端和一个写端,通过filedes参数传出给程序两个文件描述符,filedes[0]指向管道的读端,filedes[1]指向管道的写端.管道就像一个打开的文件,通过read(filedes[0]);或者write(filedes[1]):向这个文件读写数据,其实是

Android开发学习笔记(二)——编译和运行原理(1)

http://www.cnblogs.com/Pickuper/archive/2011/06/14/2078969.html 接着上一篇的内容,继续从全局了解Android.在清楚了Android的平台架构(可以看作是静态原理)后,还需要掌握其动态原理.动态原理包含两部分,一部分是编译原理,另一部分是运行原理.有人会说,搭建一个基于Eclipse的Android开发环境,编译和运行只要点击按钮即可完成.但是,如果只是“知其然而不知其所以然”的话,在后面的开发中一旦遇到奇怪的问题后可能就束手无措

[二]java运行原理

public class HelloWorld{ public static void main(String args[]){ System.out.println("hello"); } } 运行原理: .java 编译(javac) .class 运行(java) 得出结果