使用JMeter对Linux生产服务器进行压力测试

news2025/1/3 23:39:16

安装 JMeter

wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.1.tgz
tar -xzf apache-jmeter-5.4.1.tgz
cd apache-jmeter-5.4.1

创建 JMeter 脚本

  1. 设置中文
    选择Options—>Choose Language—>选择其他语言(例如:Chinese(Simplified)简体中文)设置成功。重启Jmeter又会恢复英文在这里插入图片描述

  2. 创建测试计划

    • “File” —> “New” —> “Test Plan”
      在这里插入图片描述
  3. 配置线程组
    右键点击“Test Plan”,选择“Add” -> “Threads (Users)” -> “Thread Group”。

    • Number of Threads (users):线程数。100 个线程就是模拟 100 个用户。
    • Ramp-Up Period (in seconds):线程准备时长。如果线程数为 100,准备时长为 10,那么需要 1秒钟启动 10 个线程。
    • Loop Count:循环次数。如果线程数为 100,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 100*10 = 1000。如果勾选了“Infinite”,那么所有线程会一直发送请求,直到手动停止。
      在这里插入图片描述
  4. 添加 HTTP 请求

    • 右键点击“Thread Group”,选择“Add” -> “Sampler” -> “HTTP Request”。
    • 配置 HTTP 请求:
      • Server Name or IP: 你的 Linux 服务器的 IP 地址或域名
      • Port Number: 80 或 443(根据你的应用)
      • Path: /your-endpoint(你的测试端点)
      • Method: GET 或 POST(根据你的需求)

    在这里插入图片描述
    在这里插入图片描述

  5. 添加监听器

    • 右键点击“Thread Group”,选择“Add” -> “Listener” -> “Summary Report”。
    • 这将帮助你汇总测试结果。
      在这里插入图片描述
  6. 客户端安装jmeter-plugins-manager插件
    将下载好的Jmeter-plugins-manager jar包放在jmeter包下的lib\ext文件夹下

    我们需要关注被压测服务器的cpu、内存、磁盘、网络等指标参数的浮动来衡量压测服务器的能力;
    可以通过在jmeter客户端集成jmeter-plugins-manager插件,在服务端部署插件serverAgent来实时监控被压测服务器的性能;

  7. 下载PerfMon插件并应用
    在这里插入图片描述
    在这里插入图片描述

  8. 服务端配置ServerAgent
    下载

    sudo unzip ServerAgent-2.2.3.zip
    # 运行
    ./startAgent.sh # 默认端口为4444
    ./startAgent.sh --tcp-port 5678--udp-port 6789--sysinfo # 指定端口
    # 客户端执行测试ServerAgent是否启动
    telnet 172.18.126.87 4444
    
  9. Jmeter配置监控指标 添加PerfMon监听器

    测试计划-右键-添加-监听器-jp@gc-PerfMon Metrics Collector,如下:
    在这里插入图片描述

    点击AddRow,然后在host的地方添加需要监控的服务器的主机域名或者IP,port填写端口,Metric to collect下拉选择监控的指标(CPU、Memory、Swap、Disks I/O、Network I/O等)

    在这里插入图片描述

  10. GUI方式运行

    在这里插入图片描述

  11. 保存测试计划
    将测试计划保存为 test_plan.jmx

  12. 安装jmeter-plugins-cmd插件
    在这里插入图片描述

  13. 非GUI运行

    • 创建报告存放路径,比如:D:\A_jmeter_test\report;
    • 创建压测数据存放路径,比如:D:\A_jmeter_test\jtl;
    • 脚本存放路径,比如:D:\A_jmeter_test\登陆.jmx;
    jmeter -n -t 脚本路径 -l jtl数据文件路径 -e -o 测试报告存放路径
    
  14. 查看报告
    打开报告存放路径,比如:D:\A_jmeter_test\report

    在这里插入图片描述
    在这里插入图片描述

  15. 命令行生成监控图片
    新建存放图片的路径,比如D:\A_jmeter_test\picture;
    命令行先执行JMeterPluginsCMD.bat,看下这个命令有没有问题:
    在这里插入图片描述
    发现这个文件找不到,我们看下图片中的D:\apache-jmeter-5.3\bin\…\lib\cmdrunner-2.2.jar中的文件是否存在:
    在这里插入图片描述
    结果发现是cmdrunner-2.3.jar而不是cmdrunner-2.2.jar,则需要修改JMeterPluginsCMD.bat文件;
    而JMeterPluginsCMD.bat文件在D:\apache-jmeter-5.3\bin目录下:
    在这里插入图片描述

    JMeterPluginsCMD.bat --generate-png 存放图片的路径 --input-jtl jtl数据文件路径 --plugin-type PerfMon --width 图片宽度 --height 图片高度
    
    JMeterPluginsCMD.bat --generate-png D:\A_jmeter_test\picture\登陆.png --input-jtl D:\A_jmeter_test\jtl\登陆.jtl --plugin-type PerfMon --width 800 --height 600
    

    在这里插入图片描述
    生成的图片如下
    在这里插入图片描述

  16. 命令行生成csv文件
    创建csv文件存放路径,比如:D:\A_jmeter_test\csv;
    执行的命令为:

    JMeterPluginsCMD.bat --tool Reporter --generate-csv 存放csv路径 --input-jtl 存放jtl数据文件路径 --plugin-type PerfMon
    
    JMeterPluginsCMD.bat --tool Reporter --generate-csv D:\A_jmeter_test\csv\登陆.csv --input-jtl D:\A_jmeter_test\jtl\登陆.jtl --plugin-type PerfMon
    

    在这里插入图片描述
    在这里插入图片描述


