全网最火爆,性能测试基本原则方法总结,再不卷就被淘汰了...

news2024/11/17 7:49:18

目录:导读

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


前言

性能测试关键点

评估性能指标——线程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占用情况,接口吞吐量(Grafana是普罗米修斯的简化版)。

Linux系统
内存;
换页swap空间;

free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,used percent is "$3/$2*100"%"}'            

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

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

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

怎么做性能优化?

1、最简单的加线程,进程。
2、数据库层面,加索引,加缓存,一些机算上的结果缓存,表数据太多,分表,sql优化。
3、在有IO(网络IO,磁盘IO)的时候,批量读,写,合并网络请求,减少与单点的交互。
4、代码更高效的实现,改运算逻辑,如本来以账户维度计算金额,改成以产品维度去计算。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一份努力都会有回报,坚定自己的目标,不断前行,才能让生命更加辉煌。不要被困境压垮,勇敢地迎接挑战,成功就在前方等待着你。记住,只有放弃才是最终的失败!

只有勇往直前,才能看到成功的曙光;只有不断努力,才能实现自己的梦想;只有坚持不懈,才能创造一个更美好的未来。让我们一起努力,向着更高的目标不断迈进!

你的人生只有一次,不要让懒惰和恐惧阻碍你前进的步伐。做自己想做的事情,为自己的梦想而奋斗,要相信自己的能力,不断挑战自己,才能成就非凡的人生。

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

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

相关文章

2023 年牛客网最新版大厂 Java 八股文面试题总结(覆盖所有面试题考点)

序员真的是需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了。 金九银十跳槽季,这是一个千年不变的话题,每到这个时候,很多人都会临阵磨枪,相信不快也光。于是,大家…

什么是Vue的数据流(单向数据流)?如何进行数据流管理

什么是Vue的数据流(单向数据流)?如何进行数据流管理 在Vue中,数据流是指数据的传递和管理方式。Vue采用的是单向数据流,也就是说,数据是从父组件流向子组件,子组件不能直接修改父组件的数据。本…

夏季来临居民如何预防电气火灾隐患

安科瑞虞佳豪 居住场所预防电气火患 请注意以下几点 1.用具有生产许可证或CCC证书并与居住场所的环境相适应的电气线路以及插座、插线板、充电器、用电设备等电器产品; 2.不私自拉接电气线路;不随意更改电气线路保护装置; 3.不随意更换原…

泛娱乐社交(一)直播产品商业化解决方案

摘要 在过去几年的直播行业创业风口期中,直播的用户关注度疯狂增长,但用户质量却参差不齐。随着用户新鲜感一过,流失率变得相当严重,各大平台都在竭尽全力防御。然而,留住“凑热闹”的非直播受众用户并不是最关键的问…

SpringBoot(基础篇)

SpringBoot基础篇 入门案例 在创建SpringBoot项目时,会出现以下不需要的文件,如果每次都手动删除的话,就会很麻烦。 教你一招 在setting设置中找到Editor,选择File Types–>Ignored Files and Folders–>点击号&#xff…

pycharm使用之torch_geometric安装

正式安装之前要先查看一下torch的版本 一、查看torch版本 1、winR ,输入cmd 2、输入python 3、 输入import torch,然后输入torch.__version__,最后回车 可以看到我的torch版本是1.10.0 二、下载合适的版本 1、打开链接 https://pytorch-…

千万级入口服务[Gateway]框架设计(一)

本文将以技术调研模式编写,非技术同学可跳过。 文章目录 背景问题[不涉及具体业务]目标技术选型语言框架模式实现一:go 原生组件Demo 实现Benchwork 基准性能小结实现二:开源 go-plugin 附录入口服务演变 背景 在历史架构的迭代中&#xff…

Elasticsearch:部署 ELSER - Elastic Learned Sparse EncoderR

警告:此功能处于技术预览阶段,可能会在未来的版本中更改或删除。 Elastic 将尽最大努力修复任何问题,但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 Elastic Learned Sparse EncodeR - 或 ELSER - 是由 Elastic 训练的检索模型&#…

