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)