编写 Shell 脚本

run_jmeter_test.sh

#!/bin/bash

# JMeter 安装路径
JMETER_HOME="/path/to/apache-jmeter-5.4.1"

# 测试计划文件路径
TEST_PLAN="${JMETER_HOME}/test_plan.jmx"

# 结果输出文件路径
RESULT_FILE="${JMETER_HOME}/test_results.jtl"

# 运行 JMeter 命令
${JMETER_HOME}/bin/jmeter -n -t ${TEST_PLAN} -l ${RESULT_FILE}

# 分析结果
${JMETER_HOME}/bin/jmeter -g ${RESULT_FILE} -o ${JMETER_HOME}/report

# 打开报告目录
xdg-open ${JMETER_HOME}/report/index.html
  • JMETER_HOME:JMeter 的安装路径。
  • TEST_PLAN:测试计划文件的路径。
  • RESULT_FILE:测试结果文件的路径。
  • ${JMETER_HOME}/bin/jmeter -n -t ${TEST_PLAN} -l ${RESULT_FILE}:以非 GUI 模式运行 JMeter 测试,并将结果保存到指定文件。
  • ${JMETER_HOME}/bin/jmeter -g ${RESULT_FILE} -o ${JMETER_HOME}/report:生成 HTML 报告。
  • xdg-open ${JMETER_HOME}/report/index.html:在默认浏览器中打开报告。
# 赋予脚本执行权限
chmod +x run_jmeter_test.sh
# 运行脚本
./run_jmeter_test.sh

  • 非 GUI 模式执行测试

    jmeter -n -t test_plan.jmx -l test_result.jtl
    
    • n:非 GUI 模式
    • t:指定测试脚本文件
    • l:指定结果输出文件
  • 生成报告

    jmeter -g test_result.jtl -o /path/to/output/report
    
    • g 指定输入文件(测试结果),o 指定输出报告路径。生成的报告可以通过浏览器查看,包含响应时间、吞吐量、错误率等图形化数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2269050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

位置编码--RPE

相对位置编码 (Relative Position Encoding, RPE) 1. 相对位置编码 相对位置编码是 Transformer 中的一种改进位置编码方式,它的主要目的是通过直接建模序列中元素之间的相对位置,而不是绝对位置,从而更好地捕捉序列元素之间的依赖关系&#…

《代码随想录》Day21打卡!

写在前面:祝大家新年快乐!!!2025年快乐,2024年拜拜~~~ 《代码随想录》二叉树:修剪二叉搜索树 本题的完整题目如下: 本题的完整思路如下: 1.本题使用递归进行求解,所以分…

【mysql】linux安装mysql客户端

参考文章: MySQL系列之如何在Linux只安装客户端 linux下安装mysql客户端client MySQL Community Downloads 查看linux版本方法: lsb_release -a cat /proc/version下载文件: rpm -ivh mysql-community-*可以删除错误的包: RP…

HTML——26.像素单位

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>像素</title></head><body><!--像素&#xff1a;1.指设备屏幕上的一个点&#xff0c;单位px&#xff0c;如led屏上的小灯朱2.当屏幕分辨率固定时&…

一键闪测仪:MLCC尺寸测量解决方案

MLCC是电子行业中常用的陶瓷电容器&#xff0c;其尺寸影响物理占用空间、电气性能和可靠性等&#xff0c;因此MLCC尺寸管控对产品质量至关重要。 在此&#xff0c;小优博士给各位介绍MLCC的概况以及MLCC尺寸快速测量解决方案。 一、MLCC概述 MLCC&#xff08;Multi-layer Cer…

Spring API 接口加密/解密

API 接口加密/解密 为了安全性需要对接口的数据进行加密处理&#xff0c;不能明文暴露数据。为此应该对接口进行加密/解密处理&#xff0c;对于接口的行为&#xff0c;分别有&#xff1a; 入参&#xff0c;对传过来的加密参数解密。接口处理客户端提交的参数时候&#xff0c;…

