IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 性能测试能力提升-线程、并发、吞吐量、TPS、QPS、响应时间 -> 正文阅读

[开发测试]性能测试能力提升-线程、并发、吞吐量、TPS、QPS、响应时间

一、背景

接着上一篇的知识:性能测试能力提升-关于性能测试,本篇文章,我们将主要介绍以下几方面的知识:

  • 线程数&并发用户数
  • 相对并发&绝对并发
  • 吞吐量
  • TPS&QPS
  • 响应时间

二、线程数、并发用户数

线程数: 主流的性能测试工具(Jmeter/Loadrunner),以线程式并发的方式,启动复数个线程,让每个线程独立向服务器端发出请求,帮我们达成“短时间内向服务器发送大量请求”的任务。

有时候我们在描述性能测试过程时,会将这个客户端的独立线程数表述为“并发数”。

注意: 这里的“并发”指的是客户端并发,并不是服务端的并发。很简单,客户端能发出很多请求,服务器却未必能处理得了~

并发用户数:某一时刻同时向服务器发送请求的用户数。

需要明白的一个误区:并发用户数和 jmeter 的线程数,它们是不对等的。并发用户数应该和 tps 是一个概念,假如需求是想获取 1000 个用户同时操作时,系统能否承受得住或者系统各项指标反应如何,我们应该拿 tps 来给出答案。jmeter 的线程数大小仅仅是一个压力的大小概念。
在这里插入图片描述
常见问题:计算最大线程数
查询功能,需要系统能够在5分钟内能完成5000笔查询业务,同时用户响应时间不超过3s,该用多少线程数施压?
计算公式:最大线程数= (单次响应时间业务量)/总的业务时间
答案:(3
5000)/5*60=50
在这里插入图片描述

三、相对并发和绝对并发

什么是相对并发和绝对并发?

相对并发:指在一个时间段内发生的事情。在jmeter的测试计划中添加线程组,设置线程属性,2秒之内启动10个线程,其对应的相对并发为5(线程数/启动时间)。

绝对并发:指在同一时刻发生的事情。jmeter可以使用同步定时器(Synchronizing Timer)实现绝对并发,也就是同一个时刻达到了某一集合点才发出请求。

在这里插入图片描述

压测时选用哪个更合适?

绝对并发的优点:对服务器来说,会产生一种瞬间高并发。
绝对并发的缺点:对服务器来说,平均压力会降低。

根据业务来选择:
如果业务场景是瞬间高并发类型的,如抢购、秒杀等,需要加集合点。
或者是多场景测试,你需要确保数据流上下游关系,控流的时候可以考虑.
其他场景都不需要加,加了集合点后,就不适用tps来衡量系统性能。
在这里插入图片描述
集合点功能要慎重选择
因为加了集合点后,系统的平均压力会降低。原因是多线程在集合的时间,服务器和数据库都处于休息状态,他们会有足够的时间去释放连接和内存等恢复工作。

有些加了集合点并发测试通过了,但是上线后就出现某些资源占满情况,就是因为线上真实场景是不会集合的,也就是不会给服务器一个缓解的时间。

四、吞吐量

吞吐量是服务端的指标:吞吐量是站在“量”的角度去度量,是一个参考指标, 是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标。

但是光有“量”的数据有时候并无太大价值,一家餐厅1个小时卖出100份餐品和一个月才卖出100份餐品,单从“量”的维度衡量肯定不行,时间维度很重要!

性能测试领域的吞吐量通常会结合上时间维度进行统计。如果吞吐量的“量”以“事务”为统计单位的话,结合时间维度,就可以换算成TPS。

在这里插入图片描述

五、TPS & QPS

QPS: Queries Per Second,每秒查询率,是一台服务器每秒能够响应的查询次数(数据库中的每秒执行查询sql的次数)。

因此QPS代表的场景不够全面,仅仅适用于只执行单次查询的接口,不建议用QPS来作为系统性能指标。

TPS: Transactions Per Second,每秒事务数,具体事务的定义,是人为制定的,可以是一个接口、多个接口、一个业务流程等等……

以单接口定义为事务为例,每个事务包括了如下3个过程:

  • 向服务器发请求.
  • 服务器自己的内部处理(包含应用服务器、数据库服务器等)
  • 服务器返回结果给客户端

如果每秒能够完成N次这3个过程,TPS就是N。
如果多个接口定义为一个事务,那么这多个请求完成一次,算做一个TPS。

在这里插入图片描述
TPS和QPS的关系
如果是对一个查询接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps。
如果是容量场景,假设n个接口都是查询接口,且这个接口内部不会再去请求其它接口,qps=n*tps。

如何估算TPS
根据已有接口评估:
如果是一个老接口–上一次大促峰值的3-5倍为目标TPS
如果是一个新接口–可以参考相同业务场景的其他接口目标制定

根据业务量评估:
案例:
预期20万注册用户,其中每天活跃用户峰值预计占10%,首页存在游客访问则增加一倍;活跃用户平均每人每天访问接口4次;访问时间段大多数在20:00-21:00

计算方式:
通过二八原则,80%的业务在20%的时间产生
峰值TPS=业务量 * 80%/业务时段(秒)* 20%
计算:200000 * 10% * 2 * 4 * 80%/3600 * 20%=178
在这里插入图片描述

六、响应时间

最小、最大、平均、90th pct:最小响应时间、最大响应时间、平均响应时间都很好理解。
这里只单独说一下90th pct的含义:
表示将整个测试过程中,接口所有请求的所有响应时间按从小到大排列为N个点,取N*90%这个点的响应时间即为此请求的90%响应时间,其代表90%的请求在此响应时间以内。
在这里插入图片描述

知识扩展:Std.Dev: Standard Deviation

在Jmeter的监听器summary report中,我们会看到有这样的一个字段:
在这里插入图片描述
那这个字段是什么意思呢?解释如下:

std.deviation: 标准偏差,一种度量数据分布的分散程度之标准,用以衡量数据值偏离算术平均值的程度.

标准偏差的值越小,则说明各个样本的响应时间越接近平均值,一定程度上也表明系统更加稳定.

计算标准偏差的值,可以在Excel中使用公式:=STDEV.P() 来计算.

举个例子:
两组数据,平均值都是70,但是明显第二组数据相比第一组数据,各个样本的值更接近平均值:
在这里插入图片描述
计算两组数据的标准偏差值,第二组2.16,第一组17.07,因此标准偏差的值越小,则说明各个样本的值越接近平均值:
在这里插入图片描述

============================================================================

以上就是本次的全部内容,如果对你有帮助,麻烦点个赞+收藏+分享,你的支持就是作者更新最大的动力~

下一篇文章,我们将主要介绍以下几方面的知识:

  • 基准测试、负载测试、压力测试、容量测试
  • 负载测试知识扩展:阶梯式加压
  • 压力测试知识扩展:稳定性、破坏性压测
  • 容量测试知识扩展:容量指标选取、容量规划、扩容手段

欢迎关注我的微信公众号:程序员杨叔, 测开一枚,持续分享全栈测试知识干货。标签:自动化测试、性能测试、Java、Python、DevOps、CI/CD、小程序测试、测试工具、测试开发、测试框架/平台、测试管理…
在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章           查看所有文章
加:2022-04-29 12:25:58  更:2022-04-29 12:26:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:34:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码