Jmeter入门使用
1. 什么是Jmeter
转自:https://www.cnblogs.com/lijuanhu321/p/9537185.html#testComponent
https://www.cnblogs.com/dongye95/p/9337998.html
https://www.cnblogs.com/yuki-lau/archive/2013/04/20/3033010.html
JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
2. 为什么使用JMeter
- 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件
- 支持接口测试,压力测试等多种功能,支持录制回放,入门简单
- 相较于自己编写框架或其他开源工具,有较为完善的UI界面,便于接口调试
- 多平台支持,可在Linux,Windows,Mac上运行
3. JMeter工作流程
4. JMeter下载安装运行
1)JMeter 安装
- 下载地址:http://jmeter.apache.org/(下载最新版本的JMeter,并解压到任意位置)
- 安装JDK,配置环境变量(JAVA_HOME),最低要求jdk 1.6及以上版本
2)JMeter 运行
- 进入到目录:D:\jmeter\Jmeter\apache-jmeter-2.9\bin,下运行jmeter.bat启动jmeter
- 打开之后,是中文界面,如果需要展示英文界面,选项->选择语言->英语,即可。
5. JMeter目录结构
/bin 目录(常用文件介绍)
- examples:目录下包含Jmeter使用实例
- ApacheJMeter.jar:JMeter源码包
- jmeter.bat:windows下启动文件
- jmeter.sh:Linux下启动文件
- jmeter.log:Jmeter运行日志文件
- jmeter.properties:Jmeter配置文件
- jmeter-server.bat:windows下启动负载生成器服务文件
- jmeter-server:Linux下启动负载生成器文件
/docs目录——Jmeter帮助文档
/extras目录——提供了对Ant的支持文件,可也用于持续集成
/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录
/licenses目录——软件许可文件,不用管
/printable_docs目录——Jmeter用户手册
6. Jmeter相关插件安装
- 插件安装
下载对应插件解压即可。
下载地址:http://jmeter-plugins.org/downloads/all/。下载后解压放入:apache-jmeter-2.12\lib\ext\目录下。
重启Jmeter
7. JMeter主要测试组件
转自:https://www.cnblogs.com/lijuanhu321/p/9537185.html#testComponent
- 测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
- 线程组(Thread Groups)线程组元件是任何测试计划的起点。代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
- 控制器(Controller)分为采样器(Sampler)和逻辑控制器(logic Controller)。逻辑控制器(Logic Controller)可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
- 监听器(Listener)负责收集测试结果,同时也被告知了结果显示的方式。
- 定时器(Timer)负责定义请求之间的延迟间隔。
- 配置元件(Config Elements)维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
- 前置处理器(Pre Processors)负责在生成请求之前完成工作。常常用来修改请求的设置。
- 后置处理器(Post Processors))负责在生成请求之后完成工作。常常用来处理响应的数据。
- 断言(Assertions)可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
7.1 JMeter测试计划(Test Plan)
测试计划可视化为用于运行测试的JMeter脚本。 测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。
测试计划包含执行脚本的所有步骤。 测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行。
7.2 JMeter线程组(Thread Groups)
一个测试计划的所有元件必须在一个线程组下。线程组元件控制JMeter运行测试时使用的线程数。Thread Group有三个和负载信息相关的参数:
- Number of Threads: 设置发送请求的用户数目
- Ramp-up period: 每个请求发生的总时间间隔,单位是秒。比如你的请求数目是5,而这个参数是10,那么每个请求之间的间隔就是10/5,也就是2秒
- Loop Count: 请求发生的重复次数,如果选择后面的forever(默认),那么请求将一直继续,如果不选择forever,而在输入框中输入数字,那么请求将重复指定的次数,如果输入0,那么请求将执行一次。
7.3 JMeter控制器(Controllers)
控制器分为采样器(Sampler)和逻辑控制器(logic Controller)
7.3.1 采样器(Sampler)
采样器是允许JMeter将特定类型的请求发送到服务器的组件。它模拟用户对目标服务器的页面的请求。
采样器是必须将组件添加到测试计划中的,因为它只能让JMeter知道需要将哪种类型的请求发送到服务器。JMeter取样器包括:
- FTP请求
- HTTP请求(也可用于SOAP或REST Web服务)
- JDBC请求
- Java对象请求
- JMS请求
- JUnit测试请求
- LDAP请求
- 邮件请求
- 操作系统进程请求
- TCP请求
7.3.2 逻辑控制器(logic Controller)
逻辑控制器可控制线程中采样器处理顺序的流程。 也可更改来自其子元素的请求的顺序。即逻辑控制器允许你定制JMeter何时发送请求。
7.4 JMeter监听器(Listeners)
性能测试就是以各种形式分析服务器响应,然后将其呈现给客户端。
当JMeter的采样器组件被执行时,监听器提供JMeter收集的关于那些测试用例的数据的图形表示。它便于用户在某些日志文件中以表格,图形,树或简单文本的形式查看采样器结果。
监听器可以在测试的任何地方进行调整,直接包括在测试计划下。JMeter提供了大约15个监听器,但主要使用的是表,树和图形。
7.4.1 察看结果树
用于查看请求结果,通过的测试通常为绿色。红色则代表失败。查看对应Sampler的测试结果的请求、响应数据。
7.4.2 汇总报告
提供了最简要的测试结果信息,同时可以配置将相应的信息保存至指定的文件中(支持xml、csv格式的文件)。单击Configure按钮,可以配置结果保存各种选项。
7.4.3 聚合报告
提供了最详细的报告,也是最为常用的报告。
该监听器对于每个请求,它统计响应信息并提供请求数,平均值,最大,最小值,中位数、90%、95%、错误率,吞吐量(以请求数/秒为单位)和以kb/秒为单位的吞吐量。