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

Jmeter进行性能并发测试

一、JMeter测试计划配置

1. 创建线程组(设置并发用户数)

  1. 右键测试计划 → 添加 → Threads (Users) → 线程组
  2. 配置参数:
    • 线程数(Number of Threads)600(并发用户数)
    • Ramp-Up时间(秒)60(60秒内逐步启动600个线程,避免瞬间压力)
    • 循环次数(Loop Count)1(每个线程仅执行一次请求,如需持续压测可改为永远并设置持续时间)
    • 勾选“Same user on each iteration”(保持会话一致性,如接口需要登录)
    <img src="https://i.imgur.com/JQZ1l0m.png" />

2. 添加HTTP请求

  1. 右键线程组 → 添加 → Sampler → HTTP Request
  2. 配置参数:
    • 名称(Name)QueryBook API
    • 服务器名称或IP172.17.1.165
    • 端口号15058
    • 协议http
    • 方法POST
    • 路径/book/doctorstationapi/querybook
    • Body Data: 选择raw,并输入JSON参数:

      json

      {
      "hisApplyNos": ["C102229667"]
      }
    • Content-Type头: 需单独添加(见下一步)。
    <img src="https://i.imgur.com/XYZ1234.png" />

3. 添加HTTP头管理器

  1. 右键HTTP请求 → 添加 → Config Element → HTTP Header Manager

  2. 添加以下头信息:

    名称
    Content-Typeapplication/json
    (其他头)如Authorization(如需)

    <img src="https://i.imgur.com/3vX5yWp.png" />


4. 添加监听器(查看结果)

推荐组合以下监听器,平衡实时监控与性能开销:

  1. 聚合报告(Aggregate Report):查看关键性能指标。
  2. 响应时间图(Response Times Over Time):观察响应时间趋势。
  3. TPS图(Transactions per Second):监控吞吐量变化。
  4. 查看结果树(View Results Tree)(仅调试时使用,600并发时禁用!)。

添加方法
右键线程组 → 添加 → Listener → 选择对应监听器。


二、运行测试并查看结果

1. 启动测试

  1. 点击工具栏绿色三角形 “启动” 按钮(或菜单 Run → Start)。
  2. 观察JMeter控制台日志,确认无报错。

2. 实时监控结果

聚合报告(关键指标)
  • Samples: 600(请求总数)
  • Average: 平均响应时间(毫秒,如200ms表示良好,>1000ms需优化)
  • Median: 中位数响应时间(50%请求低于此值)
  • 90% Line: 90%请求的响应时间(关键性能阈值)
  • Error %: 错误率(必须为0%,否则需检查接口或网络)
  • Throughput: 吞吐量(请求/秒,如10 req/s表示系统每秒处理10个请求)

<img src="https://i.imgur.com/ABCD5678.png" />

图形化监听器
  • 响应时间图:确认无异常峰值(如突然飙升至5000ms)。
  • TPS图:观察吞吐量是否稳定(如突然下降可能表示系统瓶颈)。

<img src="https://i.imgur.com/EFGH9012.png" />


3. 测试完成后分析结果

  1. 检查错误率
    • 如果 Error % > 0%,点击错误请求查看具体原因(如超时、500错误)。
    • 常见错误:
      • Connect Timeout: 网络问题或服务端未响应。
      • 500 Internal Server Error: 服务端代码异常。
      • 429 Too Many Requests: 服务端限流。
  2. 分析响应时间
    • 平均响应时间:整体性能基准。
    • 90% Line:大多数用户的体验(比平均值更关键)。
    • Max:极端情况下的性能(需确认是否为异常值)。
  3. 评估吞吐量
    • 根据业务需求判断 Throughput 是否达标(如系统要求每秒处理100请求,但实际只有50,则需优化)。

三、优化建议(根据结果调整)

  1. 响应时间过长
    • 检查服务端日志,优化SQL或算法。
    • 增加服务端资源(CPU、内存)。
    • 启用缓存或异步处理。
  2. 吞吐量不足
    • 增加并发线程数(需逐步测试,避免过度压垮系统)。
    • 使用连接池(如数据库连接池)。
    • 负载均衡(分布式部署服务端)。
  3. 错误率上升
    • 检查服务端限流配置(如Nginx的limit_req)。
    • 增加重试机制(JMeter可通过逻辑控制器实现)。

四、保存测试结果

  1. 导出CSV文件
    • 在监听器(如聚合报告)中配置 Filename(如C:/results/querybook_test.csv)。
    • 勾选 “Write results to file”
  2. 生成HTML报告(高级):
    • 使用JMeter插件 JMeter Plugins Manager 安装 JP@GC - Graphs Generator
    • 运行测试后,通过插件生成包含图表的HTML报告。

五、完整操作流程总结

  1. 配置线程组 → 600并发,60秒Ramp-Up。
  2. 添加HTTP请求 → 设置POST方法和JSON参数。
  3. 添加HTTP头管理器 → 设置Content-Type: application/json
  4. 添加监听器 → 聚合报告+图形化监听器。
  5. 启动测试 → 监控实时数据。
  6. 分析结果 → 检查错误率、响应时间、吞吐量。
  7. 优化系统 → 根据结果调整配置或代码。
http://www.lryc.cn/news/610376.html

相关文章:

  • 设计模式-创建型-工厂模式
  • Clion STM32CubeMX LED闪灯
  • CentOS卸载、安装MySQL8(yum操作)
  • 【QT】常⽤控件详解(三)常用按钮控件PushButton RadioButton CheckButton Tool Button
  • Kali基础知识点【2】
  • 查看 Java 字节码文件:jclasslib 的使用
  • C++高频知识点(十四)
  • 文件包含篇
  • Linux中netstat详细使用指南
  • MySQL偏门但基础的面试题集锦
  • webm 读取解析
  • 并发编程常用工具类(上):CountDownLatch 与 Semaphore 的协作应用
  • Linux 使用 firewalld :开放端口与常用操作指南
  • 【机器学习】(算法优化二)提升算法之:AdaBoost与随机梯度
  • C++多线程同步:深入理解互斥量与事件机制
  • 【node】token的生成与解析配置
  • 笔试——Day28
  • 我用一个 Postgres 实现一整套后端架构!
  • LeetCode 分类刷题:16. 最接近的三数之和
  • 【Unity】协程 Async
  • 体育数据创业:用 API + 比分网,低成本快速验证
  • Mirror学习笔记
  • Linux RAID 存储技术
  • GaussDB 数据库架构师(十二) 资源规划
  • 用户与组管理命令
  • 小实验:按键点灯(中断法)
  • 【笔记】ROS1|5 ARP攻击Turtlebot3汉堡Burger并解析移动报文【旧文转载】
  • traefik网关鉴权中间件转发multipart/form-data请求的multipart: NextPart: EOF问题
  • LLM大模型时代:生活服务领域的“生存革命“与新生态重构
  • 深度学习-卷积神经网络CNN-卷积层