当前位置: 首页 > news >正文

实战派 JMeter 指南:核心功能、并发压测实操与常见问题解决方案

引言

之前写了 SaaS 订单系统技术架构解析与并发优化方案

那么我们现在来了解如何进行压测。

什么是 JMeter?

Apache JMeter 是一款 100% 纯 Java 应用程序,最初由 Apache Software Foundation 开发用于测试 Web 应用程序的性能,后来扩展到测试其他功能。它是一个开源工具,可用于:

  • 测试静态和动态资源、Web 动态应用程序的性能

  • 模拟服务器、服务器组、网络或对象上的重负载

  • 测试系统强度或分析不同负载类型下的整体性能

JMeter 的核心功能

  1. 多协议支持:HTTP/HTTPS、SOAP、REST、FTP、JDBC、LDAP、JMS、SMTP、POP3 等

  2. 负载测试:模拟大量用户并发访问系统

  3. 性能测试:测量响应时间、吞吐量等关键性能指标

  4. 功能测试:验证应用程序功能正确性

  5. 分布式测试:多台机器协同工作,模拟大规模负载

  6. 可扩展性:通过插件机制扩展功能

  7. 结果分析:提供丰富图表和报告功能

JMeter 的典型应用场景

  1. Web 应用性能测试:模拟用户访问网站行为,测试网站性能

  2. API 测试:测试 REST、SOAP 等接口的性能和功能

  3. 数据库性能测试:通过 JDBC 测试数据库查询性能

  4. 负载均衡测试:验证负载均衡策略有效性

  5. 压力测试:确定系统在极限负载下的表现

  6. 回归测试:确保新版本不会引入性能退化

JMeter 基本组件

  1. 测试计划 (Test Plan):JMeter 测试的起点和容器

  2. 线程组 (Thread Group):定义虚拟用户的数量和行为

  3. 取样器 (Sampler):发送不同类型请求(HTTP、FTP 等)

  4. 监听器 (Listener):收集和展示测试结果

  5. 配置元件 (Config Element):设置默认值和变量

  6. 前置处理器 (Pre-Processor):请求前执行操作

  7. 后置处理器 (Post-Processor):请求后执行操作

  8. 断言 (Assertion):验证响应是否符合预期

  9. 定时器 (Timer):控制请求之间的延迟

  10. 逻辑控制器 (Logic Controller):控制请求的执行流程

JMeter 入门指南

1. 安装 JMeter

  1. 确保已安装 Java 环境(JDK 1.8 或更高版本)

  2. 从 Apache JMeter 官网下载最新版本

  3. 解压下载的压缩包

  4. 运行 bin 目录下的脚本:

  • Windows:jmeter.bat

  • Linux/Mac:jmeter.sh

**

JMeter启动界面

2. 创建测试计划(测试订单接口)

以下为测试订单接口的基本流程:

  1. 启动 JMeter 后,自动创建空测试计划

  2. 右键点击 “Test Plan” → Add → Threads (Users) → Thread Group

  3. 在 Thread Group 中配置参数:

线程组配置

  • 线程数:模拟的并发用户数(如 100 表示 100 个用户同时请求)

  • Ramp-Up 时间(秒):启动所有线程的总时间(如 10 秒启动 100 线程→每秒启动 10 个,避免瞬间压垮系统)

  • 循环次数:每个线程发送请求的次数(选 “永远” 则持续发送,需手动停止)

  1. 创建 token:

创建token步骤1

创建token步骤2

  1. 右键点击 Thread Group → Add → Sampler → HTTP Request

  2. 在 HTTP Request 中配置服务器名称、路径等参数:

HTTP请求配置

  • 需获取对应返回值:

返回值配置1

返回值配置2

  • 使用方式:

返回值使用

  1. 右键点击 Thread Group → Add → Listener → View Results Tree

  2. 点击工具栏绿色运行按钮开始测试:

启动测试

3. 分析测试结果

JMeter 提供多种监听器查看分析结果:

  • View Results Tree:显示每个请求的详细结果

  • Summary Report:提供测试的统计摘要

  • Aggregate Report:汇总多个采样器的结果

  • Response Time Graph:显示响应时间变化趋势

  • HTML Report Dashboard:生成专业的 HTML 报告

