资深老鸟经验,性能测试-性能指标分析总结,一篇策底概全...

news2024/12/22 17:04:19

目录:导读

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


前言

性能测试指标

1、QPS,每秒查询

QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。(每秒钟处理完的请求次数,注意这里是处理完)

2、TPS,每秒事务

TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。

客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;
但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。
如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

3、RT,响应时间

TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。

一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。

QPS vs TPS:QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。

如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

4、并发数

并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。

5、吞吐量

系统的吞吐量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。

单个request 对CPU消耗越高,外部系统接口、IO速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间。

QPS(TPS):(Query Per Second)每秒钟request/事务 数量
并发数:系统同时处理的request/事务数
响应时间:一般取平均响应时间

理解了上面三个要素的意义之后,就能推算出它们之间的关系:
QPS(TPS)= 并发数/平均响应时间
并发数 = QPS*平均响应时间

6、QPS,每秒查询

我们通过一个实例来把上面几个概念串起来理解。按二八定律来看,如果每天 80% 的访问集中在 20% 的时间里,这 20%时间就叫做峰值时间。

公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)
机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

1)每天300w PV 的在单台机器上,这台机器需要多少QPS?
( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)

2)如果一台机器的QPS是58,需要几台机器来支持?
139 / 58 = 3

7、最佳线程数、QPS、RT

1)单线程QPS公式:QPS=1000ms/RT
对同一个系统而言,支持的线程数越多,QPS越高。假设一个RT是80ms,则可以很容易的计算出QPS,QPS = 1000/80 = 12.5

多线程场景,如果把服务端的线程数提升到2,那么整个系统的QPS则为 2*(1000/80) = 25,可见QPS随着线程的增加而线性增长,那QPS上不去就加线程呗,听起来很有道理,公司也说的通,但是往往现实并非如此。

2)QPS和RT的真实关系
我们想象的QPS、RT关系是随着RT的逐渐增大,QPS逐渐降低的凹曲线
实际的QPS、RT关系是随着RT的逐渐增大,QPS逐渐降低的凸曲线

3)最佳线程数量
刚好消耗完服务器的瓶颈资源的临界线程数,公式如下

最佳线程数量=((线程等待时间+线程cpu时间)/线程cpu时间)* cpu数量

特性:

在达到最佳线程数的时候,线程数量继续递增,则QPS不变,而响应时间变长,持续递增线程数量,则QPS开始下降。

每个系统都有其最佳线程数量,但是不同状态下,最佳线程数量是会变化的。

瓶颈资源可以是CPU,可以是内存,可以是锁资源,IO资源:超过最佳线程数-导致资源的竞争,超过最佳线程数-响应时间递增。

互联网的数据术语

1、VV

来访次数/访问次数(VV):VV = VisitView(访问次数):记录所有访客1天内访问了多少次你的网站,相同的访客有可能多次访问您的网站。

从访客来到您网站到最终关闭网站的所有页面离开,计为1次访问。若访客连续30分钟没有新开和刷新页面,或者访客关闭了浏览器,则被计算为本次访问结束。

那么上图A就是从搜索词“宫外孕有什么症状”进入网站的访问次数329.

2、UV

UV (unique visitor )即独立访客数,指访问某个站点或点击某个网页的不同 IP 地址的人数。

在同一天内,UV 只记录第一次进入网站的具有独立IP 的访问者,在同一天内再次访问该网站则不计数。UV 提供了一定时间内不同观众数量的统计指标,而没有反应出网站的全面活动。

3、PV

PV 即页面浏览量或点击量,是衡量一个网站或网页用户访问量。具体的说,PV 值就是所有访问者在 24 小时(0 点到 24 点)内看了某个网站多少个页面或某个网页多少次。

PV 是指页面刷新的次数,每一次页面刷新,就算做一次 PV 流量。度量方法就是从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个网页(Page)发送给浏览器,从而产生了一个 PV。

那么在这里只要是这个请求发送给了浏览器,无论这个页面是否完全打开(下载完成),那么都是应当计为 1 个 PV。

4、IP

独立IP数:1天(00:00-24:00)之内,访问网站的不重复IP数。一天内相同IP地址多次访问网站只被计算1次。同一IP无论访问了几个页面,独立IP数均为1访问次数,

性能测试影响因素

1、响应时间

响应时间:对请求作出相应所需要的时间
网络传输时间:N1+N2+N3+N4
应用服务器处理时间:A1+A3
数据库服务器处理时间:A2

响应时间:N1+N2+N3+N4+A1+A3+A2

2、并发用户数的计算公式

系统用户数:系统额定的用户数量
同时在线用户数:在一定时间范围内,最大的同时在线用户数量

平均并发用户数的计算:C = nl/T

