JMeter(接口、性能测试工具):支持哪些测试场景

boyanx6个月前技术教程38

JMeter 是一款高度灵活的开源测试工具,支持多种测试场景,涵盖 功能测试性能测试特殊协议测试。以下是其核心支持的测试场景及对应的典型应用示例:


一、性能与负载测试

  1. 并发压力测试
  • 场景:模拟高并发用户访问,验证系统的吞吐量、响应时间及稳定性。
  • 示例
    • 电商秒杀活动:模拟 10,000 用户同时抢购商品。
    • API 接口:测试 500 并发请求下的平均响应时间。
  • 配置要点
    • 使用 普通线程组并发线程组
    • 监听器选择 聚合报告 + 响应时间图。
  1. 负载阶梯测试
  • 场景:逐步增加负载,观察系统性能拐点(如吞吐量下降、错误率上升)。
  • 示例
    • 从 100 用户逐步增加到 1000 用户,每 5 分钟增加 200 用户。
  • 配置要点
    • 使用 阶梯线程组终极线程组
    • 配合 Transactions per Second 监听器监控吞吐量变化。
  1. 耐久性测试(稳定性测试)
  • 场景:长时间持续施压,检查内存泄漏、资源耗尽等问题。
  • 示例
    • 模拟 200 用户持续运行 24 小时,监控系统资源(CPU、内存)。
  • 配置要点
    • 使用 调度器线程组 设置长时间运行。
    • 集成 PerfMon 插件监控服务器资源。

二、功能与接口测试

  1. RESTful API 测试
  • 场景:验证接口功能正确性(如状态码、响应数据格式)。
  • 示例
    • 测试用户登录接口:发送 POST 请求,断言返回的 token 有效性。
  • 配置要点
    • 使用 HTTP 请求 采样器 + JSON 断言。
    • 参数化测试数据(如 CSV 文件管理账号密码)。
  1. SOAP WebService 测试
  • 场景:测试基于 XML 的 WebService 接口。
  • 示例
    • 调用天气预报服务,验证返回的 XML 数据字段。
  • 配置要点
    • 使用 SOAP/XML-RPC 请求 采样器。
    • 结合 XPath 断言 提取和验证数据。
  1. 数据库性能测试
  • 场景:评估 SQL 查询效率或数据库并发处理能力。
  • 示例
    • 模拟 100 个线程同时执行复杂查询,统计平均执行时间。
  • 配置要点
    • 使用 JDBC 请求 采样器 + 数据库连接池配置。
    • 监控数据库服务器的 CPU 和 IO 使用率。

三、协议与特殊场景测试

  1. HTTP/HTTPS 协议测试
  • 场景:支持 HTTP 1.1/2、WebSocket、SSL 加密通信。
  • 示例
    • 测试 WebSocket 聊天服务的消息延迟。
  • 配置要点
    • 使用 WebSocket 请求 插件(需安装额外插件)。
    • 配置 Keystore 以支持双向 SSL 认证。
  1. FTP/SFTP 文件传输测试
  • 场景:验证文件上传/下载的性能和可靠性。
  • 示例
    • 模拟 50 用户同时从 FTP 服务器下载大文件。
  • 配置要点
    • 使用 FTP 请求 采样器,设置传输模式(ASCII/Binary)。
  1. JMS 消息队列测试
  • 场景:测试 ActiveMQ、RabbitMQ 等消息中间件的吞吐量。
  • 示例
    • 生产者-消费者模型:测量消息从发送到接收的延迟。
  • 配置要点
    • 使用 JMS 发布 和 JMS 订阅 采样器。
    • 配置消息持久化、ACK 模式等参数。
  1. TCP/UDP 协议测试
  • 场景:测试自定义二进制协议或实时通信(如物联网设备)。
  • 示例
    • 模拟传感器设备通过 TCP 发送实时数据包。
  • 配置要点
    • 使用 TCP 采样器,配置报文编码格式(如 Hex 或文本)。

