Jmeter基础之——jmeter基础概念

JMeter 介绍:一个非常优秀的开源的性能测试工具。

  优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来。

  从性能工具的原理划分:

  Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分:

  (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为。

  (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为。

  (3)资源生成器:用于生成测试过程中服务器、负载机的资源数据。

  (4)报表生成器:根据测试中霍地的数据生成报表,提供可视化的数据显示方式。

  测试计划元件

  --------------------------------------------------------------------------------

  Test Plan (测试计划):用来描述一个性能测试,包含与本次性能测试所有相关的功能。也就说本的性能测试的所有内容是于基于一个计划的。

  下面看一下一个计划下面都有哪些主要的功能模块(右键单击“测试计划”弹出菜单)。

  Threads (Users)线程 用户

  虽然有三个添加线程组的选项,名字不一样, 创建之后,其界面是完全一样的。之前的版本只有一个线程组的名字。现在多一个setUp theread Group 与terDown Thread Group

  1)setup thread group

  一种特殊类型的ThreadGroup的,可用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。

  2)teardown thread group

  一种特殊类型的ThreadGroup的,可用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。

  可能你还是不太理他们与普通的线程组有什么不同。 如果您用过junit,想必你不会对setup ,teardown这2个字眼陌生。 即时每用过,也没关系。 熟悉loadrunner的应该知道,loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除信息的脚本块。 那么这里 setup thread group 和 teardown thread group 就是分别指这两部分。  其实从本质上来看,他们并没有什么不同。

  3)thread group(线程组)

  这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

 测试片段(Test Fragment)

  测试片段是在2.5版本之后新加的一个选项。

  测试片段元素是控制器上的一个种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。

  控制器

  JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。

  取样器(Sampler)

  取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler,如 HTTP Request Sampler、FTP  Request Sample、TCP  Request Sample、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。(在jmeter 的所有sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是两种特殊的可定制的 Sampler,后面会深入讨论。)

  逻辑控制器(Logic Controller)

  逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。

 配置元件(Config Element)

  配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的cookie 进行管理)

  定时器(Timer)

  定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

  前置处理器(Per Processors)

  用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。

  后置处理器(Post Processors)

  用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath  Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。

断言(Assertions)

  断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。

  监听器(Listener)

  这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。

  到此,我们已经简单了解了jmeter的基本组成原件,我们后序的性能测试工作也就是使用这些元件来完成测试任务。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-22 13:12:48

Jmeter基础之——jmeter基础概念的相关文章

Javascript基础与面向对象基础~第一讲 啥叫编程,啥叫程序员

啥叫编程,啥叫程序员?这是一个有意思的问题,呵呵! 啥叫编程 编程其时很简单,就是把一些抽象的东西通过代码的方式表现出现,而代码我们通常叫它开发语言,我们使用开发语言完成某种功能的过程,叫做编程! 啥叫程序员 程序员是一种有思想,有干劲,有热情,有梦想,而又与常人在某些地方不同的人,网上有很多说法,也有很多定义,如程序员应该叫苦B程序员,程序员应该叫码农,程序员应该叫IT民工等等,但我并不这样认为,程序员是可以被人们尊敬的,他们绝对是对未来有着美好希望,对工作有着执着的追求,对周边需要帮助的人有

Jmeter基础之---jmeter基础概念

