JMeter介绍

JMeter是开源的性能测试工具和接口测试工具,工作原理和Loadrunner一样:作为浏览器和WebServer之间的网关,捕获Browser请求和WebServer响应,然后通过多线程模拟用户访问场景,监控系统资源的变化情况从而得到性能的情况。JMeter和Loadrunner相比,不存在质的差异,因其成本的低廉性而被广泛使用。
和Loadrunner等商业工具相比,优点是:成本低廉,灵活性和可扩展性高(加载插件,开放API,ANT自动运行,支持分布式),学习资源和渠道多(有较多学习资源和论坛讨论)。缺点是:对从业人员的要求更高,需要有良好的编程能力,英文能力和分析解决问题的能力。除了易用性,Loadrunner的支持协议更广,图形报表更强,并且支持IP欺骗。

Jmeter主要特点

  1. 多协议支持
  2. 可通过录制回放实现
  3. 100%纯Java应用程序,具备高可移植性
  4. 高可扩展(开源代码,多种插件)。

测试元件

  • 测试计划:测试脚本的根节点,设置整个脚本的基础配置,比如用户定义变量。
  • 线程组:虚拟用户池。
  • 逻辑控制器:控制采样器执行逻辑。
  • 采样器:请求的基本单元,每一种采样器都有多种参数可供设置,用于向服务器发出特定请求并在超时前等待服务器响应。测试人员还可以在采样器的级联节点添加多个配置原件来定制采样器,如果不添加,则采用默认配置。采样器可以是逻辑控制器的子节点,也可以和逻辑控制器处于同一层级。
  • 断言:采样器/逻辑控制器的子节点,验证服务器返回结果是否满足需求,断言的结果可在监听器中查看。如果父节点是逻辑控制器,断言对父节点下的所有采样器都生效。
  • 监听器:收集和展示测试结果,有多种图形展示,监听器可以在任何地方添加,仅收集相同或者更低级别测试元件的数据。
  • 配置元件:设置脚本配置信息,有作用域并且子配置元件的优先级高于父配置元件,作用域规则和断言一样。
  • 定时器:作为采样器或者是逻辑控制器的子项,可让作用域内每一个采样器都在执行前等待一个固定时长,多个定时器的时长会叠加共同影响。
  • 前置处理器&后置处理器: 对执行范围内的采样器,在执行前和执行后做相应的处理
  • 工作台:保存暂时不需要使用的测试元素

测试元件执行顺序规则

  1. 配置元件
  2. 前置处理器
  3. 定时器
  4. 采样器
  5. 后置处理器
  6. 断言
  7. 监听器

逻辑控制器和采样器按照在测试树中出现的顺序执行,其他测试元件依据自身的作用域范围来执行,同一范围内出现,则按先后顺序执行。

线程组配置

ramp-up period: JMeter达到最大线程数需要多长时间.eg: 如果线程数设置为10,ramp-up period设置为20就意味着每2s启动一个线程,20s内启动所有线程并让他们运转起来。如果设定的太短,测试的初始阶段会给予服务器过大的压力;设 定的太长,第一个线程执行完毕的时候最后一个线程可能还没有启动,如何找到合适的Ramp-up? 建议初学者先设置ramp-up=总线程数,后续在根据情况适当调整。如果ramp-up不填,则默认为0,意味着立即启动所有线程。

循环次数和调度:用户亦可配置调度器,启动时间/结束时间搭配使用,JMeter会在每一次循环结束以后查看是否到达结束时间,如果没有,则启动下一轮循环。延迟时间和持续时间搭配使用,当这两个选项启用后会自动的忽略启动时间/结束时间。

Delay Thread creation until needed

JMeter变量:参数化

如何参数化

JMeter属性

全局的属性和变量

高级使用

  • 安装目录层级
  • 配置修改
  • ANT自动运行
  • 插件扩展
  • API定制

JMeter基础知识的更多相关文章

  1. JMeter基础知识系列二

    1.从web服务或其他远程服务的角度来看,Jmeter很像是一款浏览器,但实际他并不是浏览器,Jmeter支持浏览器的部分操作.如:Jmeter不支持hmtl页面中包含的JavaScript脚本.处理 ...

  2. 【Jmeter基础知识】Jmeter的三种参数化方式

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  3. 【Jmeter基础知识】Jmeter响应断言和断言结果

    一.Jmeter创建一个响应断言 1.步骤:添加--断言--响应断,进入响应断言页面 2.断言内容:可以采用直接去搜索某些文本信息,或者可以去断言某个变量,如图 二.Jmeter创建一个断言结果 1. ...

  4. JMeter基础知识系列三

    JMeter测试结果字段的意义: Label:定义HTTP请求名称. Samples:表示这次测试中一共发出了多少个请求. Average:平均响应时长,当使用了Transaction Control ...

  5. JMeter基础知识系列一

    1.Jmeter简介: Apache Jmeter可以用于对静态和动态的资源(文件.web动态语言-PHP.java.ASP.net.java对象.数据库和查询.FTP服务器等)的性能进行测试.最初用 ...

  6. 零成本实现WEB性能测试(二)JMeter基础知识

    特点: 支持多种服务类型进行测试,包括: Web-Http,HTTPS SOAP Database via JDBC LDAP JMS Mail-POP3 & IMAP 支持录制回放方式获取脚 ...

  7. Jmeter 接口测试知识梳理——应用基础篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter 接口测试知 ...

  8. JMeter性能测试的基础知识和个人理解

    JMeter性能测试的基础知识和个人理解 1. JMeter的简介   JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...

  9. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

随机推荐

  1. CodeForces 384A Coder

    Coder Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  2. UE4高级功能--初探超大无缝地图的实现LevelStream

    转自:http://blog.csdn.net/u011707076/article/details/44903223 LevelStream 实现超大无缝地图--官方文档学习 The Level S ...

  3. Cheatsheet: 2013 11.12 ~ 11.30

    Mobile Xcode 5 Essentials Android vs. iOS Development: Fight! Using MVC to Understand ASP.NET, iOS, ...

  4. Windows平台安装Redmine2.5.x

    安装准备 下载RubyInstaller和Development Kit,也可以使用RailsFTW,轻松搞定windows下的安装. 下载MySql 下载mysql-connector-c-noin ...

  5. VIM如何将全部内容复制并粘贴到外部

    ubuntu默认安装的vim是不支持系统剪切.粘贴版的,需要执行以下安装:sudo apt-get install vim-gnome 注意要让vim支持系统粘贴板,首先执行sudo apt-get ...

  6. C# 线程(二):关于线程的相关概念

    From : http://kb.cnblogs.com/page/42528/ 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源. 而一个进程又 ...

  7. Visual C#两分钟搭建BHO IE钩子(转)

    摘自:http://www.cnblogs.com/mvc2014/p/3776054.html 微软在1997年正式推出Browser Helper Object (BHO), 使程序员能够更好的对 ...

  8. jquery的隐式类型转换

    jquery的选择器想用变量来传,然后就纠结怎么写引号的问题??? 当时脑子就犯轴了,这个我要是传变量怎么写引号啊,我要是在最外层在加一层引号就不对了,就没法识别变量了,不加反而对了 那就用conso ...

  9. HttpServletResponse 学习

    1: 利用Response向浏览器输出中文: private void test1(HttpServletResponse response) throws IOException { String ...

  10. iOS - OC Struct 结构体

    1.结构体的定义与调用 // 定义结构体类型 // 结构体类型名为 MyDate1 struct MyDate1 { int year; int month; int day; }; // 定义结构体 ...