jmeter性能插件
学习目标
- 掌握jmeter性能测试使用的组件
1. 所需要的组件
jmeter执行接口性能测试会用到以下常规组件
- 测试计划:默认存在
- 线程组:每个接口一个线程组、每个场景一个线程组
- HTTP请求:发起接口请求
- HTTP请求默认值:将公共请求信息集中编写管理
- HTTP信息头管理器:给HTTP请求增加请求信息头
- cookie管理器:给HTTP请求要带上cookie发起请求
- CSV文件:将数据放置在CSV文件中,导入脚本中循环运行
- JDBC:连接数据库获取最新有效数据
- JSON提取器:从上一个接口提取数据,传递给下一个接口,完成接口直接的关联
- 正则提取器:从上一个接口提取数据,传递给下一个接口,完成接口直接的关联
- 响应断言:断言接口响应结果是否满足预期
- 同步定时器:进行并发测试
- 常数吞吐量定时器:设定QPS指标
- 察看结果树:查看每个取样器的请求结果
- 聚合报告:查看每个取样器的请求数据汇总
jmeter执行接口性能测试会用到以下扩展组件:
- Concurrency Thread Group 线程组:以折线图的形式展示出虚拟用户的行动轨迹
- Transactions per Second 每秒事务数:以折线图的形式展示出运行过程中每秒完成事务数
- Bytes Throughput Over Time 流量吞吐:以折线图的形式展示出运行过程中吞吐流量
- PerfMon Metrics Collector 性能指标收集器:以折线图的形式展示出运行过程中服务器的性能数据
扩展组件需要额外安装插件才能使用,想要安装插件,需要先安装“插件管理器”
2. 安装插件管理器
① 插件管理器官方下载地址:https://jmeter-plugins.org/install/Install/

② 将下载好的jar包添加到jmeter安装目录lib\ext\目录下

③ 重启jmeter工具,可看见插件图标

④ 打开插件管理器,下载以下四个插件:

一定要一个个下载,每下载成功一个插件就会重启一次jmeter
⑤ 检查插件是否已经下载完成:


3. 插件扩展组件介绍
① Concurrency Thread Group 线程组(说明:阶梯线程组)
添加方式:测试计划 --> 线程(用户)--> Concurrency Thread Group
- Target Concurrency:线程数(虚拟用户数)
- Ramp Up Time:启动时间
- Ramp-Up Steps Count:启动步骤计数(分几次启动线程)
- Hold Target Rate Time:运行时间
- Time Unit:时间单位(分钟或者秒)
- Thread Iterations Limit:线程迭代次数限制(循环次数)
- Log Threads Status into File:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件)
② Transactions per Second(说明:每秒完成事务数)
添加方式:测试计划 --> 线程组--> 监听器-->Transactions per Second
③ Bytes Throughput Over Time(说明:查看服务器吞吐流量 单位/字节)
添加方式:测试计划 --> 线程组--> 监听器-->Bytes Throughput Over Time
- 红线:被测系统返回包传输速率
- 蓝线:请求包传输速率
④ PerfMon Metrics Collector(说明:监测服务器资源)
添加方法:线程组->监听器->jp@gc - PerfMon Metrics Collector
注意:使用之前需要在服务器端安装监听服务程序并启动
如果你的服务器是windows系统:
- 下载安装包ServerAgent-2.2.3.zip
- 解压缩安装包
- 启动安装包中的执行文件:startAgent.bat
如果你的服务器是linux系统:
- 使用xshell将ServerAgent-2.2.3.zip传到linux服务器的root目录下
- 执行命令解压:unzip 文件名
- 使用./startAgent.sh命令,开启监测服务
- 如果无权限,则开放权限:执行命令:chmod 777 -R *
- 如果端口冲突,则需要改端口:打开sh文件,在末尾增加 --udp-port 9999 --tcp-port 9999
- 若改了端口,需要重新启动startAgent.sh
4. 分布式
如果一台电脑跑jmeter脚本无法达到压测需求(一台电脑的配置有限,无法启动过量的虚拟用户),可以联合其他电脑一起对服务器施压
① 准备环境:
- 选择一台电脑,作为控制机;多台电脑作为执行机
- 控制机和执行机需要在同一个局域网下(最好关闭虚拟网络,避免干扰)
- 控制机和执行机的JDK版本、jmeter版本、操作系统尽量保持一致
- 修改控制机jmeter安装目录下的bin文件→jmeter.properties配置文件:
- remote_hosts配置为:执行机的ip:端口号
- server_port配置一个端口号,如:1099
- server.rmi.ssl.disable配置为:true 注意一定要将#号去掉,不然配置不生效
- 修改执行机jmeter安装目录下的bin文件→jmeter.properties配置文件:
- server_port配置一个端口号,如:1099
- server.rmi.ssl.disable配置为:true
② 执行机启动jmeter服务

稍等片刻后,会启动如下命令窗口:

③ 通过控制机唤起执行机运行脚本:


在执行机上可见如下窗口代码:

5. 组件的顺序
编写jmeter脚本时,尽量按照以下顺序调整脚本结构:
- 配置元件(config elements)
- 前置处理程序(Per-processors)
- 定时器(timers)
- 取样器(Sampler)
- 后置处理程序(Post-processors)
- 断言(Assertions)
- 监听器(Listeners)