jmeter介绍
jmeter介绍
jmeter 是一款 java 开源工具,用于性能负载测试,旨在分析和衡量web应用程序和各种服务的性能和负载功能行为
- 作用:接口测试、性能测试、压力测试、Web自动化测试、数据库测试
- 优点:开源、免费(最大的优点)、支持多协议(http、https等)、小巧、功能强大、跨平台(Java的特点)
- 缺点:不支持IP欺骗
安装和环境
jmeter 环境依赖 Java 环境,需安装 JDK 1.8 环境
jmeter 的安装包可以从官网下载:https://jmeter.apache.org/download_jmeter.cgi,不要使用太新的版本,可能会有兼容性问题
下载 zip 包,解压到本地即可
基本目录
- backups 目录:脚本备份,在 jmeter 中点击保存时会在 backups 中生成一个备份文件,脚本不小心删了或者丢失了可以在 backups 中找到
- bin 目录:启动脚本的配置目录
- 启动脚本
- 使用
ApacheJMeter.jar
启动,就相当于一个单纯的jar包,不会加载配置 - 使用
jmeter.bat
启动,会引用配置文件【推荐使用这种方式启动】 - 在 cmd 中使用
jmeter
启动,需要优先进行环境变量的配置,将 jmeter 的 bin 路径写到环境变量的 path 路径下 - 服务器 linux 上使用
jmeter-server
启动
- 使用
- 配置文件:
jmeter.properties
- 启动脚本
- extras 目录
jmeter-results-report_21.xsl
报告模板jmeter.results.shanhe.me.xsl
报告模板ant-jmeter-1.1.1.jar
:持续集成 jmeter 和 ant 关联,需要将该 jar 包放在 ant 根目录下
- lib 目录:基本的 jar 包配置
面板配置
工具栏 toolbar
上面的一排小元件就是 toolbar 工具栏
第2个按钮为配置模板生成器:如果元件用的不熟,在这里会有基本的模板供你使用,基于模板套用
第3-4个按钮为打开和保存
第5-7个按钮为剪切、复制、粘贴
第8-9个按钮为脚本树形结构的展开和折叠
第10个按钮为切换脚本的启用/禁用状态
第11-14个按钮为脚本的启停
第15-16个按钮为清除脚本的执行痕迹
第17-18个按钮为搜索和清除搜索痕迹
第19个按钮为函数助手,jmeter 内置或扩展的插件函数在这里会列出来
第21个按钮为插件管理器,默认是没有的,需要安装 jar 包后才会出来
在 jmeter.properties 文件中,jmeter.toolbar.icons.size
可以修改标签的尺寸
视图区 tree
左边由一些基本的元件组成的树形结构叫视图区
jmeter 核心原理:基于协议,以多线程的方式模拟并发用户,设计性能场景
- 线程组【多线程】:所有元件都是基于线程组运行,每一个线程组就是一个性能测试场景
- sampler【协议】
- 基本协议:http、https、udp、ftp、jdbc、java
- 扩展协议:JMS、Hbase、TCP、websocket、smtp
- 场景:基于协议之上扩展测试场景
常用的元件:
- 逻辑控制器
- 定时器:集合点、响应时间
- 前置处理器
- 后置处理器:正则、json、xpath
- 断言:响应断言、尺寸断言、时间断言
- 监听器
在 jmeter.properties 文件中,jmeter.tree.icons.size
可以修改标签的尺寸
内容区 font
右侧就是内容区,包括各种元件的属性和设置
在 jmeter.properties 文件中,jsyntaxtextarea.font.family=hack
修改字体,jsyntaxtextarea.font.size
修改尺寸
视网膜 hidpi
以上 3 个区域都有自己的布局方式,一旦人为的动了配置之后整体的布局会变的很乱,因此 jmeter 中引入视网膜的概念来协调整体的布局
在 jmeter.properties 文件中,jmeter.hidpi.mode=ture
视网膜打开,jmeter.hidpi.scale.factor
设置整体的缩放(自适应)
插件配置
基本插件
基本插件分为3种:线程组、控制器、监听器
下载 JMeterPlugins-Extras-1.4.0.zip 和 JMeterPlugins-Standard-1.4.0.zip 解压后将 jar 包放在 lib/ext 目录下
启动 jmeter,没有出现报错,添加元件能看到很多 jp@gc
开头的插件说明安装成功
扩展插件
扩展插件放在 lib 目录下
数据库插件:mysql-connector-java-5.1.17-bin.jar、sqljdbc4.jar
webdriver 驱动浏览器插件:JMeterPlugins-WebDriver-1.4.0.zip(不重要,了解即可)
- jmeter 也可以像 selenium 一样驱动浏览器做自动化,但是设计的初衷是为了浏览器录制页面使用,编辑器的语法不是很好用,已经搁置没有再优化,只能算 selenium 的阉割版
json 解析插件:fastjson-1.2.49.jar
中间件插件:activemq-all-5.16.3.jar(MQ)、jedis-3.7.0.jar(redis)
插件管理器
基于扩展插件外还有一些组合式的 jar 包要装很多,一个一个装可能会漏掉,因此 jmeter 引入了插件管理器:jmeter-plugins-manager-1.6.jar,将 jar 包放在 lib/ext 目录下
安装后可以在 jmeter 看到相应的元件按钮,可以查看到已安装的、可安装的、可更新的插件
插件管理器中的可更新插件会自动更新,更新关键目录
插件地址
更多的插件可以自行安装
jar 包:https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans/2.6.0