干G货,性能测试基本方法和原则,

news2025/4/25 21:49:02

 

一、性能测试关键点
  • 评估性能指标——线程tps(可架构给)
    吞吐量qps(可架构给)
    错误率(可架构给)
    平均响应时间(可架构给)
  • 模拟线上数据量
  • 了解接口有没有缓存,有缓存的需要设计
    每次调接口获取的是不一样的数据
二、如何评估需要测试的接口线程数?
  • 针对老项目:
    • 系统里查看过去一周(或者一个月)内,接口调用量最高的那一天,然后
      再找到当天中接口调用量最高的时间点(分钟级别),比如说是在12:10调
      用量为10000,那么我们再换算每秒调用量10000/60=166,因此可以确定
      这个接口tps只要达到166即可满足
  • 针对新项目:
    • 二八定律的算法为 80%的请求 / 20%的时间 * 冗余系数(冗余系数一般
      为2-5之间,一般可取3)如金融股票交易app,一般是早上9点到下午3点,
      76060=25200秒,注册用户1000万,日活差不多100w,80%=80w,
      80w/25200*3=95.接口吞吐量是95即可满足
三、压测实际操作

当确定吞吐量指标,根据指标去压对应的接口:
1、压测设置参数:添加线程组,线程数=用户数/10;ramp-up period多少秒内启动所有线程,默认一般是1秒,0就是立即全部启动;循环次数一般写永远,压测个10-30分钟,看报告

2、聚合报告:Samples发出的请求数、Average单个Request的平均响应时间(ms)、error错误率、Throughput简称tps,吞吐量,每秒处理的请求数。

3、写接口,如果多个接口添加正则表达式,上下接口串联

4、关联数据库,cmd运行: jmeter logFile -o reportPath得到报告

性能测试指标对应压测方法:
吞吐量的预估值=考虑用什么方法去进行压测

  • 500以下 JM 注:接口吞吐指标在500以下,JM就能满足
  • 500-5000 JM分布式或者LR
  • 5000以上 中控+多机部署
  • JM分布式:JM上配置参数接口,jenkins配置多台服务器,一台控制机,多台负载机,控制机的密钥加到负载机中;
  • JM+Grafana+Influxdb监控性能参数,内存,cpu占用情况,接口吞吐量
  • Linux系统
  • 内存
  • 换页swap空间
 
  1. free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,

  2. used percent is "$3/$2*100"%"}'

四、接口的性能瓶颈怎么查看?

随着tps越来越高,如何评估接口性能qps指标:

  • 软硬件的资源利用情况会越来越高,直到满负载(内存,cpu占用情况)
  • 吞吐量会不断变高,直到达到峰值,下降或企稳
  • 响应时间会慢慢变高,超过吞吐量峰值,响应时间曲线会急剧拉升(因
    硬件资源满负载,软件接口无法处理超+ 高并发,接口处理速度最后会急剧变慢)

所以:性能指标是吞吐量最高的那个值,响应时间缓慢拉升到急剧拉升的拐点,硬件
           资源最大,这三者的坐标区域中间,就是性能峰值

五、怎么做性能优化?

1、最简单的加线程,进程

2、数据库层面,加索引,加缓存,一些机算上的结果缓存,
      表数据太多,分表,sql优化

3、在有IO(网络IO,磁盘IO)的时候,批量读,写,合并
      网络请求,减少与单点的交互

4、代码更高效的实现,改运算逻辑,如本来以账户维度计
      算金额,改成以产品维度去计算

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

同三维T80005EHS-4K60 4K60 HDMI/SDI编码器

1路4K60 HDMI或12G SDI输入,2路3.5MM音频输入,对应HDMI或SDI,1个USB口和1个SD卡槽,可录像到U盘/移动硬盘/SSD硬盘/TF卡 产品简介: 同三维T80005EHS-4K60 4K60HDMI/SDI H.265编码器采用最新高效H.265高清数字视频压缩…

CV预测:快速使用ResNet深度残差神经网络并创建自己的训练集

AI预测相关目录 AI预测流程,包括ETL、算法策略、算法模型、模型评估、可视化等相关内容 最好有基础的python算法预测经验 EEMD策略及踩坑VMD-CNN-LSTM时序预测对双向LSTM等模型添加自注意力机制K折叠交叉验证optuna超参数优化框架多任务学习-模型融合策略Transform…

基于hispark_taurus开发板示例学习OpenHarmony编译构建系统(2)

3、hispark_taurus产品解决方案-Vendor 产品解决方案为基于开发板的完整产品,主要包含产品对OS的适配、组件拼装配置、启动配置和文件系统配置等。产品解决方案的源码路径规则为:vendor/{产品解决方案厂商}/{产品名称}_。_产品解决方案也是一个特殊的组…

Sentence Transformers x SwanLab:可视化Embedding训练

Sentence Transformers(又名SBERT)是访问、使用和训练文本和图像嵌入(Embedding)模型的Python库。 你可以使用Sentence Transformers快速进行模型训练,同时使用SwanLab进行实验跟踪与可视化。 1. 引入SwanLabCallback from swanlab.integra…

【Hachker News】如果你不需要钱,你会干什么?

Hachker News上的一个问题,标题是“如果你不需要钱,你会做什么?” 回答摘要 问题链接:What would you spend your time working on if you didn’t need money? A1: 我会把时间投入到城市周围的农村地区&#xff0c…

