全网最细,Jmeter性能测试-入门级接口压测思路,一文打通...

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、压力测试重点关注点是什么?

1)先捋一下压测的目的是什么?

压测主要目的是结合当前服务资源以及当前环境配置基础下,对应用接口在不同压力场景下得出各指标结果是否满足实际应用需求【所以要优化性能指标的话,除从应用接口的代码逻辑和设计链路去优化的话,还需要结合环境的配置(例:连接数、队列值、jvm配置等)以及本身的物理资源去出发;能调到最合理的、最充分的利用率那就是性能大咖了】;

2)对“并发”名词说明

并发这个词在项目中很容易混淆,所以在此先讲解下这个词;
并发分为相对并发和绝对并发;
相对并发是指在一个时间段内发生的事务(可理解跟tps挂钩),绝对并发是指在同一时刻发生的事情(可理解为跟线程数挂钩,jmeter的“集合点”功能可以实现这种方式);
以下讲的并发都是依据绝对并发来说。

所以首先列下重点关注点,根据如下四点去判断压测是否达标通过:
TPS指标、响应时间、出错率、服务资源情况

下述分享个样例:
【测试结果】:
TPS拐点峰值:依据压测结果,在90并发时达到峰值(2277笔/s),而后续持续递增并发数后TPS呈平稳趋势,即保持峰值在2200左右;–【达到预期≥1557笔要求】

接口响应时间指标((以负载并发截图为准):依据tps峰值下进行并发,平均响应时间为63.83ms,95%百分位响应时间为92ms;–【达到预期≤100ms要求】

出错率:整个梯级压测过程中出现0.29%异常情况,经核查为环境XXXX问题受影响,非业务逻辑或资源问题,即忽略此错误率;–【达到预期99.9%成功率要求】

服务资源消耗:整体服务资源利用正常,内存及CPU利用平稳无异常情况;TPS下降时cpu正常对等下降,压测结束后资源也可正常释放;–【符合预期,详见报告链接】

3)先说下TPS指标方面

TPS是主要是为了测出拐点峰值,得出当前服务环境下最大的事务处理量(例如上述得出2277笔/s);

TPS峰值达标判断:需要结合本身实际要求(例如上述-结合实际生产要求得出不小于1557笔),那我峰值已经覆盖预期要求,那TPS指标就算满足达标了;

TPS峰值不满足或者需要达到更佳情况下:就要考虑怎么去调优了,主要方向:从业务代码方面优化、服务配置的优化、再到物理资源的提升;

额外说明:关于实际预期要求多少,这个是需要参考生产实际使用量有多少;目前普遍比较多的是有埋点功能,可以统计到调用量;

再结合有一定参考价值的二八原则计算(指80%的业务量在20%的时间里完成,另此公式不一定适合所有项目,具体需要结合每个系统项目应用场景);

4)响应时间指标

需结合要求衡量取哪个响应时间,一般主要关注平均值和95%分位值;
如果严谨一点的话可以以99%分位为准(这样情况下确保每个调用都能达标);

响应时间达标判断:首先先知道指标要求是多少,一般可以从产品经理那给出或者下游调用方超时设置值为参考,这些都算指标要求;

另这块一般都是和tps事务处理量 and 并行要求的(例如:上述相当于说在每秒tps不低于1557的时候,并且95%分位要小于100ms);

5)出错率

出错率也是一个重点关注项,如果都异常了肯定是不可接受的;
另对整体的指标可能要考虑是否有价值了,但这块肯定需要结合异常情况去分析,在给出结论(如在压测过程报错,有些业务层面上认为是合理的。但往往比较容易忽略,其实可能隐藏很大的性能问题)

注意点:当整体压测下出现小部分概率异常,这个需要自身衡量下指标是否有价值,因为那一小部分影响整体指标可能会很大(比如百分98都是在200毫秒左右,百分之二因为异常5毫秒就响应了,导致整体指标影响很大)

6)服务资源消耗

服务资源主要关注施压机(即请求方)和压力机(被请求方),施压机需要确保自身环境资源够满足(避免因自身请求方机器原因无法满足设置场景,导致未压出真实指标);

服务资源利用情况常规的需要重点关注下cpu(例如是互联网产品cpu使用率应该不能超50%,内部使用的一般80%;保证预期最大tps下,服务器还是很健康的)、内存(需要关注应用内存,如jvm的内存变化,只关注服务器内存意义不大),磁盘读写、网络接收发送 -->>各资源消耗不合理的变化或者有较大的异常波动需要再结合分析;

