Apache JMeter的简介
Apache JMeter是由Apache软件基金会开发的一款强大且灵活的开源应用程序,100%由java开发,主要用于执行压力测试,性能测试和接口测试等。起初,它的核心设计目标是针对Web应用程序进行负载和压力测试,然而随着不断的发展和增强,JMeter现在不仅限于Web应用,还可以广泛应用于各种服务端技术、网络协议以及数据库系统[1]。
Apache JMeter的工作原理
JMeter的基本原理是模拟大量并发用户访问应用程序的行为,通过发送HTTP或其他协议请求,并测量响应时间、吞吐量、并发用户数、错误率等指标,从而评估服务器、服务器组、网络基础设施及组件在高负载条件下的稳定性和性能表现。此外,用户还可以通过编写包含断言的测试脚本来验证应用程序在特定负载下的行为是否符合预期,这对于执行回归测试尤其有用。
Apache JMeter的特点
Apache JMeter的主要特点有:
开源免费:完全开源,源码可自定义开发。
支持多平台:Windows,Linux,Mac平台都可以使用。
支持多协议:根据官网介绍,JMeter支持多种网络协议,包括HTTP、HTTPS、SOAP、FTP、TCP、JDBC、SMTP等,这使得它适用于测试各种类型的应用。
测试计划灵活性: 用户可以通过JMeter创建详尽的测试计划,通过自定义测试脚本,模拟复杂的用户交互、发起请求以及验证响应。测试计划内可以包含多个线程组,每个线程组模拟不同的并发用户群体,实现高并发场景的模拟。
支持GUI模式和非GUI模式:JMeter既提供了图形用户界面(GUI)模式便于快速构建和调试测试计划,也支持非GUI(命令行)模式,在大规模负载测试时减少资源消耗,提高执行效率。
图表化报告与分析: JMeter的测试结果可以生成图表和报告,这些报告可以显示响应时间、吞吐量、错误率等指标,从而帮助识别性能瓶颈和优化机会。
JMeter的目录结构
下载最新的JMeter 5.6.3二进制,其目录结构主要包括bin,docs,extras,lib,licenses和printable_docs,下面分别做介绍[2]。
- bin:bin可执行文件目录包含了用于windows和Linux下启动JMeter的.bat文件,.sh文件,ApacheJMeter jar包以及配置文件与日志文件,取其中一部分使用频率高的进行介绍。
jmeter.bat:windows 下 JMeter 启动文件(默认在GUI模式)
jmeter: Linux下JMeter启动文件(默认在CLI模式)
jmeter-server.bat:Windows分布式压测使用的启动文件,以服务器模式启动JMeter
jmeter-server:Linux分布式压测使用的启动文件,以服务器模式启动JMeter
ApacheJMeter.jar:启动JMeter依赖的jar包
jmeter.properties: JMeter的全局配置文件,包括默认协议,SSL配置等
jmeter.log: JMeter 运行日志记录
log4j.conf:JMeter 日志配置管理
shutdown.cmd:windows下关闭JMeter
shut.down:Linux下关闭JMeter
- docs:文档
- extras:辅助库
- lib:包含核心库和单元测试类
(1)lib/ext:存放核心jar包,也可被第三方使用
(2)lib/junit:存放单元测试包
- Licenses:存放JMeter的许可证信息
- printable_docs:提供用户手册供学习JMeter的基本部署
本篇介绍了Apache JMeter的背景,工作原理以及基本组件,下一篇将介绍实战运用Apache JMeter测试HTTP/TCP协议的最大QPS。
参考文档
[1] JMeter官网
[2] JMeter get started