接口压力测试 jmeter--增强篇(二)

前期准备

1. JMeter的插件的安装

下载Jmeter Plugins Manager对插件进行管理
(1)下载地址:https://jmeter-plugins.org/install/Install/
(2)下载后,将jar包放到jmeter包目录下/lib/ext目录下
(3)重启Jmeter,点击【选项】,就能看到插件管理器了

直接插件下载

JMeterPlugins-Standard.jar和JMeterPlugins-Extras.jar,存放到/apache-jmeter-5.6.2/lib/ext lib/ext文件夹下。

下载链接: https://pan.baidu.com/s/15WnkPl2m9mefzgIO12_INA?pwd=4dkc 提取码: 4dkc

常用插件(下载了上面两个jar,下面的都直接就有了)

Transactions per Second 

Response Times Over Time

bytes throughput over time

actives threads over time 

perfmon metrics collector

2.ServerAgent安装 

ServerAgent下载

链接: https://pan.baidu.com/s/1HbBC394I83pLRt_bakPc8g?pwd=n1y5 提取码: n1y5

将ServerAgent-2.2.0上传到被测服务器(根目录或任意位置),解压,进入目录,Windows环境,双击startAgent.bat启动;mac、linux环境执行startAgent.sh启动,默认使用4444端口(如果没有执行权限,可先赋予执行权限:chmod 777 startAgent.sh)

注:ServerAgent服务端口号默认为4444,如若遇到端口被占用,则需关闭占用该端口的进程,或者改变ServerAgent服务的默认端口:

A:关闭占用4444端口的进程,再次启动ServerAgent服务,成功。

查看接口占用情况

lsof -i:4444 //查看4444端口被占用情况

关闭被占用的接口

kill -9 2103 //kill -9 PID

B:使用命令改变ServerAgent服务的默认端口:./startAgent.sh -udp-port 0 -tcp-port xxxx (xxxx为新端口号)

./startAgent.sh -udp-port 0 -tcp-port xxxx
  • startAgent启动

将ServerAgent 文件夹下的startAgent.sh拖到终端中,然后回车

3.修改jmeter参数

修改配置文件jmeter.properties、jmeter.bat

路径:/Users/mac/Documents/apache-jmeter-5.6.2/bin

3.1 jmeter.properties修改输出格式、保留响应数据等

jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true

3.2 修改jmeter内存jmeter.bat 

重启Jmeter 

一、JMeter监控使用

添加--监听器

1. TPS 和 RT(响应时间)

TPS(Transactions per Second)和RT(Response Times Over Time)直接增加就可以

运行效果:

2. (ServerAgent)监控服务器的性能:CPU,内存 

使用PerfMon Metrics Collector

PerfMon Metrics Collector使用原理:

1.需要在服务器安装一个ServerAgent,用于收集服务器的性能参数。

然后通过4444端口输出。

2.在PerfMon Metrics Collector组件中通过4444端口去捕获服务器性能参数。

  • 2.2.1 PerfMon Metrics Collector设置

  • 2.2.3运行脚本

如果有报错,那可能安装插件版本冲突的问题。 

本人是 lib/ext下有两个版本的jmeter-plugins-manager.jar,删除了一个后正常

监控图的作用主要是:

1.看趋势,找性能拐点

2.写性能测试报告

二、实际性能压测的场景设置 

场景:性能测试用例

1.旧系统来自于运维

2.新系统来自于合理预估

按场景和规则预估:做OA,总用户10000个,测试打卡功能做并发,8:30-9:00

一般大部分的公司不超过 200,或者多一点很难超过500。

至于5000以上,1万,十万,百万级别的一定要集群。

服务器(集群)和压力机(集群)

1.单接口基准测试

使用一个用户测试接口5分钟。

目的:为了在没有任何压力的情况下:查看各项性能指标。

单接口基准测试,一般响应时间不超过100ms

2.单接口负载测试场景

通过逐渐的对一个接口进行施压直到出现性能拐点。 获得被测接口的最大处理能力以及它的相关的性能指标。

单接口负载测试,一般不做,只有在怀疑某个接口有问题时,才去监测

3.混合负载压测场景

(不是只有一个场景,有多个)

目的是为了验证整个业务的最大的最优的性能体现。重点在于模型的设计。模型来自于数据(来自生产环境的日志或者产品经理给出的)。

Stepping Tread Group: 递增式线程组,共建式线程组

Ultimate Tread Group:Ultimate 一般用来做极限测试,浪涌测试

 压测策略/压测场景/压测用例:

3.1 Stepping Tread Group 逐步加压

 之前的脚本复制到Stepping Tread Group


 this group will start(启动多少个线程):100

First wait for(等待多少秒才开始压测) :一般为0

Then start (一开始有多少个线程数):一般为0


比较重要:下面 3 个一般一起用 )