这块服务监听的工具还是很多的,jmeter插件的探针工具也有的,虽然不是很强大,勉强能用【插件下载1:jmeter-PerfMon服务监听;服务资源探针2:Stepping Thread Group】

2、压力测试怎么做?(以TPS为例)

常规的压测大家基本都会做,这里讲下另一种压测方式,既通过梯度增压方式去找出核心指标:TPS峰值

在jmeter中,可以利用【插件下载:Stepping Thread Group】来做到递增压测,直接在一次线程组中找出TPS峰值(详解如下图)

A1

1)配置思路

①上述第一点–>最高并发值:可预估一个较高的并发值,确保在最高并发值内找出tps峰值(如果在此预估配置下未找到tps拐点,需设置更大值);

②上述第二点–>持续增压(高度):递增的并发数值需要更准确一点的话,建议设置以最高并发值5-10%区间递增(此处主要避免在递增爬坡的时候出来了tps拐点峰值);

③上述第三点–>恒定并发量时间(长度):此处的设置长度(即时长),如果确保要精确些可以设置时间久一点(这里的设置时长:确保tps是趋向平稳状态,如非平稳状态需设置更长或者可能需要考虑其他因素)

TPS效果参考图【插件下载:Transactions per Second】

A2

①确保已经到tps峰值判别:即tps是曲线是横向状态(停止继续上升了)或者tps拐点往下走;

②tps峰值横向一段时间的解释:到峰值时是在现状资源环境下,可最大处理事务量;横向是后续持续增加处于最大队列内,此时段响应时间相对而言增加会更大(每个服务系统不一样,具体需要对应分析);

附上-响应时间插件【插件下载:ResponseTimesOverTime】

A3

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

困难是通往成功的必经之路,坚持不懈,终将闯过风雨,绽放出属于自己的辉煌。在奋斗的道路上,每一步都是成长,每一次努力都是收获。

在人生的舞台上,拥抱挑战,追求卓越。不畏困难,不怕失败,只有坚持奋斗,才能绽放出内心的光芒,创造属于自己的辉煌人生。相信自己,勇往直前!

勇敢地追逐梦想,即使路途坎坷,也要坚持不懈。只有用汗水和努力铸就的成功才更有价值,只有实现梦想的人生才更加充实精彩!

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

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

相关文章

Nodejs 第三十章(防盗链)

防盗链(Hotlinking)是指在网页或其他网络资源中,通过直接链接到其他网站上的图片、视频或其他媒体文件,从而显示在自己的网页上。这种行为通常会给被链接的网站带来额外的带宽消耗和资源浪费,而且可能侵犯了原始网站的…

整数比较1 C语言xdoj93

描述: 编写程序,对于从键盘输入的2个整数,先输出较大者的个位数字,然后输出较小者的平方值。 输入说明: 输入的两个整数之间以一个空格分隔。 输出说明: 在一行上输出两个整数,整数之间以一个空…

将qt程序注册成服务

将qt程序注册成服务 1、qt服务模块管理下载 qt-solutions 2、QtService项目 2.1、将qtservice拷贝到项目代码路径 2.2、实现服务管理 PS&#xff1a;响应服务的启停 CustomService.h #include <QCoreApplication> #include "qtservice.h"class CustomSer…

上市公司-客户、供应商集中度(2000-2022年)

参考《中国工业经济》中吴安兵&#xff08;2023&#xff09;、《上海财经大学学报》中邱保印&#xff08;2023&#xff09;的做法&#xff0c;以客户集中度和供应商集中度之和衡量企业供应链集中度 其中客户集中度以前五名客户产生的营业收入占比衡量&#xff0c;供应商集中度…

好物设计- 实现区域图片变化自动截图

工具–Py即可 重点怎么获取窗口句柄? 使用 spyxx 可以获得句柄 (相当一个窗口的ID,无论窗口怎么变化ID不变我们都可以找到该窗口的详细信息) 替换句柄就可以,也可以不用句柄之间改截图区域 实战图片 import pygetwindow as gw import pyautogui import time import numpy a…

工业交换机之间Profinet无线以太网通信

在实际应用中&#xff0c;车间里控制柜内会有PLC、伺服电机、变频器等设备同时与触摸屏做数据交互&#xff0c;这些设备一般通过工业交换机进行数据组网。总控室内的PC组态软件往往需要采集到&#xff0c;车间内各部分触摸屏、PLC、变频器等设备信号&#xff0c;此时往往是工业…

当代大学生应该如何学习计算机科学