并发测试实践

1. 测试并发 1000

并发1000测试结果

并发1000详情

测试无异常。

2. 测试并发 10000

**

并发10000测试结果

报错信息
  • JMeter(客户端)报错:
java.net.SocketException: Socket closed
  • 服务端报错:
java.io.IOException: Connection reset by peer

报错原因分析

TCP 连接在未正常收发完数据前被对方中断,属于并发压测引起的连接层异常,非业务代码问题。

报错位置含义原因
JMeter(客户端)Socket closed客户端 Socket 被自己关闭或线程中止线程池 / 连接数过多、内存不足、请求超时、强制中断
服务端 Connection reset by peer对端(客户端)关闭连接,但服务端未写完响应客户端提前断开 TCP

完整逻辑:JMeter 关闭连接 → Tomcat 正在写响应 → 写操作失败 → 报 Connection reset by peer

解决与优化方案

一、从 JMeter 客户端入手:控制线程数

  • 不建议单机启动 10,000 个线程

  • 推荐配置:

  1. 每台机器控制 1000~2000 并发线程

  2. 采用分布式压测(JMeter Master + 多个 Slave 节点)

常见问题与解决方案

  1. 内存不足错误:调整 JMeter 启动脚本中的堆内存设置

  2. 连接被拒绝:检查目标服务器运行状态及防火墙设置

  3. 结果不准确:确保测试环境稳定,排除网络波动影响

  4. 测试结果差异大:多次测试取平均值,保证测试环境一致性

结语

JMeter 作为功能强大且灵活的性能测试工具,已成为软件质量保证的重要组成部分。通过本文介绍,您应已对 JMeter 有基本了解。

实践建议:从简单测试计划入手,逐步尝试复杂功能与场景,积累经验后设计更精确、高效的性能测试方案,为系统性能优化提供支持。

注意事项:性能测试并非一次性工作,需持续进行。将 JMeter 集成到持续集成 / 持续交付 (CI/CD) 流程中,可及早发现性能问题,确保应用程序始终保持最佳状态。

http://www.dtcms.com/a/601001.html

相关文章:

  • 宁晋网站建设地址信息采集平台
  • 17网站一起做网店如何下单下载站用什么网站系统
  • VMware替代 | ZStack ZSphere虚拟化平台金融级高可用能力解析
  • Go语言编译器源码 | 深入解析Go编译器的设计与实现原理
  • Bootstrap4 文字排版
  • 第13节 93年高能所被入侵,开启中国网络安全发展进程
  • [学习笔记] An Introduction to Flow Matching and Diffusion Models
  • 从零开始的Qt开发指南:(三)信号与槽的概念与使用
  • 视频网站怎么搭建wordpress站点标题图片
  • 加强学校网站建设的要求小说网站建设教程
  • 软考 系统架构设计师历年真题集萃(199)—— 2025年11月系统架构设计师真题2
  • 零门槛部署:在AMD MI300X上极速部署运行GPT-OSS 120B全流程实践
  • 视觉学习——理清机器学习:分类、流程与技术家族的关系
  • 建设网站为什么要备案只有一个页面的网站
  • 分布式专题——54 ElasticSearch集群架构生产最佳实践
  • python+django/flask的宠物用品系统vue
  • 网泰网站建设哪里可以引流到精准客户呢
  • 自相关和互相关、卷积计算流程演示
  • 淮安网站建设制作国精产品w灬源码1688说明
  • 探索K8s与AI的结合:PyTorch训练任务在k8s上调度实践
  • Linux操作系统学习之---初识网络
  • 怎么破解别人做的付费网站网络营销的应用研究论文
  • phpMyAdmin Docker 容器化部署指南
  • 集成技术如何支撑“双十一零售高峰?”
  • 如何正确下载安装官方.NET Framework 4.6?3种方法详解(附4.6.1、4.6.2版本对比)
  • 串流经验:云玩加、 Parsec、Zerotier
  • F045 vue+flask棉花病虫害CNN识别+AI问答知识neo4j 图谱可视化系统深度学习神经网络
  • 某东电商平台的MySQL面试知识点分析
  • wordpress自适应站点网站建设 甲方欠款 如何处理
  • linux本地wordpress手机优化助手怎么删除