news 2026/1/22 12:55:43

JMeter命令行压测执行与结果分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JMeter命令行压测执行与结果分析

JMeter命令行压测执行与结果分析

一、执行前:权限与配置优化

  1. 确保JMeter可执行文件具有执行权限

    • 问题:上传到Linux的JMeter文件可能没有执行权限(文件显示为白色)。

    • 解决:进入JMeter的bin目录,为所有文件添加可执行权限。

      chmod +x ./*
      • chmod:修改文件权限。

      • +x:添加执行权限。

      • ./*:当前目录下的所有文件。

    • 验证:再次执行ll命令,文件应变为绿色。

  2. 调整JMeter控制台输出频率(关键优化)

    • 目的:默认每30秒输出一次概要日志,间隔太长,不利于观察实时趋势。调整为更短的间隔(如10秒)。

    • 步骤

      1. 进入JMeter的bin目录。

      2. 编辑jmeter.properties文件。

        vi jmeter.properties
      3. 搜索并修改以下配置项:

        # 原配置(默认30秒) # summariser.interval=30 # 修改为(例如10秒) summariser.interval=10
        • 需要删除行首的注释符号#,并修改数值。

      4. 保存退出并生效(重启JMeter或重新运行测试)。

二、执行压测:命令行操作

  1. 准备测试脚本

    • 简化脚本,移除图形化监听器(如查看结果树、TPS插件),仅保留必要逻辑。

    • 更新脚本中的目标服务器IP地址,确保指向正确的被测应用。

    • 建议使用简单的接口(如注册、登录)进行演示。

  2. 执行命令

    • 进入存放.jmx脚本的目录。

    • 执行核心压测命令:

      jmeter -n -t pinter_back.jmx -l result.jtl
      • -n: 非GUI模式。

      • -t: 指定测试脚本文件。

      • -l: 指定结果文件输出路径和名称(.jtl.csv格式)。

    • 示例:在/root/load_test目录下执行:

      cd /root/load_test jmeter -n -t pinter_back.jmx -l result.jtl
  3. 观察控制台输出(概要日志)

    • 压测开始后,控制台会按设定的间隔(如10秒)打印概要日志。

    • 日志格式解读

      summary + 3484 in 00:00:10 = 348.4/s Avg: 14 Min: 10 Max: 57 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0 summary = 9177 in 00:00:33 = 278.1/s Avg: 15 Min: 10 Max: 564 Err: 0 (0.00%) Active: 5 Started: 5 Finished: 0
      部分含义示例
      summary +增量数据,表示过去一个统计间隔内(如10秒)的性能指标。3484 in 00:00:10表示过去10秒处理了3484个请求。
      summary =累计数据,表示从测试开始到当前时刻的总性能指标。9177 in 00:00:33表示总运行33秒,处理了9177个请求。
      in 00:00:10时间跨度。
      = 348.4/s吞吐量 (Throughput),即TPS过去10秒平均每秒处理348.4个请求。
      Avg: 14平均响应时间(毫秒)。
      Min: 10最小响应时间(毫秒)。
      Max: 57最大响应时间(毫秒)。
      Err: 0 (0.00%)错误请求数及错误率。
      Active: 5当前活跃的线程数,即实时并发数
      Started: 5已启动的总线程数。
      Finished: 0已结束的线程数(在测试结束时不为0)。

三、生成与分析HTML图形化报告

  1. 调整报告生成粒度(关键步骤)

    • 目的:默认报告数据粒度是60秒,对于短时间测试过于粗糙。调整为更细的粒度(如1秒),以生成更精确的趋势图。

    • 步骤

      1. 进入JMeter的bin目录。

      2. 编辑reportgenerator.properties文件。

        vi reportgenerator.properties
      3. 搜索并修改以下配置项:

        # 原配置(默认60000毫秒=60秒) # jmeter.reportgenerator.overall_granularity=60000 # 修改为(例如1000毫秒=1秒) jmeter.reportgenerator.overall_granularity=1000
        • 同样需要删除注释符号#。此值不能低于1000

      4. 保存退出。

  2. 生成HTML报告

    • 在存放结果文件(.jtl)的目录下执行命令:

      jmeter -g result.jtl -o report
      • -g: 指定已存在的结果文件。

      • -o: 指定报告输出目录(该目录必须为空或不存在)。

    • 报告生成后,通过FTP工具(如Xftp)将整个report文件夹下载到本地。

  3. 报告核心内容解读

    • 打开本地的report/index.html文件。

    • 重点关注以下四个部分

      1. Dashboard / Summary Table (聚合报告)

        • 显示所有请求的总体统计数据,类似GUI中的聚合报告,但分类更清晰。重点关注Throughput(TPS)和Response Time

      2. Over Time Charts / Response Times Over Time (响应时间趋势图)

        • 以折线图展示平均响应时间随时间的变化趋势。观察是否平稳,有无毛刺。

      3. Over Time Charts / Throughput Over Time (TPS趋势图)

        • 以折线图展示TPS(吞吐量)随时间的变化趋势。观察系统处理能力是否稳定,压力是否施加到位。

      4. Over Time Charts / Active Threads Over Time (活跃线程数趋势图)

        • 以折线图展示并发用户数(活跃线程数)随时间的变化。用于验证并发策略是否按预期执行(如Ramp-Up)。

    • 其他有用信息

      • Errors Table:统计各类HTTP状态码错误的数量,便于快速定位问题。

      • Top 5 Errors by Sampler:列出错误率最高的采样器。

四、结果文件格式说明

  1. .jtl文件本质

    • 一个文本文件(CSV格式),每行代表一次请求的详细记录。

    • 使用head -n 20 result.jtl可查看文件头部内容。

    • 包含字段:时间戳、耗时、标签、响应码、消息、线程名、数据类型、成功标志、字节数等。

  2. 格式警告

    • HTML报告生成依赖于默认的CSV格式结果文件

    • 如果修改了JMeter配置,将结果保存为XML格式,则无法使用-g -o命令生成HTML报告

    • 解决方案:恢复jmeter.properties中关于结果格式的设置为默认值(jmeter.save.saveservice.output_format=csv),或使用原生未修改的JMeter。

五、总结与最佳实践

  1. 完整流程

    • 准备脚本 → 优化配置 → 命令行执行 → 观察概要日志 → 调整报告粒度 → 生成HTML报告 → 下载并分析报告。

  2. 性能测试关注点

    • 核心三件套TPS(吞吐量)、响应时间、错误率

    • 辅助观察:并发线程数趋势、服务器资源监控(CPU、内存、IO)。

  3. 环境一致性

    • 确保压力机(运行JMeter的Linux服务器)资源充足,且最好与被测应用隔离。

    • 被测应用也应部署在独立服务器上,避免资源竞争。

  4. 报告价值

    • HTML报告提供了直观的图形化分析能力,尤其擅长展示趋势和稳定性,是编写性能测试报告的重要数据来源。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/4 14:23:22

开源项目文档版本管理的革命:从混乱到秩序的蜕变之路

开源项目文档版本管理的革命:从混乱到秩序的蜕变之路 【免费下载链接】llm-cookbook 面向开发者的 LLM 入门教程,吴恩达大模型系列课程中文版 项目地址: https://gitcode.com/datawhalechina/llm-cookbook 当开发者小李满怀期待地打开LLM-Cookbook…

作者头像 李华
网站建设 2025/12/23 23:34:03

Wan2.2-T2V-A14B能否生成带有讽刺意味的社会评论短片?

Wan2.2-T2V-A14B能否生成带有讽刺意味的社会评论短片? 在社交媒体上,一段30秒的AI生成短片悄然走红:画面中,一群西装革履的政客在金碧辉煌的大厅里举杯庆祝“贫困已彻底消除”,而窗外却是排成长龙、低头领取救济粮的平…

作者头像 李华
网站建设 2025/12/23 10:24:39

Element Plus时间选择器禁用小时配置:从失效到精准控制的4个关键点

Element Plus时间选择器禁用小时配置:从失效到精准控制的4个关键点 【免费下载链接】element-plus element-plus/element-plus: Element Plus 是一个基于 Vue 3 的组件库,提供了丰富且易于使用的 UI 组件,用于快速搭建企业级桌面和移动端的前…

作者头像 李华
网站建设 2026/1/17 10:37:23

Vertex AI创意工作室云部署终极指南:快速上手完整方案

Vertex AI创意工作室云部署终极指南:快速上手完整方案 【免费下载链接】vertex-ai-creative-studio Creative Studio is a Vertex AI generative media example user experience to highlight the use of Imagen and other generative media APIs on Google Cloud. …

作者头像 李华
网站建设 2026/1/18 21:14:28

解决Sanic CLI参数解析异常:告别IndexError困扰

解决Sanic CLI参数解析异常:告别IndexError困扰 【免费下载链接】sanic Accelerate your web app development | Build fast. Run fast. 项目地址: https://gitcode.com/gh_mirrors/sa/sanic Sanic是一个高性能的Python异步Web框架,以其快速的开…

作者头像 李华
网站建设 2026/1/20 10:10:10

N_m3u8DL-CLI-SimpleG终极使用教程:3分钟学会下载M3U8视频

N_m3u8DL-CLI-SimpleG终极使用教程:3分钟学会下载M3U8视频 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为复杂的命令行操作而头疼?想要轻松下载网络…

作者头像 李华