jmeter压测实战包括cpu性能检测

2023-10-26

1、录制测试计划

1)打开jmeter,创建测试计划(线程组-sampler(HTTP请求-监听器(查看结果树、聚合报告)))

2)服务器参数端口做了个参数化管理:

3)对于请求数据也做一个参数化管理:

4)最后运用参数化思想传参,HTTP请求,填写IP,端口,请求方法,路径,参数名称和值

5)查看结果树和聚合报告是用来查看执行计划是否成功以及各项指标的。

我增加了断言,所以可以在聚合报告中清晰的看到压测的结果:

聚合报告参数详解: 

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值 

#Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100 

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 

Median:中位数,也就是 50% 用户的响应时间 

90% Line:90% 用户的响应时间 

Min:最小响应时间 

Max:最大响应时间 

Error%:错误率——错误请求数/请求总数 

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

一般而言,性能测试中我们需要重点关注的数据有: #Samples 请求数,Average 平均响应时间,Min 最小响应时间,Max 最大响应时间,Error% 错误率及Throughput 吞吐量。

2、在linux环境执行测试计划(打压)

把脚本上传到 linxu环境,可以在脚本里面直接修改参数(并发数、运行时间、参数文件的位置)

在 jmeter 的bin目录下执行测试计划,执行命令如下:

$ jmeter -n -t user-login.jmx -l login-result.jtl -e -o ResultReport

#user-login.jmx是脚本名字,login-result.jtl 是生成的日志文件,ResultReport是生成的报告目录

· -h 帮助 -> 打印出有用的信息并退出

· -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter

· -t 测试文件 -> 要运行的 JMeter 测试脚本文件

· -l 日志文件 -> 记录结果的文件

· -r 远程执行 -> 启动远程服务

· -H 代理主机 -> 设置 JMeter 使用的代理主机

· -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

执行命令后还需要观察打压过程是否有报错,监控linux服务器的cpu 、内存、负载等

3、html报告展示:

1)Dashboard:

2)overtime:

3) Response Time Percentiles Over Time (successful responses)

4)Active Threads Over Time

5)Bytes Throughput Over Time

6)Latencies Over Time

7)Connect Time Over Time

4、jemter如何做到监控服务器的性能

1)如图需要先下载的jmeter插件。下载链接:Download :: JMeter-Plugins.org

2)解压压缩包,找到解压包中的JAR文件,并拷贝到jmeter的lib/ext目录下

3) 如上图,把的两个jar包放到JMeter的 lib/ext目录下,重启jmeter,出现如下新增的组件,则说明启动成功

4)常用组件介绍

jp@gc - Bytes Throughput Over Time:不同时间吞吐量展示(图表) 聚合报告里,Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表

jp@gc - Composite Graph: 混合图表 在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表

jp@gc - Hits per Second:每秒点击量

jp@gc - PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等

jp@gc - Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间

jp@gc - Reponse Times Distribution: 显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数

jp@gc - Transactions per Second: 每秒事务数,服务器每秒处理的事务数

5)将serveragent-2.2.1.zip解压,下载链接:百度网盘 请输入提取码  密码:2evc

liunx:运行命令*./startAgent.sh* 或 sh startAgent.sh 即可启动ServerAgent服务

windows:运行 startAgent.bat

默认端口444

$ sh startAgent.sh

INFO    2020-08-28 15:43:45.254 [kg.apc.p] (): Binding UDP to 4444

INFO    2020-08-28 15:43:45.313 [kg.apc.p] (): Binding TCP to 4444

INFO    2020-08-28 15:43:45.316 [kg.apc.p] (): JP@GC Agent v2.2.0 started

这边可能会遇到版本问题的错误:

java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t

解决方法参考:解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t - 逆风造梦师 - 博客园

6)如下图完美的监控了CPU的性能:

5、关于jmeter性能测试标准

公式=用户数* 用户活跃数/ 服务器数量/  打压时间/60秒=承受压力的TPS

80%是活跃用户数,这个也是行业统计,一般这么认为。业务分散在几台服务器上,用用户数➗服务器数量 得到单台服务器承受的用户数,然后根据打压时间 20分钟,算出每秒的支持量。如果算出的数字比你打出来的tps大,说明目前系统承受的压力满足不了现网业务,如果结果比打压的tps小,则满足。