其中,C是平均的并发用户数,n是平均每天访问用户数(login session),L是一天内用户从登录到退出的平均时间(login session)的平均时间,T是考察时间长度(一天内多长时间用户使用系统)

并发用户数峰值计算:C^约等于C+3*√C

其中C^是并发用户峰值,C是平均并发用户数,该公式遵循泊松分布理论

3、吞吐量计算公式

当没有遇到性能瓶颈的时候,吞吐量与虚拟用户数之间存在一定的联系,可以采用以下公式计算:F=VU*R/T

其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T代表性能测试所用的时间

4、性能计数器

资源利用率:指系统各种资源的使用情况,如CPU占用率为68%,内存占用率55%,一般使用“资源实际使用/总的资源可用量,形成资源利用率

性能计数器是描述服务器或操作系统性能的一些数据指标

5、思考时间的计算公式

Think Time,从业务角度来看,这个时间指用户进行操作时每个请求之间的时间间隔,而在做性能测试的时候,为了模拟这样的时间间隔,引入了思考时间这个概念,来更加真实的模拟用户的操作。

在吞吐量这个公式中,(F=VU*R/T)说明吞吐量F是VU数量、每个用户发出的请求数R和时间T的函数,而其中的R又可以用时间T和用户思考时间TS来计算:R=T/TS

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在人生的舞台上,每一次努力都是一次蜕变,每一份坚持都是一份成长,让梦想的火焰燃烧心灵,奋斗的足迹绘就辉煌的篇章。

在漫长的人生旅途中,只有奋斗才能点亮前行的灯塔,只有勇敢才能驱散迷茫的阴霾,让激情和毅力交织,成就不可思议的辉煌。

在逆境中磨砺意志,在挑战中超越自我,每一次坚持都是向成功迈出的关键一步,梦想的道路上,奋斗不息,终将绽放出绚丽的花朵。

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

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

相关文章

【微服务】分布式调度框架PowerJob使用详解

目录 一、前言 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 2.2 定时任务调度使用场景 三、PowerJob 介绍 3.1 PowerJob 概述 3.2 PowerJob 功能特性 3.3 PowerJob 应用场景 3.4 PowerJob 与其他同类产品对比 四、PowerJob 部署 4.1 PowerJob 架构 4.…

微信小程序Skyline模式自定义tab组件胶囊与原生胶囊平齐,安卓和ios均自适应

进入下面小程序可以体验效果&#xff1a; 至于原理的话&#xff0c;解释起来毕竟麻烦&#xff0c;各位可以看源码自己分析。其实很简单&#xff0c;就算计算布局。很多网上公布的布局&#xff0c;都不能正常自适应。在下这个是完美可以的 1、WXML <view class"weui…

Flask学习(四):路由转换器

默认的路由转换器&#xff1a; string &#xff08;缺省值&#xff09; 接受任何不包含斜杠的文本int接受正整数float接受正浮点数 path类似 string&#xff0c;但可以包含斜杠uuid接受 UUID 字符串 代码示例&#xff1a; app.route(/user/<username>) def show_u…

【Jetson Nano】jetson Nano安装pytorch and torchvision

Pytorch是著名的人工智能框架&#xff0c;在部署人工智能项目的时候&#xff0c;就需要在嵌入式开发板上安装pytorch&#xff0c;下面就详解介绍关于安装pytorch的步骤 1.更换apt源 首先检查apt源是否已经是国内镜像源 输入&#xff1a; sudo apt-get update如果不是国内镜像…

[Python初阶]2255.统计是给定字符串前缀的字符串数目

目录 2255.统计是给定字符串前缀的字符串数目 ①.题目 ②.问题分析 ③.startswith()方法理解 与 说明 Ⅰ.定义和用法 Ⅱ.语法 ④.问题解决 ⑤总结 2255.统计是给定字符串前缀的字符串数目 ①.题目 ②.问题分析 需求:统计列表words中,是字符串s的前缀的字符串的数目. 解…

FMR-NET:一种用于弱光图像增强的快速多尺度残差网络

这是本人发表的第二篇文章&#xff0c;目前已经见刊。欢迎大家引用。 文章链接&#xff1a;FMR-Net: a fast multi-scale residual network for low-light image enhancement | Multimedia Systems (springer.com) 代码链接&#xff1a;Github CSDN 这篇文章的特色在于&…

1、鸿蒙学习-为应用/服务进行签名

针对应用/服务的签名&#xff0c;DevEco Studio为开发者提供了自动签名方案&#xff0c;帮助开发者高效进行调试。也可选择手动方式对应用/服务进行签名&#xff0c;如果使用了需要ACL的权限&#xff0c;需采用手动方式进行签名。 自动签名 说明 使用自动签名前&#xff0c;请…

