JMeter压力测试--02主要组件介绍

本文详细介绍了JMeter性能测试工具的主要组件及其用途,包括测试计划、线程组、取样器、逻辑控制器等,并解释了如何配置这些组件来模拟用户行为。

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

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

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

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

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

JMeter主要组件介绍

1测试计划

测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

名称:你可以为你的测试计划取一个有意义的名字。注释:对测试计划的注释。

用户定义的变量:用户可以自己定义变量,在用到此变量的时候直接用${变量名}引用即可。例:变量名=url,值=http://www.baidu.com,在需要http://www.baidu.com时直接用${url}即可。

Add directory or jar to classpath(添加目录或jar到类路径中):向类路径即%JMETER-HOME%\lib中添加目录及jar包。

2、Threads(Users)线程用户

1) setup thread group  

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

2) teardown thread group.  

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

3) thread group(线程组).

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

线程组->名称:为线程组起名字。

线程属性->线程数:设置发送请求的用户数目 ,即并发数。

线程属性->Ramp-Up Period(in second):线程间的时间间隔,单位是秒。即所有线程在多少时间内启动。

线程属性->循环次数:请求的重复次数,如果选择后面的forever(默认),那么请求将一直继续。如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数。如果输入1,那么请求将执行一次。如果是0,会出现问题。

调度器配置->启动时间:测试计划什么时候启动,启动延迟会覆盖它。

调度器配置->结束时间:测试计划什么时候结束,持续时间会覆盖它。

调度器配置->持续时间:测试计划持续多长时间,会覆盖结束时间。

调度器配置->启动延迟:测试计划延迟多长时间启动,会覆盖启动时间。