学习threejs,导入pdb格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.PDBLoader pdb模型加…

Frontend - 分页(针对 python / Django )

目录 一、同个文件内&#xff08;方式一&#xff09; 1. 前端 html 2. 定义分页界面 3. 获取分页数据 4.后端根据前端分页需求&#xff0c;整理分页数据 5.显示情况 6. JsonResponse 相关知识 二、不同文件内依旧有效&#xff08;方式二&#xff0c;更优化&#xff09;…

[2474].第04节:Activiti官方画流程图方式

我的后端学习大纲 Activiti大纲 1.安装位置&#xff1a; 2.启动&#xff1a;

按照乘法分解10点结构

在行列可自由变换的平面上9点结构有1430个&#xff0c;10点结构有3908个。其中可被分解为2*5的有102个&#xff0c; 5a1*2a110a28 5a1*2a210a689 5a1*2a310a1722 5a2*2a110a172 5a2*2a210a1081 5a2*2a310a2006 5a3*2a110a275 5a3*2a210a1561 5a3*2a310a2381 5a4*2a110…

JVM实战—6.频繁YGC和频繁FGC的后果

大纲 1.JVM GC导致系统突然卡死无法访问 2.什么是Young GC什么是Full GC 3.Young GC、Old GC和Full GC的发生情况 4.频繁YGC的案例(G1解决大内存YGC过慢) 5.频繁FGC的案例(YGC存活对象S区放不下) 6.问题汇总 1.JVM GC导致系统突然卡死无法访问 (1)基于JVM运行的系统最怕…

word运行时错误‘-2147221164(80040154)’ 没有注册类的解决办法

目录 问题描述解决方案 问题描述 解决方案 打开C盘找到路径C:\Users\Administrator\AppData\Roaming\Microsoft\Word\STARTUP或者在everything中搜索“Microsoft\Word\STARTUP”删除NEWebWordAddin.dotm文件即可正确打开word。

微服务保护—Sentinel快速入门+微服务整合 示例: 黑马商城

1.微服务保护 微服务保护是确保微服务架构可靠、稳定和安全的策略与技术。 在可靠性上&#xff0c;限流是控制进入微服务的请求数量&#xff0c;防止流量过大导致服务崩溃。比如电商促销时对商品详情服务进行流量限制。熔断是当被调用的微服务故障过多或响应过慢时&#xff0c;…

屏幕时序参数详解

屏幕时序参数详解 作者&#xff1a;&#xff08;Witheart&#xff09;更新时间&#xff1a;20241231 本文详细介绍了屏幕显示时序的基本参数&#xff0c;包括水平和垂直方向的有效像素、同步信号、前肩、后肩及其总周期的定义与计算公式。同时&#xff0c;通过公式和图示&…

2024年RAG:回顾与展望

2024年&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术经历了从狂热到理性的蜕变&#xff0c;成为大模型应用领域不可忽视的关键力量。年初&#xff0c;AI的“无所不能”让市场充满乐观情绪&#xff0c;RAG被视为解决复杂问题的万能钥匙&#xff1…

webpack01

webpack是一个前端工程化的打包工具 webpack在打包的时候&#xff0c;会形成一个依赖关系图&#xff0c;关联要打包的模块&#xff0c;&#xff0c;&#xff0c;不同的模块通过不同的loader去解析&#xff0c;&#xff0c;&#xff0c;比如解析css使用 css-loader,解析js使用b…

牛客网最新1129道 Java 面试题及答案整理

前言 面试&#xff0c;跳槽&#xff0c;每天都在发生&#xff0c;而对程序员来说"金三银四"更是面试和跳槽的高峰期&#xff0c;跳槽&#xff0c;更是很常见的&#xff0c;对于每个人来说&#xff0c;跳槽的意义也各不相同&#xff0c;可能是一个人更向往一个更大的…

python版本的Selenium的下载及chrome环境搭建和简单使用

针对Python版本的Selenium下载及Chrome环境搭建和使用&#xff0c;以下将详细阐述具体步骤&#xff1a; 一、Python版本的Selenium下载 安装Python环境&#xff1a; 确保系统上已经安装了Python 3.8及以上版本。可以从[Python官方网站]下载并安装最新版本的Python&#xff0c;…

突破管理困局,驾驭变革浪潮

在瞬息万变的商业环境中&#xff0c;变革已成为企业生存和发展的必经之路。许多企业在面对激烈竞争、技术进步和市场变化时&#xff0c;都会选择或被迫进行各种形式的变革。本文将深入探讨变革管理的重要性&#xff0c;介绍常见的变革模型&#xff0c;并提供实用的策略和建议&a…