web性能测试各项通过指标:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jmeter压测实战包括cpu性能检测 的相关文章

  • CMake:不支持的 GNU 版本 - 不支持高于 8 的 gcc 版本

    在降级我的 GCC 之前 我想知道是否有一种方法可以确定我的机器中的哪些程序 框架或依赖项将被破坏 以及是否有更好的方法来安装 openpose 例如 更改 CMake 中的某些内容 有没有办法可以解决这个问题 而无需更改我的系统 GCC
  • Linux c++:api 与 /proc 文件?

    我正在开发一个应用程序来收集和发送各种系统信息 分区空间 可用空间 笔记本电脑电池信息等 我没有成功地以直接 c api 的形式获取这些信息 尽管它都可以通过 proc 或类似 中的文件获得 所以 我想知道在我的 C 应用程序中读取 解析这
  • 在 bash 中使用 ssh 内的 Expect 执行 sudo

    我想创建一个脚本来自动在多个 Linux 主机上进行安装 我使用 ssh 密钥登录到主机 在登录中我想做一个 sudo 我正在尝试使用 Expect 我在站上有它 但是我的服务器上没有运行脚本 我该怎么做 这是我的尝试 但没有运气 bin
  • C/C++ - 运行系统(“process &”),然后写入其标准输入

    我正在研究 Linux 和 C C 我编写了一个带有一些线程的程序 include pthread h 并使用 sudo 运行它 一个线程运行一个进程 mplayer 并通过添加 使其保持运行 以便system 可以快速返回 system
  • 如何在Linux内核中启用CONFIG_PREEMPT选项?

    我是 Linux 内核编程的新手 尝试在 x86 64 上使用旧内核 Linux 2 6 32 我想启用其中的 CONFIG PREEMPT 选项 但找不到有关如何执行此操作的信息 我可以使用我的首选选项编译新内核 但不知道在这种情况下我需
  • 在 linux shell 中执行程序时得到“dquote>”

    当我在 Linux shell 中执行脚本时 我得到以下输出 dquote gt 这是什么意思 这意味着您执行了一行仅包含一个双引号字符的代码 如下所示 echo Hello shell 正在等待其他报价
  • 使用 Google Breakpad 的小型转储无法显示应用程序崩溃的行号

    我在崩溃时获得了应用程序的小型转储文件 但它没有给我诸如函数名称和行号之类的详细信息 输出如下 Operating system Linux 0 0 0 Linux 3 3 8 2 2 1 SMP Thu May 12 13 30 26 U
  • 如何使用 gnu cp 命令将文件复制到多个目录

    是否可以使用 cp 命令将单个文件复制到多个目录 我尝试了以下方法 但没有成功 cp file1 foo bar cp file1 foo bar 我知道可以使用 for 循环或 find 但是可以使用 gnu cp 命令吗 你不能这样做c
  • 如何判断全屏应用程序是否正在运行?

    python 是否可以判断 linux 上的全屏应用程序是否正在运行 我感觉使用 Xlib 可能是可行的 但我还没有找到方法 EDIT 我所说的全屏是指整个屏幕 除了应用程序之外 没有其他任何内容 例如全屏游戏 如果您有兴趣在支持下运行所有
  • 安装Python时出错

    击中后 make install 我收到以下错误 usr bin install cannot create regular file usr local bin python2 6 Permission denied make altbi
  • 使用 libjpeg 编写 jpeg(段错误)

    尝试使用 libjpeg 从一些原始数据写入 jpeg 文件 它会触发分段错误jpeg start compress 这是代码的相关部分 void write sub image char filename int start int en
  • 如何设置http请求的源IP?

    在发送 http 请求之前 我需要设置源 IP 地址 用于 IP 欺骗等 用于建立http连接的类是HTTPURLConnection 我在 stackoverflow 上找到了下面的链接 这非常有用 注册和使用自定义 java net U
  • Nvcc 的版本与 CUDA 不同

    我安装了 cuda 7 但是当我点击 nvcc version 时 它打印出 6 5 我想在 GTX 960 卡上安装 Theano 库 但它需要 nvcc 7 0 我尝试重新安装cuda 但它没有更新nvcc 当我运行 apt get i
  • 请求失败的错误:GLXBadDrawable (C++ bgfx)

    我试图用 glfw 和 bgfx 创建一个紫色窗口作为我的游戏引擎的起点 但是在启动二进制文件时它会抛出一个错误 我正在尝试创建紫色窗口 如下图所示 我正在使用 cmake 错误是 anuj fedora D C C c o build g
  • `/dev/urandom` 适合模拟目的吗?

    似乎在类 Unix 系统中使用纯 C fread from dev urandom是提取高质量随机字节的最简单方法 我需要运行一个每秒需要大约 10k 32 位随机数的模拟 并且可能会运行几天 是 dev urandom可以用于此目的吗 当
  • 调试严重的 SIGILL 崩溃:文本段损坏

    我们的系统是基于 PowerPC 的运行 Linux 的嵌入式系统 我们遇到了随机的 SIGILL 崩溃 这种情况在各种应用程序中都会出现 崩溃的根本原因是将要执行的指令归零 这表明内存中的文本段已损坏 由于文本段是以只读方式加载的 因此应
  • 当非特权用户运行 C/asm 程序时,会对 Linux 造成什么危害?

    我一直在考虑一种场景 让用户 可以是任何人 可能有恶意 提交在 Linux PC 我们称之为基准节点 上运行的代码 目标是为单线程例程创建一种自动化基准测试环境 假设一个网站向代理发布了一些代码 该代理将此代码交给基准节点 而基准节点仅与代
  • 在 Ubuntu 12.04 中打开 eclipse juno 并出现错误“No more handles ...”

    从今天开始 每次我打开 Eclipse 时 都会弹出一个标题为 出现问题 的消息框 内容如下 不再处理 未知的 Mozilla 路径 未设置 MOZILLA FIVE HOME 可能的参数 0 1 2 3 不再有句柄 未知的 Mozilla
  • 安装pipenv导致pip3无法使用

    我安装了pipenv using pip3 install pipenv 这给了我错误ImportError cannot import name main 为了解决这个错误我遵循这些说明 https stackoverflow com q
  • Alsa:如何在 2 个输出上复制流并保存系统配置?

    我的声卡是 Audigy SE SB0570 我想不仅在扬声器上而且在耳机上同时播放相同的立体声流 我在空的 asoundrc 上尝试这个配置 pcm quad type multi slaves a pcm hw 0 0 green ho

