压测--完善个人测试体系重要的一环

2023-11-21 17:10

本文主要是介绍压测--完善个人测试体系重要的一环,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

一、压测是个啥?为啥要压测?

二、压测方案设计

1、压力场景

2、压测方案设计关注点

3、涉及到的知识点:

三、压测执行

四、压测报告关注点


一、压测是个啥?为啥要压测?

压测属于性能测试的一种:

性能测试的选择和需求有关,选择的场景不同,使用的性能测试方案均是不同的,性能是随着业务的发展,不断新的要求,不同的阶段,性能测试的频率不一样。

看到过网上有个馒头的例子:

一口气吃十个馒头,并发,压力(并发)测试,一口吃15个,20个,吃不下,一口吃18,能吃;

馒头一个一个吃,负载测试; (压死骆驼的最后一根稻草)

已知吃15个馒头,绕操场跑,如果没问题,就是稳定性很好。

 

压测目的:

压测的目的是为了观察当前系统的负载能力,考察系统高负载的稳定性。

  • 给出系统当前的性能状况
  • 定位系统性能瓶颈或潜在性能瓶颈

题外话:压测经常和负载测试让人分不清楚,从一篇博客看到一句说的很明白的话:

负载测试就是不断增加压力,进行测试。压力测试就是最大负载下的测试。
 

负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用,负载测试的加载方式也有很多种,可以根据测试需要来选择。

  • 性能测试是为获取或验证系统性能指标而进行测试,多数情况下,性能测试会在不同负载情况下进行。
  • 压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

 

二、压测方案设计

1、压力场景

压测包括两种场景:

一种是单场景只压一个接口的;第二种是混合场景,多个有关联的接口。

2、压测方案设计关注点

1、调研下游接口和基础组件的负载能力,查看调用次数,确定人员和接口是否可以承受;
2、梳理下游接口的时候,整理出具体调的服务和次数;
3、确认是否有缓存,预估每个服务的QPS;
4、设计方案时候,预估风险;
5、压测前测试时需要通过链路验证,确定是否漏掉部分服务;
6、数据量大的时候,考虑压测是否对线上真实数据有影响,比如写数据库,用影子缓存,如果只是读,可以考虑直接用线上数据;
7、在压测中考虑是否回放,具体和缓存的失效时间也都有关;
8、报警需要把无关的mock掉,否则干扰定位问题;

3、涉及到的知识点:

1.TP指标&QPS(TPS)

TP指标: TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。

需要指出的是,响应时间的绝对值并不能直接反映软件的性能的高低,软件性能的高低实际上取决于用户对该响应时间的接受程度。对于一个游戏软件来说,响应时间小于100毫秒应该是不错的,响应时间在1秒左右可能属于勉强可以接受,如果响应时间达到3秒就完全难以接受了。而对于编译系统来说,完整编译一个较大规模软件的源代码可能需要几十分钟甚至更长时间,但这些响应时间对于用户来说都是可以接受的。 

TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高

这里面包含了两个概念一个是TP指标,一个是QPS。

QPS(TPS):每秒钟request/事务的数量。比如一秒内只有一个请求,那么qps=1;如果每秒50,那么qps=50;


2. 吞吐量(Throughput) 
     吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。 
  对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你n个用户使用时,每个用户看到的响应时间通常并不是n×t,而往往比n×t小很多(当然,在某些特殊情况下也可能比n×t大,甚至大很多)。这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用吞吐量来度量并发系统的性能的主要原因。

3. 并发用户数 
  并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。对于网站系统我们会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发请求用户数。由于注册用户可能长时间不登陆网站,使用注册用户数作为性能指标会造成很大的误差。而在线用户数和同事发请求用户数都可以作为性能指标。相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。 
 

三、压测执行

生成报告:

  1. 本次压测的要求指标,性能要求
  2. 本次压测的机器性能
  3. 本次压测的各项各项指标
  4. 本次压测的报告结果分析
  5. 压测报告建议
  6. 压测报告等级

四、压测报告关注点

1、压测报告怎么看?

行业经验:对于游戏行业而言,对于性能的要求是非常高的,响应和延迟是其中最为重要的指标。其性能底线往往是要求90%用户的响应时间是在1秒内,对于2-3秒的用户响应只有一些非常小点击率的请求时才会适当允许!   对于一般的商业系统,性能不错的在1~2秒作用,3~5秒则稍微难以接受。

这个性能指标是指90%的用户响应秒数。

Min:最小响应时间

Max:最大响应时间

TP90,TP99,TP999等:例如,TP90代表的是90%请求的响应时间

Average :每个请求的平均响应时间

Median :中值,即50%请求的平均响应时间

Samples :各个测试的样本总数 ,也即是说线程数*循环次数,

Error%:本次测试中出现错误的请求的数量/请求的总数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

当并发在多少(线程数)的时候,每秒的TPS是多少,每秒的查询率QPS是多少QPS;当前系统90%Line用户的响应时间是多少,最长的响应时间是多少Max,最快的响应时间是多少MIN。压测中出现多少错误率Error,与目标允许的容错率xxxx 不符合/符合。

压测的结果一般情况可以通过吞吐量与并发数的比例来观察,吞吐量与并发数呈正相关关系,在一定并发数的情况下,吞吐量越高,说明系统性能越好!

这篇关于压测--完善个人测试体系重要的一环的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/403785

相关文章

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank&nbsp;正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money