什么是JMeter?
JMeter
是 Apache 的开源项目,是使用 java
编写的一款压力测试工具
为什么使用JMeter?
常用的压力测试工具,比如 Apache 的 ab
工具,虽然使用简单,但是功能也相对较弱,而且命令行界面也不是很友好。而 JMeter 的功能则更加强大,具备如下优点:
- 能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)
- 可以在压力测试的同时进行结果预判
- 更友好的结果统计方式,比如图形、报表等方式
- 测试脚本维护方便,保存脚本文件后可以复制复用
如何使用JMeter?
安装环境要求:
Java版本 :JMeter要求充分满足JVM1.3或更高。
操作系统 :JMeter可以在当前任何一个已经部署了Java的操作系统上运行。
安装JMeter
以 Windows 下的安装为例:
1、安装 JDK
2、为 JDK
配置环境变量,能在命令行运行 java
命令即可
3、下载并安装 JMeter
4、安装好后为 JMeter
配置环境变量
6、完成后运行 bin
目录下的 jmeter.bat
即可打开
启动后界面如下:
选项解释
-
测试计划 : 描述要测试的内容和过程,是其他测试原件的容器,一个JMeter应用只能建立或者打开一个测试计划
-
线程组 : 模拟一定请求数量的并发用户,可以理解为一个线程即是一个用户
-
配置元件 :维护Sampler需要的配置信息,根据实际需要修改请求的内容。主要特点是可以把一些Sample的共同配置放在一个元素里面方便管理
-
定时器 : 负责定义请求之间的延迟间隔
-
Sample : 表示客户端发送某种格式或者规范的请求到服务端,比如HTTP请求
-
监听器 : 收集测试结果,设置显示结果的方式,比如图形结果、表格报告、统计到测试的TPS,响应时间等关键测试数据
-
逻辑控制器 :类似一个HOOK,自定义发送请求的行为逻辑,与取样器Sampler结合来模拟复制的请求序列
-
断言 : 用来判断响应的结果是否是逾期一样,可以确保功能正确的前提下执行压力测试
-
前置处理器和后置处理器 : 在请求开始前前和完成后工作,一般用来修改请求的设置,和处理相应数据的设置
USAGE
比如服务端有如下脚本: localhost/test/test.php
$res = 0;
$n = $_REQUEST["num"];
if (!is_numeric($n)) {
echo 'error param',PHP_EOL;
exit;
}
$res = 0;
for ($i = 0; $i <= $n ; $i++) {
$res += $i;
}
echo $res;
1、建立测试计划
运行 JMeter 后,会默认建立一个测试计划,也只能建立或者运行一个测试计划,接下来开始填充内容
2、添加线程组
- 线程数 : 要开启的线程数量即要模拟的用户数量
Ramp-Up Period(in seconds)
:在多少秒内完成指定线程数量的建立,比如设置为10秒,线程数量设置为20,则每隔 0.5秒 建立一个线程,如果设置为 0 ,表示立即建立所需线程,即并发。- 循环数
3、添加取样器(Sample)
如图添加好 HTTP 请求,并配置相应路径及参数
4、添加监听器
添加常用监听器:图形结果、Summary report 、查看结果树
5、结果查看
点击运行后,通过添加的监听器查看结果即可
JMeter 结合 BadBoy 的使用
BadBoy
提供了屏幕录制和回放功能,以及丰富的图形结果分析功能,这里用它来录制 JMeter 脚本使用。
1、下载 BadBoy
并完成安装
2、录制 JMeter
脚本
-
点击红色圆点按钮开始录制
-
在地址栏输入要录制的站点url
-
在右侧窗口中操作站点里面想要测试的功能
-
点击黑色方框按钮终止录制
-
点击
File
->Export to JMeter
导出脚本
3、使用脚本
在 JMeter
中导入脚本,并添加线程组以及监视器等后运行即可