快慢指针在字符串中的应用-443. 压缩字符串

题目链接及描述 443. 压缩字符串 - 力扣(LeetCode) 题目分析 这个题目总体不算太难,如果之前接触过双指针(快慢指针)的话,比较好做。题目可以理解为计算数组中对应各个连续字符出现的次数,并将…

工控机与普通电脑的区别对于工业自动化应用至关重要

商用计算机和工业计算机之间的相似之处可能多于差异之处。工业电脑利用了消费技术领域的许多进步,但增加了工业应用所必需的软件、编程、确定性和连接性。 专业人士表示:“从增加内存到摩尔定律所描述的处理能力的指数级增长,工业控制必将受…

【iOS】KVO相关总结

目录 1. 什么是KVO?2. KVO的基本使用3. KVO的进阶使用observationInfo属性context 的使用KVO触发监听方法的方式自动触发手动触发 KVO新旧值相等时不触发KVO的从属关系一对一关系一对多关系 4. KVO使用注意5. KVO本质原理分析伪代码保留伪代码下的类并编译运行对比添…

QT信号与槽/窗口组件优化

使用手动连接,将登录框中的取消按钮使用第二中连接方式,右击转到槽,在该槽函数中,调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中,在槽函数中判断u界面上输入的账号是否为"admin",…

前缀和算法:算法秘籍下的数据预言家

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一. 前缀和算法的介绍 二、前缀和例题 2.1 【模版】前缀和 2.2 【模板】二维前缀和 2.3 寻找数组的中间下标 2.4 除自身以外数组的乘积 2.5 和为k的子数组 2.6 和可被k整除的子数组 2.7 …

如何将NextJs中的File docx保存到Prisma ORM

背景/引言 在现代 Web 开发中,Next.js 是一个备受欢迎的 React 框架,它具有许多优点,如: 服务器端渲染 (SSR):Next.js 支持服务器端渲染,可以提高页面加载速度,改善 SEO,并提供更好…

【AI工具】jupyter notebook和jupyterlab对比和安装

简单说,jupyterlab是jupyter notebook的下一代。 选择安装一个即可。 一、这里是AI对比介绍 Jupyter Notebook和JupyterLab都是基于Jupyter内核的交互式计算环境,但它们在设计和功能上有一些关键的区别: 用户界面: Jupyter Not…

关于对pagination.js源代码进行修改且引入项目使用

实现效果 使用定时器对组件进行每秒请求&#xff0c;每过固定时间之后&#xff0c;进行下一页项目请求&#xff0c;进行到最后一页请求的时候返回第一页。 首先引入js插件 <script src"./js/pagination.js" type"text/javascript"></script>…

粉丝经济时代:微信订阅号如何助力中小企业增长

在数字化浪潮席卷全球的今天&#xff0c;微信订阅号凭借其独特的优势&#xff0c;成为了中小企业数字化出海的重要工具。作为NetFarmer&#xff0c;我们致力于帮助企业充分利用这一平台&#xff0c;推动业务发展和市场拓展。今天将深入探讨微信订阅号的概念、用途、使用方法、适…

若依修改浏览器标题logo

在线生成透明ICO图标——ICO图标制作https://www.ico51.cn/

使用ZIP包安装MySQL及配置教程

在本教程中&#xff0c;我们将指导您完成使用ZIP包安装MySQL的过程&#xff0c;并对配置文件进行必要的修改&#xff0c;以及解决可能遇到的问题。本示例以MySQL 5.7.44为例&#xff0c;但步骤同样适用于其他版本如MySQL 8.3.0等。请根据实际需要选择适合的版本下载&#xff1a…

【机器学习】神经网络与深度学习:探索智能计算的前沿

前沿 神经网络&#xff1a;模拟人类神经系统的计算模型 基本概念 神经网络&#xff0c;又称人工神经网络&#xff08;ANN, Artificial Neural Network&#xff09;&#xff0c;是一种模拟人类神经系统结构和功能的计算模型。它由大量神经元&#xff08;节点&#xff09;相互连…

报表生成中,左连接、内连接区别与应用

在报表生成中,最常用的连接类型包括:内连接(INNER JOIN)、左连接(LEFT JOIN)。以下是这些连接的简要介绍及其在报表中的应用场景: 左连接 左连接返回左表中的所有记录,以及右表中与左表匹配的记录。如果右表中没有匹配的记录,则右表中的字段值为NULL。 应用场景: …

汽车油耗NEDC与WLTP有什么区别?以及MATLAB/Simulink的汽车行驶工况仿真

最近的热点新闻非比亚迪的秦L莫属&#xff0c;其油耗达到2.9L/100km&#xff0c;但其标注为NEDC也引起了讨论&#xff0c; NEDC与WLTP的区别 NEDC的全称为“New European Driving Cycle”&#xff0c;即“新欧洲驾驶循环”。这种油耗测试标准起源于上世纪80年代&#xff0c;主…

Visual Studio Code远程linux计算云

一、前置条件 本机安装Visual Studio Code 打开Vscode时建议使用管理员权限打开&#xff0c;在这之前遇到了一些报错。 二、开始远程连接计算云 安装插件remote-ssh 2.点击远程资源管理器&#xff0c;之后在SSH这行的右侧&#xff0c;点击“”号&#xff0c;去新建远程 3.在窗…