Python程序员必会技能:如何在Python中连接数据库获取数据

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 想要成为一名数据分析师,一个最基础的技能就是:提取数据。 数据是数据分析的基础。 因此,掌握各种获取数据的技能一定是一个合格的数据分析师的必备技能。 而我们的需要进行提取的…

总结排查服务器上传下载慢的几种手段与查看服务器带宽的具体方法

一、排查服务器上传下载 最近出现的一个情况,服务器上传和下载比较慢,因此我排查了种种手段,特此记录下几种常见的手段。 1、使用speedtest-cli 测试网速: 该方法是测试网速的速度怎么样,看看是否真的慢? …

python中os库用法详解(总结)

os库主要是对文件和文件夹进行操作,在Python中对⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能。 具体步骤如下: 1. 导⼊os模块 import os 2. 使⽤ os 模块相关功能 os.函数名() 1、⽂件重命名 os.rename(⽬标⽂件名, 新⽂件名) 示例代码&#…

使用Docker从0开始在Linuex部署springboot项目(图文并茂)

一、前言 在腾讯云新买的洁白如新的云服务器,想要使用docker去部署springboot项目,特此记录! 二、安装jdk 参考博客:https://blog.csdn.net/weixin_45853881/article/details/123402891 2.1 检查jdk 直接在腾讯云平台登陆云服…

软件测试进阶知识 —— 自动化测试总结

自动化测试 自动化测试的定义:使用一种自动化测试工具来验证各种软件测试的需求,它包括测试活动的管理与实施、测试脚本的开发与执行。 自动化测试只是测试工作的一部分,是对手工测试的一种补充; 自动化测试绝不能代替手工测试;多数情况下&a…

怎样高效率备考PMP

一方面由于这些考试的知识,在准备考试前我们大部分很少接触,大部分人考试的目的也未必是感兴趣,更多是因为考试结果能给我们带来的收益。因此长时间的学习不熟悉甚至不感兴趣的很容易疲倦,这不像我们工作或生活中的一些技能&#…

怎样用U盘重装Win10系统?用U盘重装Win10系统教程

怎样用U盘重装Win10系统?有些新手用户在问怎样用U盘才能完成Win10系统的重装,这时候用户需要准备一个U盘、一个能够正常联网的电脑,然后按照以下分享的用U盘重装Win10系统教程操作,就能轻轻松松完成Win10系统的重装。 准备工作&am…

482576-74-9,Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH,肽链中可以糖基化的主要是Ser和Thr

【产品描述】 Fmoc-Thr(Ac4Manα1-2Ac3Manα1-2Ac3Manα)-OH(CAS:482576-74-9)中肽链中可以糖基化的主要是Ser和Thr,此外还有酪氨酸、羟赖氨酸和羟脯氨酸糖基化修饰的糖肽,链接的位点是这些残基侧链上的羟基氧原子。连接的糖为半乳…

Element常用组件之 表单组件 form

1. 建立form.vue <template><el-form ref"form" :model"form" label-width"80px"><el-form-item label"活动名称"><el-input v-model"form.name"></el-input></el-form-item><el-f…

Pandas的窗口函数rolling和expanding用法说明

Pandas的窗口函数rolling和expanding 1、rolling 移动窗口 rolling() 移动窗口函数&#xff0c;它可以与 mean、count、sum、median、std 等聚合函数一起使用。为了使用方便&#xff0c;Pandas 为移动函数定义了专门的方法聚合方法&#xff0c;比如 rolling_mean()、rolling_…

ArduPilot之H743自动PID调节

ArduPilot之H743自动PID调节 1. 源由2. 涉及参数2.1 AUTOTUNE_*2.2 RCx_OPTION 3. 自动校准3.1 预准备3.2 参数配置3.3 操作步骤 4. 实操&总结5. 参考资料6. 补充视频 1. 源由 ArduCopter可以自动通过算法来对PID进行调优&#xff0c;不过这里有个前提是模型噪声要比较少。…

Mysql数据库的初体验

数据库管理系统是一个由因相互关联的数据的集合和一组用访问这些数据的程序组成&#xff0c;这个数据集合通常称作数据库&#xff0c;其中包含了关于某个企业的信息。DBMS的主要目标就是提供一种可以方便高效的存取数据库信息的途径。 一、数据库的基本概念 1.数据库的组成 ①…