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. BZOJ 2658 小蓝的好友

    题目链接:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2658 题意:给出一个n*m的格子.某些格子中有障碍.求包含至少一个障碍的矩形有多少 ...

  2. which、whereis、locate、find 命令用法

    which.whereis.locate.find 命令用法   大部分转自http://312788172.iteye.com/blog/730280,有修改 我们经常在linux要查找某个文件,但 ...

  3. Django 查询很经典的

    版权归作者所有,任何形式转载请联系作者. 作者:petanne(来自豆瓣) 来源:https://www.douban.com/note/301166150/  1.多表连接查询:感觉django太N ...

  4. oracle默认管理员的帐号和密码以及密码修改和解除锁定

    安装 ORACLE 时,若没有为下列用户重设密码,则其默认密码如下: 用户名 / 密码 登录身份 说明 sys/change_on_install SYSDBA 或 SYSOPER 不能以 NORMA ...

  5. [转]What you need to know about transimpedance amplifiers – part 1

    Transimpedance amplifiers (TIAs) act as front-end amplifiers for optical sensors such as photodiodes ...

  6. GenericServlet,HttpServletRequest和HttpServletResponse

    最基本的是通过实现Servlet接口来编写Servlet类,这需要实现Servlet接口中定义的5个方法. 为了简化Servlet的编写,在javax.servlet包中提供了一个抽象类Generic ...

  7. OB命令大全

    CALC :         判断表达式  WATCH :      添加监视表达式  AT :             在指定地址进行反汇编  FOLLOW :     跟随命令  ORIG :   ...

  8. ALV详解:OO ALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. JQuery 选中Radio

    <tr> <td> <input type="radio" name="rdb" value="启用" che ...

  10. How to run an manually installed program from terminals in Linux / Ubuntu

    Say we have installed qt programs and we want to run qtcreator from the command line. What we need h ...