碳素光线疗法与中医

看得见的穴位碳素光线疗法 最近日本的医疗随着科学技术的发达&#xff0c;在基础研究、临床各领域取得了显著的发展。日本人的平均寿命比战前大幅延长&#xff0c;结核及其他疑难杂症、癌症等疾病也在逐渐被压制。其中&#xff0c;作为癌症的辅助疗法&#xff0c;日本癌症学会等…

【Docker】一文趣谈Docker

&#x1f3e1;浩泽学编程&#xff1a;个人主页 &#x1f525; 推荐专栏&#xff1a;《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 &#x1f6f8;学无止境&#xff0c;不骄不躁&#xff0c;知行合一 文章目录 …

[MySQL]数据库基础

文章目录 1.连接服务器2.理解mysql3.初见数据库4.主流数据库5.服务器&#xff0c;数据库&#xff0c;表关系6.数据逻辑存储7.MySQL架构8.SQL分类9.存储引擎 1.连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -p -h&#xff1a;指明登录部署mysql服务的主机。没有写 -h 127.0.…

Unity WebGL服务器标头的问题

目录 现象&#xff1a; 报错文本: 原因: 解决方案: 现象&#xff1a; 打包前&#xff0c;ProjectSetting 压缩选项设置为Brotli, 将打包的WebGL部署到阿里云OSS环境后&#xff0c;运行弹框提示错误. 报错文本: Unable to parse Build/WebGL.framework.js.br! This canha…

【LabVIEW FPGA入门】单周期定时循环

单周期定时循环详解 单周期定时环路是FPGA编程中最强大的结构之一。单周期定时循环中的代码更加优化&#xff0c;在FPGA上占用更少的空间&#xff0c;并且比标准While循环中的相同代码执行得更快。单周期定时环路将使能链从环路中移除&#xff0c;以节省FPGA上的空间。…

491.非递减子序列

这是一个Java程序&#xff0c;实现了一个名为Solution的类&#xff0c;该类用于查找给定整数数组中所有严格递增子序列。以下是代码的逐行注释&#xff1a; // 定义一个解决方案类 class Solution {// 初始化结果集&#xff0c;用于存储满足条件的所有严格递增子序列List<L…

第七节:Vben Admin权限-后端获取路由和菜单

系列文章目录 第一节:Vben Admin介绍和初次运行 第二节:Vben Admin 登录逻辑梳理和对接后端准备 第三节:Vben Admin登录对接后端login接口 第四节:Vben Admin登录对接后端getUserInfo接口 第五节:Vben Admin权限-前端控制方式 第六节:Vben Admin权限-后端控制方式 第七节…

nginx做静态代理方式

改配置文件 server {listen 8899;server_name localhost;location / {root html;index index.html index.htm;} } 生成页面代码 例子 GetMapping("createIndex")public Result createIndex() {//获取后台存储数据Result result productFeignClient.getB…

5G与SD-WAN的结合为企业网络注入新活力

5G作为SD-WAN的基础网络&#xff0c;具备超大带宽、超低延迟、海量连接能力&#xff0c;为企业各类业务场景提供了理想的支持&#xff0c;尤其对于对时延极为敏感的工业控制、互动应用、高带宽视频、大规模物联网应用等有着显著的推动作用。 通过与5G的融合&#xff0c;SD-WAN在…

Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整分辨率降低带宽

一、前言 算下来这个推流的项目作品写了有四年多了&#xff0c;最初第一个版本只有文件点播的功能&#xff0c;用的纯QTcpSocket通信实现&#xff0c;属于比较简单的功能。由于文件点播只支持文件形式的推流&#xff0c;不支持网络流或者本地设备采集&#xff0c;所以迫切需要…

不成功人士的7个习惯

你犹豫不决 你在做决定时犹豫不决&#xff0c;即使你辗转反侧的做了决策&#xff0c;落实到执行的时候又开始打退堂鼓&#xff0c;这种决策机制会产生一种不好的惯性&#xff0c;让你没办法做到局部最优&#xff0c;长期的随机决策让你离成功越来越远。 你缺乏清晰度 你对于…

二叉树的初步学习和顺序结构实现

当我们学完顺序表、链表、栈和队列的时候&#xff0c;我们就要开始学习树了。树对于以后的学习有非常大的帮助&#xff0c;尤其是排序。好了&#xff0c;开始我们的学习吧。 1.树的概念及结构 1.1树的结构 树结构是一种非线性结构。它是由n&#xff08;n>0&#xff09;个…

蓝桥杯每日一题——棋盘

问题描述 小蓝拥有 n xn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0c;黑色棋子变为白色)请输出所有操作做完后棋盘上每个棋子的颜色。输入格式 输入的…