Jmeter介绍及环境搭建

简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。  --百度百科

Jmeter使用了不同技术和协议,是一款可以进行配置和执行负载测试、性能测试和压力测试的工具。

它能够模拟不同类型的请求,例如各种类型的数据库,FTP, HTTP, HTTPS 或者其他的服务端应用。

  • 负载测试: 这类测试使系统或者应用程序在预先设计好的极端场景下测试运行。这类测试用来评估系统或者程序在极端条件下的行为。
  • 性能测试: 这种测试被用来检测系统的性能表现,包括特定情况下,系统的响应能力和稳定性。
  • 压力测试: 这类测试通过载入更多的外部资源,并使系统组件超越其所设定的能力范围,试图使系统挂掉。

 

工作原理

JMeter作为服务器与浏览器之间的代理网关,捕获中间的交互信息。通过线程组模拟真实用户对web服务器的访问压力,与LR的工作原理基本一致。

Jmeter介绍及环境搭建_第1张图片

 

下载安装

首先安装java环境,步骤:http://www.cnblogs.com/for-you/p/4898821.html

然后下载jmeter:http://jmeter.apache.org/download_jmeter.cgi

下载的后文件解压到某处,运行 "bin/jmeter.bat" ,就可以运行起来了。这是一个Swing应用程序:

Jmeter介绍及环境搭建_第2张图片

 

 

请求包括:

  • Web: HTTP, HTTPS网站 ‘web 1.0′ web 2.0 (ajax, flex 和 flex-ws-amf): 我们以后会看到如何测试一个潜在的网页及其行为
  • Web 服务: SOAP / XML-RPC.
  • 通过JDBC驱动的数据库。几乎支持任何一种数据库,你需要的就是一个合适的驱动程序包,并放到在JMeter安装目录的正确位置。我们后续将做一个MySQL数据库测试。
  • 路径: LDAP.
  • 基于JMS的面向消息的服务
  • 使用POP3, IMAP, SMTP协议的邮件服务.
  • FTP服务
  • 使用JUnit和Java应用程序的进行的功能测试

 

测试步骤

创建---->配置--->执行测试计划(各种组建)--->结果分析

各种组建

采样器

采样器是JMeter测试的基本单元。是每一个测试计划的基本要素,一切都围绕这些采样器而工作。用户用其发送一个特殊的请求,采样器会在超时前等待服务器响应。采样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。

采样器列表:

  • 访问日志采样器
  • AJP采样器
  • Bean shell取样器
  • BSF采样器
  • 调试采样器
  • FTP采样器
  • HTTP采样器
  • Java采样器
  • JDBC采样器
  • JMS(几个)采样器
  • JSR223采样器
  • JUnit采样器
  • LDAP(几个)采样器
  • 邮件阅读器
  • MongoDB采样器
  • 操作系统进程取样器
  • SMTP采样器
  • SOAP
  • TCP采样器
  • 测试行动

线程组(ThreadGroup)

一个线程组基本上是不同的测试计划元素的组合,它是一个测试计划的核心,它控制着基本核心参数。

为了创建一个测试计划,首先你不得不去创建一个线程组,配置如下参数:线程数量,过渡时期,循环次数和正常情况或者错误情况下的行为:

  • 线程数:执行测试计划的线程数,这个参数对于配置负载和压力测试非常重要。
  • 过渡期:JMeter开始启动所有线程所需时间。
  • 循环次数:即迭代次数,也就是测试计划被执行的次数
  • 错误行为:错误场景下的行为模式:阻止当前线程,停止整个测试,继续执行…

一个线程组也有配置选项的开始和结束时间。通过单击复选框“Scheduler”,弹出带有调度参数的面板,可以为你的测试配置开始和结束时间。

一旦配置完成,你就可以开始添加其他测试计划元素到线程组,例如采样器,侦听器和定时器。

 

逻辑控制器(Logic Controllers)