四、扩展与集成测试

  1. 分布式测试
  • 场景:通过多台机器生成更高并发负载。
  • 配置要点
    • 配置 remote_hosts 启动远程 Agent。
    • 使用命令行控制:jmeter -n -t test.jmx -R 192.168.1.101,192.168.1.102
  1. 持续集成(CI)测试
  • 场景:集成到 Jenkins、GitLab CI 流水线中自动执行。
  • 示例
    • 每次代码提交后自动运行 API 测试套件。
  • 配置要点
    • 使用 JMeter Maven 插件 或 Jenkins Performance 插件。
    • 生成 HTML 报告并归档结果。
  1. 浏览器行为模拟(有限支持)
  • 场景:录制用户操作生成测试脚本(如点击、表单提交)。
  • 工具
    • 使用 HTTP(S) 测试脚本录制器 或 BlazeMeter 插件 录制 Web 操作。

五、测试场景对比表

测试类型

适用协议/技术

核心指标

工具/插件依赖

并发压力测试

HTTP, JDBC

TPS, 响应时间, 错误率

普通线程组

阶梯负载测试

HTTP, WebSocket

吞吐量拐点, 资源使用率

Custom Thread Groups

数据库性能测试

JDBC, SQL

查询耗时, 连接池利用率

PerfMon 插件

消息队列测试

JMS, AMQP

消息延迟, 吞吐量

JMS 插件

持续集成测试

CI/CD 工具链

通过率, 执行时间

Jenkins Performance 插件


六、注意事项

  1. 协议支持限制
  2. JMeter 对某些协议(如 gRPC、MQTT)需通过插件扩展(如 JMeter gRPC Plugin)。
  3. 资源消耗
  4. 单机压测时避免 GUI 模式运行,使用命令行减少内存占用。
  5. 结果分析
  6. 结合 Grafana + InfluxDB 实现实时监控和可视化。

通过合理选择测试场景和工具配置,JMeter 可覆盖从简单接口功能验证到复杂分布式压力测试的全链路需求。实际应用中建议根据系统特点(如协议类型、业务峰值模型)设计针对性测试方案。

标签: js 上传文件

相关文章

服务器+高斯软件+超算

有朋友买了Dell服务器,拜托我配置一下。现把过程总结一下,留待以后查看。 Dell服务器,8核处理器,16G内存,做高斯计算这配置还可以。 来的是个裸机,找计算中心杨老师借了win10优盘,插进去...

Vue 前端开发——导入Excel/Csv

项目开发中遇到导入表格常见的就是excel和csv 格式,一般情况下我们会前端首先得到这个表格里面的数据,然后再把数据发送给后端,也有的是直接上传文件传给后台后台自己处理,这样就不好控制上传前预览和处...

JMH基准测试和JMH-Visual-chart可视化

原文地址:https://github.com/Sayi/sayi.github.com/issues/68如何度量一段代码的性能,换种实现方式会有更佳的性能表现吗?你或许想知道fastjson是否正...

JBoltAI赋能Java技术团队,轻松构筑AI应用开发能力

在当今数字化时代,人工智能(AI)技术正以前所未有的速度改变着各个行业。对于Java技术团队而言,掌握AI应用开发能力已成为提升竞争力的关键。JBoltAI作为一款强大的AI开发工具,正致力于为Jav...

老婆上班总让我找文件,手把手教会她用群晖的 Drive 自己找

本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:晓飞影我喜欢用 NAS 下电影,整理电影墙,安装 docker 跑很多有趣的服务,映射端口公网访问,安装虚拟机远程使用 win系统等等。但是...

2小时快速搭建一个高可用的IM系统

“笔者 2019 年参加了一次 Gopher 大会,有幸听探探的架构师分享了他们 2019 年微服务化的过程。图片来自 Pexels本文快速搭建的 IM 系统也是使用 Go 语言来快速实现的,这里先和...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。