news 2026/5/1 4:52:21

JMeter的基本使用与性能测试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JMeter的基本使用与性能测试

Jmeter的介绍

Jmeter是用Java编写的开源软件,主要用于进行性能和负载测试工具。最初设计用于Web应用测试,但现已扩展到测试各种服务和应用,如:

  • Web应用(HTTP/HTTPS请求)
  • Web服务(SOAP/REST,GraphQL)
  • 数据库(JDBC)
  • 消息中间件(JMS,AMQP,Kafka)
  • FTP服务器
  • Shell脚本/Java对象
  • TCP协议

它的核心能力是模拟大量用户并发访问目标服务,并收集、分析和可视化性能指标。

Jmeter核心架构与关键组件

一个Jmeter测试脚本(.jmx文件)被称为Test Plan。其核心组件按逻辑层级如下:

  1. 线程组
  • 定义:所有测试的起点,模拟一组虚拟用户。
  • 关键参数:

线程数(用户数):模拟的并发用户数量。

Ramp-Up时间(秒):所有线程启动完毕所需时间。例如:100线程,Ramp-Up=50,表示每秒启动2个线程。

循环次数:每个线程执行测试计划的次数。

2.采样器

  • 定义:向服务器发送请求并等待响应的组件。每个采样器产生一个或多个样本。
  • 常见类型:

HTTP请求:最常用,用于测试Web和API

JDBC请求:用于数据库测试

SOAP/XML-RPC请求:用于Web Service测试

FTP请求、TCP请求等。

3.逻辑控制器

  • 定义:控制采样器的执行顺序和逻辑。
  • 常见类型:
  • 循环控制器:循环其子元件。
  • 仅一次控制器:每个线程只执行一次(如登录)。

  • 交替控制器:轮流执行其子元件。

  • 事务控制器:将其子元件的所有采样器合并为一个事务样本。

  • If控制器:根据条件执行。

  • 随机控制器/随机顺序控制器:用于模拟随机行为。

4. 监听器

  • 定义:用于收集、展示和分析测试结果。

  • 常见类型

    • 查看结果树:查看每个请求和响应的详细信息(调试用,正式压测时应禁用,非常耗资源)。

    • 聚合报告:提供汇总统计数据(平均值、中位数、吞吐量、错误率等),最常用。

    • 响应时间图/聚合图:以图形方式展示响应时间、吞吐量等随时间变化趋势。

    • 后端监听器:将结果实时发送到数据库或监控系统(如 InfluxDB + Grafana)。

5. 配置元件

  • 定义:为采样器提供配置信息或共享数据。

  • 常见类型

    • HTTP请求默认值:为所有HTTP请求设置默认的服务器、端口、协议等。

    • HTTP信息头管理器:管理请求头(如 Content-Type, Authorization)。

    • CSV数据文件设置:从外部CSV文件读取参数化数据,实现数据驱动测试。

    • 用户定义的变量:定义全局变量。

    • 登录配置元件:用于HTTP基本认证。

6. 前置处理器 & 后置处理器

  • 前置处理器:在采样器执行运行。常用:用户参数JSR223 PreProcessor(用脚本动态生成数据)。

  • 后置处理器:在采样器执行运行。最常用:正则表达式提取器JSON提取器,用于从响应中提取数据(如token、session ID)供后续请求使用。

7. 断言

  • 定义:验证服务器返回的响应是否符合预期。

  • 常见类型:响应断言(检查文本、代码)、持续时间断言(检查响应时间)、JSON断言、XPath断言等。

8. 定时器

  • 定义:在请求之间插入停顿,用于控制吞吐量,模拟用户思考时间,避免瞬间压力过大

  • 常见类型:固定定时器、高斯随机定时器、同步定时器(用于制造瞬间并发,如“集合点”)。

典型的应用场景:

  1. API接口性能测试:测试微服务或RESTful API的并发处理能力。
  2. 网站负载测试:模拟电商大促、新闻热点场景下的用户访问。
  3. 数据库性能测试:测试不同SQL语句在高并发下的执行效率。
  4. 全链路压测:结合多个采样器和逻辑控制器,模拟完整的用户业务流程(如登录-浏览-加购-支付)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 4:19:44

重新测试小型封装的MOS管高频半桥:ASDM40N40E

简 介: 本文测试了ASDM40N40E-R小封装MOS管在半桥电路中的性能。实验使用单面PCB板,栅极电阻设为0欧姆,在24V电压和100kHz驱动信号下,电路工作稳定,未出现二次导通现象。通过优化示波器探头设置(X10档位&am…

作者头像 李华
网站建设 2026/4/23 12:41:34

信捷XDPLC与欧姆龙E5CC温控器的实战联调笔记

信捷XDPLC与3台欧姆龙E5CC温控器通讯程序输出启停控制(XJXD-8) 功能:通过信捷XD5,实现对3台欧姆龙E5CC温控器设定温度,读取温度,控制温控器输出启停,反应灵敏,通讯稳定可靠。 程序采用轮询方式 器件&#x…

作者头像 李华
网站建设 2026/5/1 7:30:57

软件系统健壮性保障:恢复测试场景设计方法与最佳实践

1. 恢复测试的核心价值与定义 在当今高度依赖数字化服务的社会环境中,软件系统的容错与恢复能力已成为衡量产品质量的关键指标。恢复测试作为软件测试领域的重要组成部分,专注于验证系统在遭遇各种异常情况后,能否按照预期策略自动或手动恢复…

作者头像 李华
网站建设 2026/4/23 15:57:56

构建高效的测试代码版本管理体系

在敏捷开发与DevOps已成为主流的今天,测试代码作为软件质量保障的核心资产,其版本管理的重要性不言而喻。版本管理不规范可能导致环境混乱、用例冲突、缺陷复现困难等问题,直接影响交付效率与产品稳定性。本文旨在为测试团队提供一套系统化的…

作者头像 李华
网站建设 2026/4/27 17:59:07

Git分支实操指南:本地学习分支创建+远程同步避坑全解析

目录 一、前言​ 二、核心场景:创建纯本地学习分支(不影响远程)​ 2.1 前置环境说明​ 2.2 步骤 1:删除本地无用分支(feature/xz)​ 1)切换到feature/driver 分支 2)删除本地f…

作者头像 李华
网站建设 2026/5/1 7:27:32

【协程性能调优必读】:深度剖析纤维并发测试中的CPU抖动问题

第一章:纤维协程的并发测试在现代高并发系统中,纤维协程(Fiber Coroutine)作为一种轻量级线程模型,显著提升了任务调度效率与资源利用率。为了验证其在高负载场景下的稳定性与性能表现,必须设计科学的并发测…

作者头像 李华