3、测试片段(Test Fragment

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

4、取样器Sample(HTTP请求)

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

线程组右击添加->HTTP请求

名称:HTTP请求的名字。

Web服务器->服务器名称或IP、端口号,脚本录制时自动添加,也可以使用“用户自定义变量”。HTTP请求:用默认值即可。

同请求一起发送参数:请求中的参数、值可以在此设置,需要用到参数化及动态数据关联。同请求一起发送文件:我可以制定同请求一起发送哪个文件。

其他任务包括:从HTML文件中获取所有内含的资源、用作监视器、Embedded URLs must match(嵌入式url必须匹配

5、逻辑控制器(Logic Controller)

逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

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

循环控制器可以设置请求的循环次数或永远循环(如果选中永远的话)。

事务控制器可以将多个请求放在同一个事务中。如果选中Gegerate parent sample,则聚合报告中只显示事务控制器的数据,而不会显示其中的各个请求的数据,反之则全部显示。

6配置元件(Config Element)

配置元件用于提供对静态数据配置的支持维护Sampler取样器需要的配置信息,并根据实际的需要会修改请求的内容。在参数化中用到CSV Data Set Config可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler cookie 进行管理)

7定时器(Timer)

定时器负责定义请求之间的延迟间隔。用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的思考时间JMeter 定义了Bean Shell TimerConstant Throughput Timer、固定定时器等不同类型的Timer

8、前置处理器(Per Processors

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

9、后置处理器(Post Processors

后置处理器用于对Sampler 发出请求后得到的服务器响应进行处理常用来处理响应的数据。一般用来提取响应中的特定数据在动态关联中用到后置处理器的正则表达式提取器。例如,XPath  Extractor 则可以用于提取响应数据中通过给定XPath 值获得的数据。     

10、断言(Assertions 

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

11监听器(Listener)

这里的监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。常用的包括:聚合报告、查看结果树图行结果用表格查看结果。

聚合报告显示测试结果

Label:每个 JMeter 的 element (例如 HTTP Request )都有一个 Name 属性,这里显示的就是 Name 属性的值 

#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100 

Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间 

Median:中位数,也就是 50 %用户的响应时间 

90% Line: 90 %用户的响应时间

Min:最小响应时间 

Max:最大响应时间 

Error%:错误率,本次测试中出现错误的请求的数量 请求的总数

Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second 

KB/Sec:每秒从服务器端接收到的数据量

测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。

线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求。

取样器(sampler)定义实际的请求内容,被线程组包含,我们主要用HTTP请求。

监听器(Listener) 

逻辑控制器(Logic Controller)

断言(Assertions) 

配置元件(Config Element)

前置处理器(Pre Processors)和后置处理器(Post Processors)

定时器(Timer)

程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。   程序(港台称之为程式) program(me)或procedure   chéng xù   概念1.:为进行某活动或过程所规定的途径。   概念2.程序是由序列组成的,告诉计算机如何完成一个具体的任务。由于现在的计算机还不能理解人类的自然语言,所以还不能用自然语言编写计算机程序。   指示计算机按解决问题的步骤   实现预期目的而进行操作的一系列语句指令。一般分为系统程序应用程序两大类。 计算机中的程序在港澳台地区称为程式。程序就是为使电子计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合。由程序计数器(Program Counter)控制。程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。是用汇编语言、高级语言等开发编制出来的可以运行的文件,在计算机中称可执行文件(后缀名一般为.exe)。我们玩的游戏一般都是应用程序(但现在后缀名为.swf的Flash影片类的游戏也比较流行)   常见的编程语言   * .NET   * ActionScript   * APL、A+J   * Ada   * 汇编语言   * AWK   * Basic   o QBasic   o Visual Basic   * VBScript   * Brainfuck   * C、C++   o Objective-C   * Clipper   * COBOL   * dBase   * PASCAL、Delphi   * Forth   * Fortran   * FoxPro   * F#   * Fava   * IDL   * Java   * JavaScript   * J#   * LISP   * Lua   * LOGO   * Modula   * Nuva   * Perl   * PHP   * PL/I   * Prolog   * Python   * R   * Ruby   * Scheme   * Smalltalk   * Tcl/Tk   * Visual FoxPro   怎样成为一名程序员   第一阶段:掌握一种编程语言   学习内容:学习任意一种主流的编程语言。例如C++语言。   学习目标:熟练掌握一种语言的语法基本的编程技巧。   学习时间:3个月左右   注意事项:编程语言编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等。程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指 Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器 ,在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0编译、执行,所以: C++ 不等于 Visual C++ 6.0 。   第二阶段:掌握一种编程工具   学习内容:学习任意一种主流的编程工具。注意编程工具要第一阶段学习的编程语   言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0、C++ Builder 5.0。   学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。   学习时间:3个月左右   注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。   第三阶段:掌握“算法与数据结构”这门课程   学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。   学习目标:熟练掌握各种常用的算法与数据结构   学习时间:4个月左右   注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构算法的重要性。它能帮我们建立良好的程序分析与设计能力。   第四阶段:实现一个模拟的小型软件项目   学习内容:软件项目的开发过程   学习目标:掌握软件项目的基本开发过程方法   学习时间:4个月左右   注意事项:自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐:   1、“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效。   2、 以它为基础再加以扩展,就可以做出实用的MIS软件来。   3、此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》   4、《JAVA数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》。   5、《VISUAL C++6.0数据库系统开发实例导航》 《ASP.NET数据库管理系统开发实例导航》   6、《DELPHI数据库系统开发实例导航》 《POWERBUILDER 8.0数据库系统开发实例导航》。 [编辑本段]社会上办事程序的定义 工作程序|按程序进行。   程序,是现在最吃香的提法。   [1]任何单位任何事情,首先强调的就是程序,因为管理界有句名言:细节决定成败。程序就是整治细节最好的工具。于是,现在我们的所有工作,无时无处不在强调程序。 因为有了规范的办事程序,现在我们这些平民百姓到政府机关办事比原来容易了许多,最起码知道办什么事该找哪个部门,知道办这个事应该用多长时间了。政府公开办事程序,也拉近了人民群众的关系。好,这是好得很的事。 好像是为了印证事物都是一分为二的道理一样,在赞颂程序的同时,我们也看到了程序冷酷的另一面。南宁见义勇为的英雄鲍光蛇在医院冷酷的程序中流尽了最后一滴血,公路收费站的值班人员因救护车交不出十元钱的过路费而坚决不放行救护车,终于使急需救助的患者丧命,……等等的例子,都为我们强调或者说奉为神圣规则的程序优先勾画出了它的原形。   程序,是管理方式的一种,是能够发挥出协调高效作用的工具,在我们的社会主义建设事业或者说现代化建设中,应该充分重视它的作用,应该不断地将我们的工作从无序整改到有序。   可是,当我们只关注形式而不关注实质的时候,有些事情就发展到了它的反面。程序不是医治百病的灵丹妙药,在它走向反面的时候,它是使那些官僚主义者视劳苦大众利益如不见的人们推脱掉自己应当承担的责任的最好的挡箭牌。因为越是严密完善的程序,按部就班执行起来越是要付出时间的代价,当时间被浪费了时候,因此引发的其他损失是不应该由模范执行了程序的人来负责的。 [编辑本段]程序的运行   为了一个程序运行,计算机加载程序代码,可能还要加载数据,从而初始化成一个开始状态,然后调用某种启动机制。在最低层上,这些是由一个引导序列开始的。   在大多数计算机中,操作系统例如视窗等,加载并且执行很多程序。在这种情况下,一个计算机程序是指一个单独的可执行的映射,而不是当前在这个计算机上运行的全部程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值