压力测试工具-Jmeter

408 阅读3分钟

JMeter介绍

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。

JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。

为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。

JMeter的作用

  1. 能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
  2. 完全的可移植性和100% 纯java。
  3. 完全 Swing 和轻量组件支持(预编译的JAR使用javax.swing.*)包。
  4. 完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。
  5. 精心的GUI设计允许快速操作和更精确的计时。
  6. 缓存和离线分析/回放测试结果。

JMeter的高可扩展性

  1. 可链接的取样器允许无限制的测试能力。
  2. 各种负载统计表和可链接的计时器可供选择。
  3. 数据分析和可视化插件提供了很好的可扩展性以及个性化。
  4. 具有提供动态输入到测试的功能(包括Javascript)。
  5. 支持脚本编程的取样器(在1.9.2及以上版本支持BeanShell)。
  • 在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。
  • 相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。

1.安装Jmeter

Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。

1.1.下载

可以Apache Jmeter官网下载,地址:jmeter.apache.org/download_jm…

image-20210715193149837.png

1.2.解压

因为下载的是zip包,解压缩即可使用,目录结构如下:

image-20210715193334367.png

其中的bin目录就是执行的脚本,其中包含启动脚本:

image-20210715193414601.png

1.3.运行

双击即可运行,但是有两点注意:

  • 启动速度比较慢,要耐心等待
  • 启动后黑窗口不能关闭,否则Jmeter也跟着关闭了

image-20210715193730096.png

2.快速入门

2.1.设置中文语言

默认Jmeter的语言是英文,需要设置:

image-20210715193838719.png

效果:

image-20210715193914039.png

注意:上面的配置只能保证本次运行是中文,如果要永久中文,需要修改Jmeter的配置文件

打开jmeter文件夹,在bin目录中找到 jmeter.properties,添加下面配置:

language=zh_CN

image-20210715194137982.png

注意:前面不要出现#,#代表注释,另外这里是下划线,不是中划线

2.2.基本用法

在测试计划上点鼠标右键,选择添加 > 线程(用户) > 线程组:

image-20210715194413178.png

在新增的线程组中,填写线程信息:

image-20210715195053807.png

给线程组点鼠标右键,添加http取样器:

image-20210715195144130.png

编写取样器内容:

image-20210715195410764.png

添加监听报告:

image-20210715195844978.png

添加监听结果树:

image-20210715200155537.png

汇总报告结果:

image-20210715200243194.png

结果树:

image-20210715200336526.png