当前位置: 首页 > 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.dtcms.com/a/314606.html

相关文章:

  • mybatis知识
  • 网安学习NO.21
  • 飞算JavaAI需求转SpringBoot项目沉浸式体验
  • 探访WAIC2025:当AI成为双刃剑,合合信息如何破解真假难题
  • 北京JAVA基础面试30天打卡01
  • SpringMvc跨域配置方法详解
  • Linux网络编程【基于UDP网络通信的群聊服务】
  • 通用代码自用
  • 李沐写作笔记
  • C语言结构体、位段、枚举、联合体
  • Codeforces Round 1004 (Div. 2)
  • win10 系统,一键保存截图, shift + print_screen
  • Ubuntu 下 MySQL 运维自动化部署教程(在线简易版)
  • 0.08B参数以小博大:用小模型生成媲美GPT-4o的古典诗词
  • TCP 四次挥手详解
  • springboot博客实战笔记01
  • 常见的Prompt设计误区
  • Centos Docker 安装手册(可用)
  • Web开发系列-第15章 项目部署-Docker
  • windows小组件能清理吗
  • 银河麒麟V10一键安装DM8的脚本及高阶运维SQL分享
  • 微型导轨:3D打印设备精度平稳的关键应用
  • 【Spring AI快速上手 (二)】Advisor实现对话上下文管理
  • 零基础掌握 Scrapy 和 Scrapy-Redis:爬虫分布式部署深度解析
  • C++少儿编程(二十一)—软件执行流程
  • 【微实验】MATLAB频谱 三维可视化
  • 量化大型语言模型的评估
  • Flutter开发 MaterrialApp基本属性介绍
  • CSDN文章创作用法
  • sqli-labs:Less-26a关卡详细解析