逻辑控制器允许你配置一个线程组内不同采样器的执行顺序。该列表包含了在JMeter所有可用的逻辑控制器:

  • 简单控制器
  • 循环控制器
  • 一次性控制器
  • 交错控制器
  • 随机控制器
  • 随机顺序控制器
  • 流量控制器
  • 运行时控制器
  • I控制器
  • While控制器
  • Switch控制器
  • ForEach控制器
  • 模块控制器
  • include控制器
  • 事务控制器
  • 记录控制器

监听器(Listeners)

监听器提供不同的方式查看由采样器请求产生的结果。监听器以报表、树型结构、或简明的日志文件的形式分析结果。

还可以在测试计划中的任何地方添加监听器,但他们只会在各自的应用范围内解析和收集来自采样器的数据。

这些都是JMeter可用的监听器:

  • 样品结果配置保存
  • 全图景结果集
  • 图表结果集
  • 样条线可视化工具
  • 断言结果集
  • 树形结果集
  • 整合报告
  • 表格结果集
  • 简单数据输出
  • 监测结果集
  • 分布图(alpha)
  • 整合图
  • Mailer可视化工具
  • Beanshell监听器
  • 总结报告

定时器(Timers)

可以使用定时器来定义请求之间的等待时间。如果不指定,JMeter会一个请求完成后立即执行下一个请求,没有任何等待时间。

可在JMeter使用的计时器如下:

  • 恒定的定时器
  • 高斯随机定时器
  • 均匀随机定时器
  • 恒定吞吐量定时器
  • 同步定时器
  • jsr223定时器
  • Beanshell定时器
  • BSF定时器
  • 泊松随机定时器

断言(Assertions)

断言通过验证采样器请求产生的响应,来验证测试计划的有效性。它基本上类似于单元测试断言,用来检测被测试应用程序的响应质量。你可以为每个测试计划配置任何生效的断言。

这里是一个在JMeter可以使用的断言列表:

  • Bean shell断言
  • BSF断言
  • 比较断言
  • jsr223断言
  • 响应断言
  • Duration断言
  • XML Assertion
  • BeanShell Assertion
  • MD5Hex Assertion
  • HTML Assertion
  • XPath Assertion
  • XML Schema Assertion

配置节点(Configuration nodes)

通过使用配置元素你可以将不同的参数传递给取样器请求。他们提供了创建变量(不同的和动态的)的一种方式,这些参数之后被采样器所使用。在采样器被执行前,参数所属节点启动时,这些参数被执行;这就是为什么采样器可以依赖这些变量。

这里是一个在JMeter使用的所有配置节点列表:

  • 计数器
  • CSV数据集配置
  • FTP请求缺省值
  • HTTP授权管理
  • HTTP缓存管理
  • HTTP cookie管理
  • HTTP代理服务器
  • HTTP请求缺省值
  • HTTP头部管理
  • Java请求缺省值
  • 密钥库配置
  • JDBC连接值
  • 登录配置元素
  • LDAP请求缺省值
  • LDAP扩展请求缺省值
  • TCP采样器配置
  • 用户自定义变量
  • 简单配置元素
  • 随机变量

前置处理器(Pre processors)

在采样器执行前,前置处理器被触发。他们可用于从响应中提取变量,这些变量后续将通过配置元素被采样器所使用。

下面都是可以用来作为前置处理器的元素:

  • HTML链接解析器
  • HTTP URL重写修改器
  • HTTP用户参数修改器
  • 用户参数
  • JDBC前置处理器
  • jsr223前置处理器
  • 正则表达式的用户参数
  • Beanshell前置处理器
  • BSF的前置处理器

后置处理器(Post processors)

后置处理器是取样器被执行后被触发执行的元素。他可用于解析响应数据,提取变量,以便后续使用
下列元素可用于后置处理器:

    • 正则表达式提取器
    • XPath提取器
    • Result status动作处理器
    • jsr223 后置处理器
    • JDBC 后置处理器
    • BSF后置处理器
    • jQuery/CSS 提取器
    • Beanshell 后置处理器
    • Debug后置处理器

你可能感兴趣的:(Jmeter介绍及环境搭建)