拿到一个自动化测试工具,我们第一步就应该了解它能提供我们哪方面的功能(最直接的方法就是从官网获取),接下来就是简单的对这个工具进行“功能测试”了,当然这里的功能测试不是让你找它存在的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

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

  1. JMeter学习笔记01-安装环境

    记录关于JMeter学习的内容.方便复习. 1)JMeter运行环境 因为JMeter是用纯java写的.所以运行的时候需要java的运行环境. 去java官网下载,点免费下载或所有Java下载都行, ...

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

    JMeter属性统一定义在jmeter.properties文件中.JMeter属性在测试脚本的任何地方都是可见的(全局),通常被用来定义一些JMeter使用的默认值.如属性remote_hosts定 ...

  3. JMeter学习笔记(四)

    1. 断言 断言组件是通过获取服务器响应数据,然后根据断言规则去匹配这些响应数据:匹配到是正常现象,此时我们看不到任何提醒,如果匹配不到,即出现了异常情况,此时JMeter就会断定这个事务失败,那么我 ...

  4. Jmeter学习笔记(二十)——后置处理器XPath Extractor使用

    一.背景 在使用过程某些操作步骤与其相邻步骤存在一定的依赖关系,需要需要将上一个请求的响应结果作为下一个请求的参数. Jmeter中后置处理器正则表达式提取器和XPath Extractor都可以将页 ...

  5. Jmeter学习笔记(十九)——后置处理器之正则表达式的使用

    一.正则表达式提取器的作用 允许用户从服务器的响应中通过使用perl的正则表达式提取值.作为一个后置处理器,该元素会作用在指定范围的取样器,应用正则表达式,提取所需要的值,生成模板字符串,并将结果存储 ...

  6. Jmeter学习笔记(十二)——断言

    一.断言简介 jmeter中有个元件叫做断言(Assertion).用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致. 使用断言的目的:在request的返回层面 ...

  7. Jmeter学习笔记(十)——元件的作用域和执行顺序

    jmeter是一个开源的性能测试工具,它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系,那么随着它们的顺序和所在的域不同,它们在执行的时候,也会有很多不同. jmeter的test pla ...

  8. Jmeter学习笔记(九)——响应断言

    Jmeter中又一个元件叫断言,用于检查测试中得到的响应数据等是否符合预期.断言又13种,目前在使用过程中使用到的是响应断言. 有时候请求成功了并不代表测试通过,还要看影响返回的内容是否符合预期的结果 ...

  9. JMeter学习笔记--工具简单介绍

    一.JMeter 介绍 Apache JMeter是纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java ...

随机推荐

  1. MP实战系列(十一)之封装方法详解(续一)

    之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...

  2. zabbix没有frontends目录

    去解压缩的源码包中取 # cd /opt/data/src/about_zabbix/zabbix-2.2.3# cp -rv frontends/ /opt/OperMainManager/zabb ...

  3. $Simpson$积分入门

    \(\rm{0x01}\) 前言 首先阐明一点,自适应辛普森算法(\(\rm{Adaptive ~Simpson's~ rule}\) )是一类近似算法(\(\rm{Approximation ~al ...

  4. oracle版本兼容问题

    问题一描述:本机环境升级为vs2012升级TLS程序为framework4.0,本机ODAC为ODTwithODAC112030.本机为oracle10g本机程序生成成功,运行成功. 发布到服务器后, ...

  5. Excel frequency函数

    计算连续次数最常用的函数就是FREQUENCY,下面就这个函数在计算连续次数的应用做一个详细图解.首先,我们需要了解一下FREQUENCY函数的计算原理.    FREQENCY(数据区域,用于设置区 ...

  6. Scala _ 下划线

    1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) / ...

  7. MSF里MS17_010利用模块笔记

    1.   auxiliary/scanner/smb/smb_ms17_010      //扫描检测漏洞辅助模块 扫描结果这里可以看到 2,3,4这几台主机存在此漏洞! 2.     auxilia ...

  8. # 2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描

    2017-2018-2 20155319『网络对抗技术』Exp6:信息收集与漏洞扫描 实践内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.O ...

  9. 20155328 网络攻防 实验五:MSF基础应用

    20155328 网络攻防 实验五:MSF基础应用 实践内容及过程记录 一.Windows服务渗透攻击----ms08_067 攻击机:kali 靶机:WindowsXP(英文版) 第一步,分别查看攻 ...

  10. 7、mysql高级特性

    7.1.分区表 7.1.1 分区表的原理 7.1.2分区表的类型 7.1.3如何使用分区表 7.1.4什么情况下出问题 7.1.5查询优化 使用explain 来分析sql使用的分区表 7.1.6合并 ...