当前位置: 首页 > 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.xdnf.cn/news/1243153.html

相关文章:

  • 【Java】使用FreeMarker来实现Word自定义导出
  • C++高频知识点(十四)
  • 京东商品详情API技术文档框架及Python实现方案
  • sqli-labs:Less-27a关卡详细解析
  • 《Python 实用项目与工具制作指南》· 2.3 导入
  • Bean的生命周期和循环依赖问题的解决
  • curl发送文件bodyParser无法获取请求体的问题分析
  • 嵌入式硬件中三极管推挽电路控制与实现
  • PPT自动化 python-pptx - 11 : 备注页 (Notes Slides)
  • (论文速读)Text-IF:基于语义文本引导的退化感知交互式图像融合方法
  • sqli-labs-master/Less-31~Less-40
  • openeuler离线安装软件
  • Hexo - 免费搭建个人博客07 - 添加右上角的“目录”
  • 先知模型或者说从容的模型
  • Linux—yum仓库及NFS网络共享服务
  • Java基础-斗地主游戏
  • opencv引入libavif
  • 从 0 到 1 开发图书管理系统:飞算 JavaAI 让技术落地更简单
  • Prometheus-3--Prometheus是怎么抓取Java应用,Redis中间件,服务器环境的指标的?
  • 【慕伏白】Android Studio 配置国内镜像源
  • 内联函数:提升效率的空间换时间艺术
  • FreeRTOS源码分析四:时钟中断处理响应流程
  • 深入浅出 RabbitMQ:工作队列实战(轮训策略VS公平策略)
  • 鸿蒙南向开发 编写一个简单子系统
  • 机器学习 入门——决策树分类
  • 并发编程常用工具类(下):CyclicBarrier 与 Phaser 的协同应用
  • C++入门自学Day6-- C++模版
  • 飞算JavaAI需求转SpringBoot项目沉浸式体验
  • 【BUUCTF系列】[极客大挑战 2019]LoveSQL 1
  • vllm启动Qwen/Qwen3-Coder-30B-A3B-Instruct并支持工具调用