我相信&#xff0c;看到这个标题并且愿意阅读往下阅读的你&#xff0c;一定是正在学习计算机&#xff0c;而自己感到迷茫&#xff0c;或者你还真在考虑要不要学习计算机科学&#xff0c;再或者你是想学计算机而不知道到底该怎么去学的&#xff0c;好&#xff0c;既然你是榜上有…

ssm基于JAVA的校园综合服务系统论文

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…

代码随想录第三十六天(一刷C语言)|背包问题理论基础分割等和子集

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、背包问题 题目&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装…

【C#】.net core 6.0 通过依赖注入注册和使用上下文服务

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 请求上下文是指在 Web 应用程序中处理请求时&#xff0c;包含有关当前请求的各种信息的对象。这些信息包括请求的头部、身体、查询字符串、路由数据、用户身份验证信息以及其他与请求相关…

Android 自动适配屏幕方案—— smallestWidth

smallestWidth限定符适配原理和屏幕分辨率限定符适配一样&#xff0c;都是通过创建多个values文件夹&#xff0c;系统根据限定符去寻找对应的dimens.xml文件&#xff0c;以确定不同设备上的大小展示&#xff0c;smallestWidth 限定符适配是拿 dp 值来等比缩放. 如何使用 一、…

低代码和纯代码:双向奔赴,共创未来ing……

低代码开发是近年来迅速崛起的软件开发方法&#xff0c;让编写应用程序变得更快、更简单。有人说它是美味的膳食&#xff0c;让开发过程高效而满足&#xff0c;但也有人质疑它是垃圾食品&#xff0c;缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢&#xff0c;…

如何快速优化大数据量订单表

场景 本篇分享以前在广州一家互联网公司工作时遇到的状况及解决方案,这家公司有一个项目是SOA的架构,这个架构那几年是很流行的,哪怕是现在依然认为这个理念在当时比较先进。 当时的项目背景大概是这样,这家公司用的是某软提供的方案,项目已经运行3年多,整体稳定。 数据…

轴具匠心 SIA上海轴承展带您开启轴承之旅

轴承是各类机械装备的重要基础零部件&#xff0c;它的精度、性能、寿命和可靠性对主机的工作效率、使用寿命起着决定性的作用。随着市场的发展&#xff0c;用户对轴承产品的精度、性能、种类等方面的要求越来越高&#xff0c;市场对高档轴承的需求也在不断增加。 由中国设备管理…

Android中EventBus的简单使用

目录 介绍 EventBus产生的背景 EventBus工作流程图解 EventBus的优势 EventBus缺点 EventBus 的一些关键概念和用法&#xff1a; 使用 EventBus 的基本流程&#xff1a; EventBus环境配置 EventBus的五种线程模式 EventBus的使用 EventBus事件三部曲 创建一个事件类…

SE-Net:Squeeze-and-Excitation Networks(CVPR2018)

文章目录 AbstractIntroduction表征的重要性以前的方向本文提出 Related WorkDeeper ArchitectureAlgorithmic Architecture SearchAttention and gating mechanisms Squeeze-and-Excitation BlocksSqueeze: Global Information EmbeddingExcitation: Adaptive RecalibrationIn…

ssm基于vue的厨房管理系统论文

摘 要 使用旧方法对厨房管理信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在厨房管理信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的厨房管理系统管…

【Python-批量修改视频分辨率】

Python-批量修改视频分辨率 1 使用Python修改视频分辨率2 常见的视频编码格式2.1 等效的编码格式表示方式2.2 常见的编码格式 1 使用Python修改视频分辨率 首先拷贝视频文件并修改后缀&#xff0c;然后修改图片的分辨率&#xff0c;实现视频批量修改和转换。 import os impor…

自定义注解实现 后台系统-记录日志功能

文章目录 1 记录日志1.1 记录日志的意义1.2 日志数据表结构1.3 记录日志思想1.4 切面类环境搭建1.4.1 日志模块创建1.4.2 自定义Log注解1.4.3 OperatorType1.4.4 LogAspect1.4.5 EnableLogAspect1.4.6 测试日志切面类 1.5 保存日志数据1.5.1 SysOperLog1.5.2 LogAspect1.5.3 As…

【教程】cocos2dx资源加密混淆方案详解

1,加密,采用blowfish或其他 2,自定是32个字符的混淆code 3,对文件做blowfish加密,入口文件加密前将混淆code按约定格式(自定义的文件头或文件尾部)写入到文件 4,遍历资源目录,对每个文件做md5混淆,混淆原始串“相对路径”“文件名”混淆code, 文件改名并且移动到资源目录根…