Next , add :10

threads every :30

using ramp-up :5

每5秒启动10个虚拟用户数,每组数据持续运行30秒


  (也是重要的参数) 

Then hold load for :60

全部加载完成后,负载运行60秒。 

(在企业中,负载测试 10~30 分钟,压力测试 4~24 小时--------4/8/12/24 小时比较常用)


(下面两个一起用)

Finally stop:5

threads every : 1

每一秒停止5个虚拟用户数。

3.2 集合点设置(并发)

3.3 运行结果

 

超过时间集合释放了

 

4. 压力测试场景:

验证系统的极限。直到有任何一个性能指标超出预期。

5. 稳定性测试场景。

在压力测试的场景下持续的运行4-24个小时。 

 三、无界面压测(NON GUI )

1.节约系统资源。

2.更快捷,只需要启动命令即可进行压测

3.主要是用于性能压测集成。

-n 表示无界面压测

-t 制定你的jmx脚本

-l 生成jtl测试报告

上面的测试时间较长,修改如下,可以比较快的看到结果:

 1. 压测

终端进入脚本.jmx所在位置,输入以下指令:

jmeter -n -t jmeter2024.jmx -l result001.jtl

 运行结果:

2.生成报告

注意:再次修改jmeter.properties输出格式

jmeter.save.saveservice.output_format=csv

参数: 

-e -0 直接生成报告

重新启动DOS窗口,进入路径,输入指令:

jmeter -n -t jmeter2024.jmx -l result001.jtl -e -o reports

 

jtl报告通过 jmeter的聚合报告导入查看

 

直接查看报告

3.集群压测

注意点:JMeter版本和插件的版本要一致

两个参数:用于分布式集群压测

-r:表示启动所有的远程压力机执行压测。

-R:指定特定的远程压力机执行压测。多态用,隔开

运行--远程启动:可以看到远程的服务器 

命令:

jmeter -n -t jmeter2024.jmx -l result.jtl -e -o reports -r
jmeter -n -t jmeter2024.jmx -l result.jtl -e -o reports -R 192.168.0.24:1001

4. 查看Linux服务器的性能

通过Linux 的 IP地址,账号,密码进行连接

mac连接Linux服务器 

windows连接Linuxi服务器 

(1)wiindows先连接Linux服务器

下载并安装一些常用的SSH客户端软件,例如PuTTY或Xshell

 

(2) 输入指令top:

效果

load average: 平均负载(1分钟,5 分钟,15 分钟)值不能超过 4,要不然就是超负荷运行

Tasks: 进程数

%Cpu(s): id :剩余百分比

KiB Mem: free:剩余内存(free/1024/1024= ? G)5221312/1024/1024= 4.97G

KiB Swap: used :稳定为 0 是最好

(3)指令htop:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【YOLOv8改进[检测头Head]】YOLOv8的“新头”之动态头(DynamicHead)

目录 一 DynamicHead 二 YOLOv8的“新头”之动态头 1 总体修改 2 配置文件 3 训练 其他 一 DynamicHead 官方论文地址:https://arxiv.org/pdf/2106.08322.pdf 官方代码地址:GitCode - 开发者的代码家园 在计算机视觉应用中,目标检测…

启动appium服务的2种方法(python脚本cmd窗口)

1.通过cmd窗口命令来启动 2.通过python代码启动 2.1启动单个appium服务 2.2启动多个appium服务 3.端口说明 一.端口号设置Appium服务器端口:4723 bp端口:4724 Appium服务器端口:4725 bp端口:4726可以看到appium服务器端口和bp端…

SpringBoot(一)【入门】

前言 1、SpringBoot 快速入门 1.1、SpringBoot 简介 SpringBoot 是用来简化 Spring 应用的初始搭建以及开发过程 首先我们回顾一下 SpringMVC 项目的开发过程: 导入依赖(javax.servlet-api 和 spring-webmvc)Servlet 容器配置类&#xff…

VirtualBox虚拟机使用win11系统,忘记密码如何重置密码

1. 点击重启同时按住Shift(按住不放) 2. 直到出现下面的界面,释放Shift,并进入疑难解答 3. 进入高级选项 4. 进入命令提示符 5. 发现当前是在X盘? 6. 进入C:\Windows\System32 c: cd Windows\System32 7. 备份osk.exe…

SpringCloud系列(5)--SpringCloud微服务工程公共部分提取

前言:在上一章节中我们创建了两个个SpringCloud工程,但在两个工程中分别存在着一些重复的部分,例如重复的实体类(如图所示),这样会造成系统的冗余,所以我们需要把公共的类提取到一个工程里&…

预约小程序新选择:强大后端管理功能一览

拥有一个功能齐全、操作便捷的小程序对于商家来说至关重要。为了满足广大商家的需求,乔拓云平台提供了丰富的模板资源,帮助用户快速搭建预约型小程序,并配备了强大的后端管理功能,让商家能够轻松管理预约订单,提升运营…

