JMeter压测快速入门(详解教程)
Jmeter是Apache的开源项目,基于Java开发,主要用于进行压力测试。
JMeter 与 LoadRunner 比较
JMeter 是一款开源 (有着典型开源工具特点: 界面不美观 ) 测试工具,虽然与 LoadRunner 相比有很多不足,比如:它结果分析能力没有 LoadRunner 详细;很它的优点也有很多:
- 开源,他是一款开源的免费软件,使用它你不需要支付任何费用,
- 小巧,相比 LR 的庞大(最新 LR11 将近 4GB),它非常小巧,不需要安装,但需要 JDK 环境,因为它是使用 java 开发的工具。
- 功能强大,jmeter 设计之初只是一个简单的 web 性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService 等方面的测试。因为它的开源性,当然你也可以根据自己的需求扩展它的功能。扩展性极强。它可以测试性能,可以测试接口,甚至可以通过加载浏览器驱动完成 UI 自动化的工作!
两者最大的区别:jmeter 不支持 IP 欺骗,而 LR 支持。
一、安装 JMeter 压测工具
1、下载 JMeter 安装包
直接上官网下载 JMeter 安装包
官方文档:https://jmeter.apache.org/
官方下载:https://jmeter.apache.org/download_jmeter.cgi
2. 安装 JDK,
系统要求:JMeter2.11 需要 JDK1.6 以上的版本支持运行
建议: 安装 java 8.0以上版本
3、解压并安装 JMeter
2.1、解压安装包(Window 版 )
- Jmeter目录文件讲解
– bin:核心可执行文件,包含配置
– jmeter.bat: windows启动文件:
– jmeter: mac或者linux启动文件:
– jmeter-server:mac或者Liunx分布式压测使用的启动文件
– jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件
– jmeter.properties: 核心配置文件
– shutdown.cmd windows 下 jmeter 关闭文件
– stoptest.cmd windows 下 jmeter 测试停止文件
– extras:插件拓展的包
– lib:核心的依赖包
– ext:核心包
4、启动 JMeter
这里我以 Windows 环境为例,如果其他的是 mac或者Liunx ,请根据上面Jmeter目录文件讲解 ,调用对应的功能。
4.1、启动 JMeter 临时服务
1、进入 \bin 文件夹
2、双击 jmeter.bat 启动 JMeter
注意:打开的时候会有两个窗口,JMeter 的命令窗口和 JMeter 的图形操作界面,不可以关闭命令窗口。
4.2、启动 JMeter java服务
1、进入 bin 目录,双击 ApacheJmeter.jar 包运行
注意:打开的时候会有只有一个窗口,JMeter 的图形操作界面,和上边的不一样哈。
4.3、启动 JMeter 命令操作
1、设置环境变量
2、然后 windows+r 回车键 ——打开命令操作,输入jmeter,就可以启动我们的软件了
二、使用 JMeter 压测工具
1、语言配置
1.1、找到jmeter.properties这个文件,用记事本打开,修改language=zh_CN
1.2、启动后在Options 设置
2、设置软件风格
在Options 设置
3、基础使用
1:线程组&参数介绍
这俩个参数容易混淆,Ramp-Up,指的是我们10个线程在这1s内匀速启动,调度器的持续时间是,这个说的是这10个线程启动后(也就是1s后),持续测试的时间(这里勾选了永远,即使写了2s,也会一直测试下去)。
(1)Ramp-Up 时间
控制的是线程的启动节奏
(2)调度器持续时间
控制的是整个测试运行的时长
(3)循环次数
指的是要执行的轮次(比如说我设置个循环次数为2,那第一轮10个线程1s启动完,在持续2s不断地发送请求,之后结束第一次循环,紧接着进入第二次循环,还是这10个线程慢启动1s,在持续2s不断地发送请求......)
-
注意点①:调度器的持续时间是要等所有线程启动后,才开始计时
-
注意点②:一轮循环结束,新一轮循环还是这10个线程,需要重新匀速启动,在持续时间内发送请求
-
注意点③:如果这里不勾选,永远,这个选项,那么一定要在输入框中输入数字,否则,在启动的时候,会自动勾选上永远
2 添加结果树
这里用来查看我们查看发出请求后收到的响应结果
取样器结果中需要去关注的信息
(1)响应时间
load time 响应时间 单位是ms
(2)响应码
(这里的响应时间就不正常)Response code
3:添加HTTP请求
(1)HTTP默认请求值
同一个系统中协议,ip,端口是不会发生改变的,所以我们把这些信息提取出来,放到默认值当中,注意它们的作用域是同级的!
注意点:当取样器中存在未配置的选项,会直接去http请求默认配置中取;取样器中配置了的选项就不会去默认配置中取了。
3:请求头的设置
(1)bug复现
主要是针对登录的状态
举例,看我们在浏览器中登录后,请求头中就有了这个JWT令牌
(2)建立HTTP请求头管理器
(3)在请求头中加入token后正确返回结果
(4)作用域设置
因为有拦截器的设置,所以没有token令牌的页面是不会正确加载的,我们如果把这个默认请求头设置放到同级作用域,那还要登录干啥呀,所以把这个头管理器放到列表页就OK了。
将登录后的data拿过来
(5)错误信息分析
如果我们在HTTP请求当中把域名写错,会报下面这个错误