跳过正文
Background Image
  1. Posts/

使用 JMeter 进行性能测试

·631 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

录制 JMeter 脚本
#

使用 JMeter 的 HTTP(S) Test Script Recorder,参考官方文档:
https://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html


运行 JMeter 脚本
#

  • GUI 模式调试
    在 GUI 模式下调试录制的脚本,直到无报错为止。

  • 非 GUI 模式运行(推荐)

    jmeter -n -t ..\extras\Test.jmx -l Test.jtl
    

在 Jenkins 中运行 JMeter 脚本
#

需要的工具
#

  1. JMeter - Web Request Load Testing

  2. JMeter Plugins

    • ServerAgent-2.2.1(PerfMon Agent,用于性能监控)

测试环境
#

两台虚拟机:

  • 被测系统(System under test)
  • JMeter 执行机(同时作为 Jenkins 服务器)

实现步骤
#

1. 开发测试脚本
#

录制脚本可参考官方文档: https://jmeter.apache.org/usermanual/jmeter_proxy_step_by_step.html

2. 在 Jenkins 中创建任务运行 JMeter 脚本
#

  1. 新建 Freestyle Project

  2. 添加构建步骤 → Execute Windows batch command 清理上次测试结果:

    cd C:\Users\peter\.jenkins\jobs\TEST-122 Upload large data\workspace
    del /Q "jtl"\*
    del /Q "PerfMon Metrics Collector"\*
    
  3. 添加构建步骤 → Execute Windows batch command 执行 JMeter 脚本:

    jmeter -n -t script/UploadLargeData-1.jmx -l jtl/UploadLargeData-1.jtl
    
  4. 配置 Jenkins 邮件通知(Extended E-mail Notification):

    • SMTP Server: smtp.gmail.com
    • Recipient List: xianpeng.shen@gmail.com
    • Content Type: HTML
    • 触发器:Always

生成测试报告
#

在 JMeter 中添加监听器: jp@gc - PerfMon Metrics Collector → 选择 .jtl 文件 → 右键导出为 CSV。


分析测试结果
#

测试场景
#

使用 1、5、10、20、30(50) 个并发用户进行压测,记录各组结果。

常用指标解释

  • Sample (label):虚拟用户请求数
  • Average:平均响应时间
  • Median:中位数
  • % Line:90%、95%、99% 分位数
  • Min/Max:最短/最长响应时间
  • Error %:失败率
  • Throughput:每秒请求数(越大越好)
  • KB/Sec:吞吐量(KB/s)

示例结果:

User# SamplesAverageMedian90% Line95% LineMinMaxError %ThroughputReceivedSend KB/sec
13134834545251757730.00%2.852.500
51551166116414141602918210.00%4.263.730
1031022752299268729542041040.00%4.383.840
2062044794620511361523965710.00%4.423.880
3093066526899748895524100600.00%4.473.910

可视化分析
#

Response Chart
PerMon Metrics

相关文章

如何将 Bitbucket 仓库同步到 GitHub
·1218 字·3 分钟
介绍如何通过 Jenkins 将 Bitbucket 仓库的 master 分支同步到 GitHub。
Jenkins 与 Bitbucket Webhooks 的配置和使用
·1303 字·3 分钟
本文介绍如何在 Jenkins 中配置 Bitbucket Webhooks,以便在创建 Pull Request 时自动触发 Jenkins 构建。
三种方法解决 Jenkins 声明式流水线 Exception Method code too large !
·1033 字·3 分钟
本文介绍了三种方法来解决 Jenkins 声明式流水线中出现的 “Method code too large” 异常,包括将步骤放到管道外的方法、从声明式迁移到脚本式管道以及使用 Shared Libraries。
2021 年务必知道的最好用的 14 款 CI/CD 工具
·4806 字·10 分钟
本文列出了市场上最流行的 14 种 CI/CD 工具,包括 Jenkins、CircleCI、TeamCity 等,并介绍了它们的主要特性和使用场景。
DevOps Top 30+ 面试问题
·5981 字·12 分钟
本文列出了 DevOps 领域的 30 多个常见面试问题,涵盖 DevOps 基础知识、CI/CD、DevOps 工具和实践等方面,帮助求职者准备 DevOps 面试。
如何给你的 Git 仓库“瘦身”
·2239 字·5 分钟
如何从 Git 仓库中删除不需要的文件和历史记录,以减少仓库的大小,并提供了两种方法:使用 BFG Repo Cleaner 或 git filter-branch。