Centos7 ElasticSearch集群搭建

1. 服务器环境配置 1.1 配置hosts文件 3台服务器都要执行 vim /etc/hosts; # 将以下内容写入3台服务器hosts文件 192.168.226.148 es001 192.168.226.149 es002 192.168.226.150 es003 1.2 关闭防火墙 3台服务器都要执行 systemctl stop firewalld; systemctl disable…

【opencv】dnn示例-speech_recognition.cpp 使用DNN模块结合音频信号处理技术实现的英文语音识别...

模型下载地址: https://drive.google.com/drive/folders/1wLtxyao4ItAg8tt4Sb63zt6qXzhcQoR6 终端输出:(audio6.mp3 、audio10.mp3) [ERROR:00.002] global cap_ffmpeg_impl.hpp:1112 open VIDEOIO/FFMPEG: unsupported parameter…

# 从浅入深 学习 SpringCloud 微服务架构(一)基础知识

从浅入深 学习 SpringCloud 微服务架构(一)基础知识 1、系统架构演变: 1)单体应用架构。如电商项目。 用户管理、商品管理、订单管理,在一个模块里。 优点:开发简单,快速,适用于…

Mac下brew安装php7.4

这里作者挂了梯子,所以很流畅! brew的下载,可参考另外一篇博文~Homebrew 安装与卸载 1、将第三方仓库加入brew brew tap shivammathur/php2、安装指定版本的PHP brew install php7.43、替换Mac自带PHP环境并刷新环境变量 -> …

基于simulink的模拟锁相环和数字锁相环建模与对比仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 模拟锁相环(PLL)的基本原理 4.2 数字锁相环(DPLL)的基本原理 5.完整工程文件 1.课题概述 模拟锁相环和数字锁相环建模的simulink建模,对…

OpenHarmony UI动画-recyclerview_animators

简介 带有添加删除动画效果以及整体动画效果的list组件库 下载安装 ohpm install ohos/recyclerview-animatorsOpenHarmony ohpm 环境配置等更多内容,请参考如何安装OpenHarmony ohpm 包 使用说明 引入组件库 import { RecyclerView } from "ohos/recycler…

Qt/C++音视频开发70-无感切换通道/无缝切换播放视频/多通道流畅切换/不同视频打开无缝切换

一、前言 之前就写过这个方案,当时做的是ffmpeg内核版本,由于ffmpeg内核解析都是代码实现,所以无缝切换非常完美,看不到丝毫的中间切换过程,看起来就像是在一个通道画面中。其实这种切换只能说是取巧办法,…

排序算法之计数排序

目录 一、简介二、代码实现三、应用场景 一、简介 算法平均时间复杂度最好时间复杂度最坏时间复杂度空间复杂度排序方式稳定性计数排序O(nk )O(nk)O(nk)O(k)Out-place稳定 稳定:如果A原本在B前面,而AB,排序之后A仍然在B的前面; 不…

稀碎从零算法笔记Day52-LeetCode:从双倍数组中还原原数组

题型:数组、贪心 链接:2007. 从双倍数组中还原原数组 - 力扣(LeetCode) 来源:LeetCode 题目描述 一个整数数组 original 可以转变成一个 双倍 数组 changed ,转变方式为将 original 中每个元素 值乘以 …

记录ubuntu20.04安装nvidia-525.85.05显卡驱动(学习笔记2024.4.15、4.16)

电脑:华硕天选X2024 显卡:4060Ti i5-14400F 架构:x86_64 我需要使用Linux系统使用IsaacSim进行仿真,所以安装的都是IsaacSim中的推荐版本。 一.对新鲜的电脑进行分盘 电脑刚到手,900多个G全在C盘里,给它…

学习笔记(4月18日)vector底层模拟实现(1)

1.迭代器 vector实际上是由迭代器进行维护的,关于迭代器是什么,为什么要叫这个名字,后面的学习会逐渐了解,现在先将迭代器是作为指针即可。 vector底层有三个迭代器,用来起到容量、数组头、元素个数的作用。 同时为…

数字零售力航母-看微软如何重塑媒体

数字零售力航母-看微软如何重塑媒体 - 从2024全美广播协会展会看微软如何整合营销媒体AI技术和AI平台公司 2024年,微软公司联合英伟达总司,赞助全美广播协会展会。本次展会微软通过搭建一个由全面的合作伙伴生态系统支持的可信和安全的平台,…

RIP最短路实验(华为)

思科设备参考:RIP最短路实验(思科) 一,技术简介 RIP(Routing Information Protocol,路由信息协议)是一种基于距离矢量的内部网关协议,工作原理是每个路由器周期性地向邻居路由器发…

【网站项目】新生报到系统小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…