JMeter 介绍: 一个非常优秀的开源的性能测试工具.   优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来.   从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分: (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为. (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为. (3)资源生成器:用于生成测试过程中服务器.负载机的资源数据. (4)报表生成器:根据测试中霍地

《SAP CRM管理与实施指南》一一第2章 SAP CRM基础数据与基础功能

第2章 SAP CRM基础数据与基础功能 基础数据也称主数据,是整个CRM系统的基础,是系统运行的基石,被多个模块共同使用.基础数据中有诸多信息对流程和功能起着决定性的控制作用,比如合作伙伴关系.角色.销售视图数据及服务类数据均在相关流程中体现和应用.而在诸多流程和应用中均会用到一些基础功能,如业务合作伙伴处理.业务事务处理.定价.日期管理.操作及文本等.本章介绍SAP CRM中常用的基础数据和基础功能.项目实施中,主数据有时未受到足够的重视,这会导致一些问题,比如应用后未达成理想的效果.使用不

需要牢记的JavaScript基础知识_基础知识

声明(Declarations) undefined值在布尔类型环境中会被当作false. 数值类型环境中undefined值会被转换为NaN. 对一个空变量求值时,空值 null 在数值类型环境中会被当作0来对待,而布尔类型环境中会被当作false JavaScript 变量感觉上是被"提升"或移到了所有函数和语句之前.提升后的变量将返回 undefined 值,所以即使在使用或引用某个变量之后存在声明和初始化操作,这个被提升的引用仍将得到 undefined 值. 由于存在变量声明

Javascript基础与面向对象基础~Javascript中的语句如何被执行,如何改变执行顺序

本讲主要是JS语言中的代码如何被解释执行的,这个问题其实和其它语言是一样的,程序执行顺序为"从上到下",当然如果代码中有分支,它的执行顺序可能有所改变,而这种支在程序设计中叫做"分支结构(条件结构)",再或者某个操作需要反复执行10次,这在程序设计中叫做"循环结构". 正常的程序结构 //普通的结构 var info = "hello world" console.log(info); 带有分支的程序结构 //IF条件结构 v

Javascript基础与面向对象基础~第五讲 Javascript中的方法,类中的方法

上一文章主要说的是JS中的类,有很多朋友回复了我的文章,在此很感谢大家,也对一些朋友提出的问题进行了回复,"类"这东西,只是一种思想,我们不应该把重点放在"某种语言是否提供类,或者是否实现了类",这是不重要的,重要的是面向对象中的类的思想! 今天主要说的是方法,JS中的方法也叫做函数function,它将一些有关系的代码组织在一起,形成一个整体,这类似于面向对象中的封装,你不需要了解方法的实现细节,你只要去调用它,了解方法的签名即可. 最简单的函数(方法): <

Javascript基础与面向对象基础~第四讲 Javascript中的类对象

今天来说JS中如何实现类(class),事实上本应该昨天晚上写的,可我失言了,在些说一声"抱歉"!JS中的类是JS面向对象的基础,也是我最拿手的东西,你写的代码能否提高一个层次,一般是从这点上看出来的. 占占对类的定义: 类是对现实中的事物的抽象,一个类一般由属性和方法构成,属性是一些固定的信息,而方法是类的某种行为,类往往用来抽象一些复杂的对象,类与类这间可以进行继承,一般通过JS的function实现,JS中的类对象是实现JS面向对象的基础. 占占对结构体的定义: 一个结构体也是对

Jmeter基础:jmeter基础概念

JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. 从性能工具的原理划分: Jmeter工具和其他性能工具在原理上完全一致,工具包含4个部分: (1)负载发生器:用于产生负载,通常以多线程或是多进程的方式模拟用户行为. (2)用户运行器:通常是一个脚本运行引擎,用户运行器附加在线程或进程上,根据脚本要求模拟指定的用户行为. (3)资源生成器:用于生成测试过程中服务器.负载机的资源数据. (4)报表生成器:根据测试中霍地的数据生

Linux shell编程基础 二、基础概念

基础概念部分 登陆主机 登陆主机分为本地登陆和远程登陆. 本地登陆:就是直接面对主机,由键盘输入用户密码登陆,使用tty1-tty6,或者图形界面tty7 远程登陆:通过网络连接主机,以虚拟终端的方式登陆,使用ssh 退出登陆 1.使用命令exit 2.使用[Crtl+D]退出 文件 在Linux中,任何东西包括硬件都视为文件.文件可以分为几种: 一般文件:纯文本文件,二进制文件.如果文件具有执行权限,称为执行文件. 目录:包含文件. 设备文件:字符文件,磁盘文件. 内部进程通信文件:socke