一、介绍
1、介绍
Jmeter 可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。
同时,Jmeter 可以帮助对应用程序进行回归测试,通过创建的测试脚本和assertions 来验证程序返回的期待值。
2、主要特点
(1)支持对多种服务类型进行测试,包括:
- Web-Http,HTTPS
- SOAP
- Database via JDBC
- LDAP
- JMS
- Mail-POP3(s) and IMAP(S)
(2)具备高可移植性,是100%纯Java程序;
(3)采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样。
二、Jmeter组成介绍
控件名名称 | 功能 | 注意点 |
测试计划(Test Plan) | 包含一个测试的所有内容,包含所有的控件,属性,变量。所以一个jmx文件中只有有一个测试计划。测试计划中可以定义变量,引入jar包,编辑测试模式等 | 放不常变化的数据 |
线程组 | 负载发生器,虚拟用户组 | 可以包含多个线程组 |
采样器(Samples) | 基础单元,用它向服务器发出一个特定的请求 | |
逻辑控制器 | 控制测试脚本的执行顺序 | |
配置元件(Config Element) | 维护sample 需要的配置信息 | |
监听器 | 收集测试结果,设置结果显示的方式 | |
逻辑控制器 | 自定义 Jmeter 发送请求的行为逻辑,与Sample 结合使用可以模拟复杂的请求序列 | |
断言 | 判断请求响应的结果 | 不推荐使用 性能测试的重点不是准确性判断 |
定时器 | 保存测试脚本与时间相关的信息,例如思考时间 | |
前置处理器 | 在前置处理器的作用范围内,任何采样器被执行前,都要先执行前置处理器 | |
后置处理器 | 在后置处理器的作用范围内,任何采样器被执行后,都要先执行后置处理器 |
三、Jmeter 的安装与配置
(1)Windows安装
从官网上下载解压即可使用。
(2)Linux安装
下载binary版本,解压后需在 /etc/profile 增加 jmeter 的路径
export PATH=/home/apache-jmeter-5.4.1/bin/:$PATH
(3)Jmeter的配置
主要配置文件为 jmeter.properties,需要根据不同的测试目的对配置文件做不同的设置。
- #language=de ==Jmeter 启动后窗口中所使用的语言。
- xml.parser=org.apache.xerces.parsers.SAXParser ==xml文件解析器的设定,解析所需要的jar 包在 %JMETER_HOME%\lib 下
四、常见问题及解决方案
(1)内存不足:OutOfMemoryError
原因:Jmeter是一个纯Java开发的工具,内存由Java虚拟机JVM管理,当内存回收不及时,堆内存不足时,就会报内存溢出错误。
可以通过调整JVM内存相关的参数进行优化。
- window调整-jmeter.bat文件
【注:根据压测机而定,一般而言,堆内存的最大值不要超过物理内存的一半,否则容易导致jmeter运行变慢】
调整堆内存的大小:
调整堆内存的大小:
将默认的set HEAP=-Xms512m -Xmx512m,
调整为set HEAP=-Xms1024m -Xmx1024m;
调整堆内存中新生带的大小:
将默认的set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m,
调整为set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m;
调整堆内存中永久带的大小:
将默认的set PERM=-XX:PermSize=64m -XX:MaxPermSize=128m,
调整为set PERM=-XX:PermSize=128m -XX:MaxPermSize=256m;
- linux 调整 jmeter.sh
java $JVM_ARGS -Xms2G -Xmx8G -XX:MaxPermSize=4096m -jar "$PRGDIR/ApacheJMeter.jar" "$@"