JMeter学习笔记——认识JMeter(1)

拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的bug,而是让自己对它有一个直观的认识,后面的功能测试也是为前面的认识做铺垫的,那我们就依赖这个原则来认识下JMeter。

JMeter是干嘛的(主要是官网翻译——> http://jmeter.apach.org

JMeter是一个纯粹的Java编写的应用程序,它主要是用来进行负载和性能测试。设计JMeter最初始的目的是用来测试Web Application但是现在已经扩展了很多功能。JMeter通常被用来对一些静态的或者动态资源(比如PHP, Java,ASP.Net等编写的Web,或者是Java Object, Data Bases and Queries, FTP 服务器等等)进行性能测试。 它通常模拟大量的数据对一个Server或者一个Server Group 网络等进行负载测试。然后通过分析它产生的性能图表来判断测试结果。

安装JMeter

BadBoy(可以用来辅助JMeter录制) 下载地址: http://www.badboy.com.au/download/add

JMeter 下载地址: http://jmeter.apache.org/download_jmeter.cgi

1.  将下载好的安装包解压到指定的目录下面,然后启动JMeter “\apache-jmeter-2.12\bin\jmeter.bat”,就能看到一个JMeter的GUI界面,

2. JMeter默认情况下会根据系统的语言来选择JMeter自身的语言,轻松改变JMeter语言:

组件知多少

1. 线程组

每一个测试用例都必须存在一个或多个线程组,如果有多个线程组(我们在执行测试的时候,他们是同时执行线程组下面的Sampler)

每个线程组下面有三个重要的参数:

  • 线程数: 就是JMeter虚拟出的用户数量,设置多少个线程数就模拟多少个用户。
  • Ramp-Up Period(In Second): 用多长时间运行完这些线程数,举个例子,比如设置线程数100,设置 Ramp-Up Period(In Second)为20,代表的意思就是20秒之类运行完这100个线程,也就是1秒钟运行5个线程数
  • 循环次数: 对这些线程数循环多少次,比如设置的线程数100,然后设置的循环次数为20,意思就是说每个线程要执行20次,那么100个线程就是执行     100*20 次。

对于setUp Thread Group 和 tearDown Thread Group,如果用过Junit的话对于 setUp和tearDown就应该不会陌生了,

setUp Thread Group代表的意思就是在执行线程组之前所进行的操作;

tearDown Thread Group代表的意思就是在执行完所有的线程组之后所需要进行的操作。

1.1 线程组下面有两个重要的控制器

逻辑控制器:用来自定义JMeter的逻辑(if—else, for 循环等等)决定JMeter什么时候发送请求,以及重复多少次。

Sampler(取样器):向服务器中发送请求,以及等待响应。Sampler有多重类型的响应器,比如HTTP请求,JDBC请求等等,不同Sampler根据设置的参数向服务器发送不同的请求,

配置元件 (Configuration elements)

配置元件主要是用来维护Sampler需要的配置信息,并根据实际的需要和设定的范围(逻辑控制器来设定)来修改请求的内容。

定时器(Timers)

默认情况下,JMeter线程发送请求时彼此之间是不会等待的,我们可以通过定时器来进行控制,如果存在多个定时器会采用叠加的方式来设定延迟时间。

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

主要是负责生成请求之前和之后的工作,前置处理器用来修改Sampler请求前的设置,后置处理器用来处理Sampler运行后的响应数据。

        

断言(Assertions)

断言准许你来判断预期结果和从服务器返回的数据进行比较,增加断言能够直接判断你所测试的程序返回的数据是否正确,相当于LoadRunner的检查点。它还有一个重要的特点就是隔离问题域,在确保功能正常的前提下执行压力测试。

监听器(Listeners)

收集测试结果并以不同的表格形式展现出来。

JMeter 执行顺序

  1. 配置元件(Configuration elements)
  2. 前置处理器(Pre-Processors)
  3. 定时器(Timers)
  4. 取样器(Sampler)
  5. 后置处理器(Post-Processors)
  6. 断言(Assertions)
  7. 监听器(Listeners)

注意: 定时器,断言,前置和后置处理器都是围绕着取样器来进行应用的。

举个例子来说明这点:

  • Controller

Post-Processor 1

Sampler 1

Sampler 2

Timer 1

Assertion 1

Pre-Processor 1

Timer 2

Post-Processor 2

执行的顺序:

Pre-Processor 1

Timer 1

Timer 2

Sampler 1

Post-Processor 1

Post-Processor 2

Assertion 1

Pre-Processor 1

Timer 1

Timer 2

Sampler 2

Post-Processor 1

Post-Processor 2

Assertion 1

时间: 2024-08-07 10:33:38

JMeter学习笔记——认识JMeter(1)的相关文章

【转】jmeter学习笔记——一种简单的数据库性能测试方法

前提条件:一个数据库:test   数据库下面有一张表:user   表中有两个字段:username.passworld . 要求:往数据库内大批量插入数据,1000/s 其实和之前的方法一样,为了简单,我还是把截图贴出来吧. 1.创建一个测试计划,将我们所使用的数据库驱动包导入. 2.添加一个线程组,并设置我们的虚拟用户数.启动时间.和循环次数 3.创建一个线程,并在线程下面,创建一个JDBC Connection Configuration ,设置相关信息. 4.创建一个JDBC Requ

【转】jmeter学习笔记——参数化

JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进行参数化,使每个虚拟用户都使用不同的用户名和密码进行访问. 一.准备脚本,测试数据 1.录制一个脚本(可以用badboy工具录制),在jmeter中打开,找到有用户名和密码的页面.如下: 2.我们需要“参数化”的数据,用记事本写了五个用户名和密码,保存为.

【转】jmeter学习笔记——关联

依照<[转]jmeter学习笔记——一个简单的接口测试>一文中的例子,记录讨论关联 所谓关联, 就是第二个Requst, 使用第一个Request中的数据 我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用 选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor 现在新建第二个Http Reque

JMeter 学习笔记从不懂慢慢提升(01)

开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度. 以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言.开发语言~~~~~~~~~~~ 以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程. 一.环境搭建 1.JMeter的环境搭建这个和java

JMeter学习笔记--JMeter属性和变量

JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定义了JMeter在远程模式下运行的服务器地址.属性可以在测试计划中引用,但是不能作为特定线程的变量值 JMeter变量对于测试线程而言是局部变量,这意味着JMeter变量在不同测试线程中,既可以是完成相同的,也可以是不同的,如果有某个线程更新了变量,那么仅仅是更新了变量在该线程中复制的值.例如,“正

jmeter学习笔记(小tips)

聚合报告说明: 1.throughput:吞吐量,默认情况下表示每秒完成的请求数( Request per Second ) 2.KB/Sec:每秒从服务器端接收到的数据量 JMeter 是一个流行的用于负载测试的开源工具, 具有许多有用的功能元件,如线程组(thread group), 定时器(timer), 和HTTP 取样 (sampler) 元件. 本文是对JMeter 用户手册的补充,而且提供了关于使用Jmeter的一些模拟元件开发质量测试脚本的指导.   本文同时也讨论了一项重要的内

jmeter学习-性能指标、jmeter初识

一:性能测试的指标 1. 并发/并发数/并发用户数 狭义的并发:同一时间做相同的一件事 广义的并发:同一时间做不同事情,混合场景,对服务器来说的并发 性能测试,先做简单的狭义并发,在做广义并发:先做单接口的性能测试,再做业务性能测试,最后混合多业务场景的性能测试 并发数:单位时间内向服务器发起请求的用户数 //并发用户数:用于模拟真实用户向服务器发起请求的性能测试虚拟用户数 //系统用户数:只要访问过系统的用户,可能包含那些一次性访问.游客状态的用户 //在线用户数:当前正在访问系统的用户,不一

Jmeter学习笔记[1] —— 简单进行一次接口测试

关于Jmeter的优缺点及安装教程,网上太多了,所以这里省略不表,让我们直接上手玩一玩! 首先,本人在使用过程中语言选择的是中文,如喜欢英文的可以自行设置 下面让我们正式开始~show time!! 选择测试目标,这里我以360搜索引擎登录接口为例,地址:https://www.so.com/ 首先,选中测试计划->鼠标右击->添加->Threads(Users)->线程组 因为这里只是做一个简单的试验,所以线程组中的配置不用管他,保持默认就好 选中线程组,鼠标右击->添加-

JMeter学习笔记--详解JMeter逻辑控制器

JMeter使用逻辑控制器来决定采样器的处理顺序 简单控制器(Simple Controller):存储设备(将某些采样器归组) 循环控制器(Loop Controller:设置循环次数 仅一次控制器(Once Only Controller) 交替控制器(Interleave Controller) 随机控制器(Random Controller) 随机顺序控制器(Random Order Controller): 每个子测试元件都至多执行一次,但是执行顺序是随机的 吞吐量控制器(Throug