目录
1.1 什么是 JMeter
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl 脚本,java 对象,数据库和查询,FTP 服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
1.2 为什么是 JMeter
为什么选择 JMeter,下面看看 JMeter 的特色。
1. 开源许可: Jmeter 是完全免费的,并提供了源码可供自定义开发
2. 图形界面模式:提供了方便的图形界面来编辑和开发测试脚本
3. 平台无关:可以轻易在 windows、linux、mac 上运行
4. 多线程框架:通过线程组,能够轻易地设置不同测试的并发用户。
5. 图形测试结果:提供了图表、表格、树、文件等格式的结果显示。
6. 易于安装:jmeter 不需要安装,下载解压即可用。
7. 高扩展性:jmeter 支持用户自定义测试脚本,同样还提供了各种插件。
8. 多测试类型支持:支持性能测试、分布式测试、功能测试
9. 仿真模拟:支持多用户并发测试
10. 多协议支持:支持 http、jdbc、ldap、soap、jms、ftp 等等协议
11. 录制&回放:支持用 badboy 或 jmeter 录制
12. 脚本测试:jmeter 支持 beanshell 和 selenium
1.3 JMeter 工作原理
JMeter 基本工作原理如图:
JMeter 完整的工作原理如图:
1.4 总结
本次对 jmeter 进行了简单的基本介绍,主要让大家对 jmeter 有个基本的了解。
JMeter 目录及关键配置分析
2.1 前言
学习一种工具,首先得对其关键配置及目录等有一个基本的了解,这样能更方便地深入掌握该工具,下面我们就 JMeter 的目录及相关关键配置进行分析说明。
2.2 下载安装
1. 安装主程序
从 Apache JMeter 官网下最新版本:
http://jmeter.apache.org/download_jmeter.cgi
下载后直接解压即可。
2. 安装插件管理
从
https://jmeter-plugins.org/install/Install/ 或 https://jmeter-plugins.org/downloads/all/ 下载插件管理包,如图:
将下载的包放至 jmemter 解压根目录的 lib/ext 下后重启jmeter即可。
.3 目录说明
先看一下解压后的 JMeter 安装目录:
目录说明:
backups: 包含jmeter对测试计划的自动备份保存
bin: 包含启动、配置等相关命令
docs: 官方本地文档目录
extras: 辅助库
lib: 核心库,包含 JMeter 用到的各种基础库和插件
licenses: 包含 non-ASF 软件的许可证
printable_docs: 可打印版本文档目录
LICENSE: JMeter 许可说明
NOTICE: JMeter 简单信息说明
README.md: JMeter 官方基本介绍
下面我们重点看下 bin 目录,如图:
主要介绍 bin 目录下我们最关注几个文件:
jmeter.properties: JMeter 核心配置文件,各种配置基本在这完成
log4j.conf: JMeter 日志配置管理
jmeter.log: JMeter 运行日志记录,什么输出信息、警告、报错都在这里进行了记录
jmeter.bat: windows 下 jmeter 启动文件
shutdown.cmd: windows 下 jmeter 关闭文件
stoptest.cmd: windows 下 jmeter 测试停止文件
jmeter-server.bat: windows 下 jmeter 服务器模式启动文件
注:每一个.cmd 文件都对应一个.sh 文件,.sh 是 linux 下的对应功能的文件,其他文件的功能就不一一说明了,同时其他目录这里也不再进行阐述,有兴趣的可以自己深入看下。
2.4 关键配置说明
1. jmeter.properties 配置说明
主要包含以下几个方面的配置:
SSL 配置:
重点关注下面几个配置
# 指定 HTTPS 协议层
https.default.protocol=TLS
# 指定 SSL 版本,实际应用中可能需要修改
https.default.protocol=SSLv3
# 设置启动的协议
https.socket.protocols=SSLv2Hello SSLv3 TLSv1
# 缓存控制,控制 SSL 是否可以在多个迭代中重用
https.use.cached.ssl.context=true
JMeter 界面显示配置
这里就不对其界面显示控制进行说明了,一般情况下默认界面能满足大家的应用了。
JMeter 测试项目自动备份配置
# 设置是否启用自动备份,默认是 true
jmeter.gui.action.save.backup_on_save=true
# 设置自动备份目录,默认备份至 JMeter 根目录的 backups下
jmeter.gui.action.save.backup_directory=
# 设置自动备份项目数,默认为最近 10 个
jmeter.gui.action.save.keep_backup_max_count=10
远程主机配置
# 配置远程主机的 IP,默认为本机。用逗号","可以设置多个远程主机
remote_hosts=127.0.0.1
# 多个远程主机指定示例如下,其中:后为端口
remote_hosts=127.0.0.1:1099,127.0.0.1:1200,127.0.0.1:1300
对于 RMID 的配置请直接看配置文件中的选项说明
日志管理配置
# 设置日志格式
log_format_type=default
# 设置日志输出级别
log_level.jmeter=INFO
# 设置 junit 日志输出级别
log_level.jmeter.junit=DEBUG
# 设置日志输出目标文件,默认为 jmeter.log
log_file=jmeter.log
等等其他还有 10 多个配置大项(就不一一列举了)
jmeter.bat 关键配置修改
为了更优化的使用 jmeter,需要对 jmeter.bat 中的一些配置根据当前机器的配置进行优化,这里进行关键配置项说明,找到这些配置,对其中的数值根据当前机器的硬件配置来修改。
set HEAP=-Xms2048m -Xmx2048m
set NEW=-XX:NewSize=512m -XX:MaxNewSize=512m
set SURVIVOR=-XX:SurvivorRatio=8 -
XX:TargetSurvivorRatio=50%
set TENURING=-XX:MaxTenuringThreshold=2
if %current_minor% LEQ "8" (
rem Increase MaxPermSize if you use a lot of Javascript in
your Test Plan :
set PERM=-XX:PermSize=512m -
XX:MaxPermSize=1024m
)
2.5 启动 jmeter
在 bin 目录下直接双击 jmeter.bat 即可
启动后的界面如下:
2.6 总结
本次就 jmeter 的安装和配置及关键配置项进行了分享,大家可以深入的去研究下其他的一些配置,以便进一步的熟悉 jmeter 的原理和应用。