随机推荐

  • 结构体内存对齐详解

    目录 一 结构体的对齐规则 二 修改默认对齐数 三 位段 四 枚举 五 联合 共用体 一 结构体的对齐规则 1 第一个成员在与结构体变量偏移量为0的地址处 2 其他成员变量要对齐到某个数字 对齐数 的整数倍的地址处 对齐数 编译器默认的一个
  • Ubuntu16.04 64位下安装VMware Tools过程

    因为在虚拟机下安装Ubuntu16 04 64位时无法进入全屏模式 采用另外一种方法解决了 但是还是想安装一下VMware Tools 防止以后出现相关问题 好啦 下面进入正题 1 在虚拟机下会看到安装 VMware Tools 单击安装
  • C# 各种符号用法

    参考 C 的7种用法 c 软泡芙的博客 CSDN博客 C 问号操作符详解 知乎 的7种用法 可空类型修饰符 int i num null 表示可空的整型 DateTime time dateTime null 表示可空的时间 三元 运算符
  • join(long millis)意思?join()作用

    join 作用 class JoinThread implements Runnable public void run for int i 0 i lt 100 i System out println Thread currentThr
  • FT2232作为JTAG烧录器的使用步骤详解

    FT2232作为JTAG烧录器的使用步骤详解 FT2232作为JTAG烧录器的使用步骤详解 配置OpenOCD环境 已经配置好的可以跳过 步骤 1 安装 FT2232HL 芯片的驱动 安装文件为 CDM21228 Setup exe 步骤
  • unity AR3D物体识别

    上篇讲到了各种AR插件的一些对比 因为上个项目需求用到3D物体追踪 所以使用了EasyAR和Vuforia两种进行了测试对比 因为如果需要AR识别 都需要有识别点 大致都是基于物体材质纹理来进行识别 1 先讲一下EasyAR的3D物体识别
  • 【百问网】物联网项目学习总结

    初步实现项目 项目程序流程图 TCP连接流程 模式1 站点模式 写代码去实现了这个TCP的连接流程 我们的思路就是 首先直接操作ESP8266 进行功能验证 ST Link Debugger 点击Settings 勾选Reset and R
  • 远程访问数据库出错的解决办法

    案例 在aws服务器中的项目访问在华为云中的测试服务器的数据库 报错 Access denied for user root ec2 XXX XXX XXX XXX cn north 1 compute amazonaws com cn u
  • Linux指令系统文件复制到U盘

    Linux指令系统文件复制到U盘 文章目录 Linux指令系统文件复制到U盘 1 建立U盘挂载点 2 查看U盘所在分区 3 查看U盘类型 4 挂载U盘 5 复制文件 6 移除U盘 1 建立U盘挂载点 在挂载点处建立文件夹 mkdir 路径
  • 【Java面试题汇总】设计模式篇(2023版)

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 谈谈你对设计模式的理解 谈谈你对单例模式的理解 手写一
  • [17]AWK记录、字段、模式、跨平台移植及正则表达式

    一 记录与字段 1 记录分隔符 默认行输入和输出的分隔符都是回车 保存在RS和ORS内部变量中 变量 0 awk每次一行取得整条记录 0随之改变 同时内部变量NF 字段的总数 也随之变化 变量NR 每条记录的行号 处理完一行将会加1 所以全
  • InnoDB undo log解析(二)

    在 上一篇中已经介绍了InnoDB undo log的组织结构 并通过一个示例并结合InnoSQL来分析insert undo log记录格式 本篇中介绍update undo log的记录格式 update undo log有以下三种类型
  • cocoeval 解析

    1 COCO目标检测比赛中的模型评价指标介绍 dulingwen的博客 CSDN博客 2 COCO目标检测测评指标 简书 1 Params类 对于COCO格式的数据检测 我们主要分为不同的IoU阈值 不同的面积范围 单张图片的最大检测数量
  • PAT 5 猴子吃桃问题(递归)

    猴子吃桃问题 15 分 一只猴子第一天摘下若干个桃子 当即吃了一半 还不过瘾 又多吃了一个 第二天早上又将剩下的桃子吃掉一半 又多吃了一个 以后每天早上都吃了前一天剩下的一半加一个 到第N天早上想再吃时 见只剩下一个桃子了 问 第一天共摘了
  • Nuxt 项目引入外部Js的正确姿势 ,问题描述:打包构建之后引入的外部 js失效,构建之后的 .nuxt 文件夹下的js文件中,引入 js 的script标签凭空消失!

    首先先说我遇到的问题描述 我是用vue nuxt项目 项目中使用了阿里播放器 于是我在vue页面中直接引入了阿里播放器的 css和js文件 然后运行没有任何问题 如下图所示 但是 当我打包以后 发现这个页面竟然报错 我打开 打包好的 nux
  • Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this doc...

    网上收集到的相关解决办法 1st Start debugging Now select Debug gt Windows gt Modules In the modules window taht now appears check wha
  • 解决Windows缺少d3dcompiler_37.dll文件

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 37 dll文件进行安装
  • VSCode选择远程服务器的虚拟环境

    方式一 选择服务器虚拟环境conda Ctrl Shift P 选择需要使用的虚拟环境即可 方式二 选择Terminal 点击 通过命令行切换即可 参考 Work on Python in VSCode remotely over ssh
  • 不就是G2O嘛

    从零开始一起学习SLAM 理解图优化 一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法 一种是以扩展卡尔曼滤波 EKF 为代表的滤波方法 一种是以图优化为代表的非线性优化方法 不过 目前SLAM研究的主流热点几乎都是基于图优化的
  • jmeter压测实战包括cpu性能检测

    1 录制测试计划 1 打开jmeter 创建测试计划 线程组 sampler HTTP请求 监听器 查看结果树 聚合报告 2 服务器参数端口做了个参数化管理 3 对于请求数据也做一个参数化管理 4 最后运用参数化思想传参 HTTP请求 填写