首页 > 其他分享 >性能测试并发用户数新的计算方法

性能测试并发用户数新的计算方法

时间:2023-07-24 15:35:40浏览次数:56  
标签:10 用户 性能需求 并发 时间 用户数 10w 计算方法

一件产品的完成,最重要的一环便是它的性能,好产品的性能必定是被人们所需要的。这篇文章详细阐述了产品性能需求的重要性,推荐想要了解性能要求的童鞋阅读。

 

 

我刚工作时,和政府部门做了个产品,功能就是个表单录入,录入完保存到系统。拿去给用户演示,一切很完美。

 

 

但是当开始试运行时,出现了问题——单据录入完成后,保存无反应。

 

 

后来一看是用户在每次会同时录入很多条内容,在保存100条数据要30s才能保存成功。500条数据直接保存失败。

 

 

当然,这是我的问题,忽略了对性能的要求。

 

 

性能的重要性不必细说,有些数据表明:近80%的用户反馈应用响应时间慢、点击没反应等性能问题。

 

 

一般在公司里会有专门的测试人员对系统进行性能测试,而对于性能的标准,具体性能指标多少合适,测试同学是不清楚的。

 

 

这个时候就需要产品狗们提出性能要求,给测试同学作参考。

 

 

接下来我们说说性能需求咋提以及性能指标。

 

 

文章较长,建议收藏吃灰~

 

 

一、性能需求什么时候提

 

 

性能需求属于非功能需求,一般在需求文档内需要有单独模块对性能做说明。

 

 

在写需求文档的时候就可以把性能需求一起规定好,在需求评审时也要评审下性能需求,让各方达成一致。

 

 

研发同学在做技术设计时考虑进来,避免在项目后期,出现重大性能问题。

 

 

测试同学在准备测试用例时,把性能也提前规划进来,提前准备好测试方案。

 

 

另外性能测试也会占用一定的项目时间,需要在制定项目计划时,把性能测试的时间也纳入计划中。

 

 

二、性能需求怎么提

 

 

性能需求是指对系统性能进行规范化描述,提出明确、合理的性能指标要求。

 

 

主要分为2个方面:

 

 

1.系统整体性能需求

 

 

主要指标包括

 

 

  •  

  • 在线用户数数量:如支持在线用户数200w

  •  

  • 平稳运行时间:如7×24h

  •  

  • 平均响应时间:如页面打开时间低于2s。(对于一些主要页面可以在做单独性能要求)

  •  

  • CPU:CPU使用率<75%

 

 

2.不同功能/接口性能需求

 

 

由于不同功能、不同接口的使用频率、重要程度不同,我们可以对不同功能、不同接口单独提出性能需求。

 

 

可以从下边几个标准来确定需要单独明确的功能/接口

 

 

  •  

  • 高频:系统中高频率使用的功能,高频调用的接口,像刷动态

  •  

  • 关键:系统中不能出现问题的功能,像登录、注册、支付

  •  

  • 特色:系统中的亮点功能,产品的卖点,比如处方合理性审核系统、风险监控系统,还有像交友的在线匹配功能。

  •  

  • 涉及大量数据:比如说报表查询。

 

 

举个“登录”功能的例子:

 

 

并发用户数500,响应时间2s,TPS到500/s,CPU不得超过75%。

 

 

下边我们详细说说性能指标以及性能指标的标准

 

 

三、常见的性能指标有哪些

 

 

主要有响应时间、并发数、吞吐量、CPU等,对于App需要关注FPS、启动时间、耗电量等。

 

 

我们一个个看看:

 

 

1. 响应时间——最直观的表现

 

 

“系统应该让用户知道发生了什么,在适当的时间内做出适当的反馈。”尼尔森可用性十原则——状态可见性

 

 

在尼尔森可用性十原则中的“状态可见性原则”提到的“适当的时间”就可以理解为响应时间。

 

 

站在用户角度描述就是点击一下按钮,系统在页面上给出反馈的时间。这个反馈时间是用户最能直观感受到的,也是对用户体验影响最大的地方。

 

 

当响应时间>3秒后,74%的PC端用户、50%以上的App用户会选择放弃操作,30%的用户会选择卸载应用,33%以上的用户会转身使用竞品。

 

 

吓人不?

 

 

我们接着看下响应时间的定义:提交请求和返回该请求的响应之间使用的时间。主要由网络传输时间和业务处理、数据处理时间组成。

 

 

 

而对于产品来说,需要关注的是页面响应时间,就算接口处理完成,数据传到客户端上了,在前端也需要解析出来,也会消耗一定时间。

 

 

响应时间多长才能满足要求呢?

 

 

之前有个2-5-10原则,而现在随着技术、硬件的更新换代,响应时间也有了1-3-5标准。

 

 

 

即1s内用户完全可以接受,3s内用户觉得还可以,5s用户就会开始焦躁不安。

 

 

当然这只是个通用标准,不是个固定标准。我们在提出需求时,可以结合业务重要性、数据量大小、使用频次来做综合考虑。

 

 

举个例子:导出excel报表。对于很多B端产品,这是个刚需、高频的功能。

 

 

我们可以这样提出性能要求:

 

 

  •  

  • 1万条数据,导出完成用时3s。

  •  

  • 3万条数据,导出完成用时5s。

  •  

  • 10万条数据,导出完成用时8s。

 

 

我从网上找到一些响应时间参考指标,大家可以看下:

 

 

  •  

  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。

  •  

  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。

  •  

  • 保险企业:3秒以下为佳。

  •  

  • 制造业:5秒以下为佳。

 

 

2. 并发用户数——笼统也直观的指标

 

 

并发用户数的定义是每秒同时向服务器提交请求的用户总数量。

 

 

关于并发用户数有2个理解:

 

 

  1.  

  2. 多个用户同一时间做不同操作,比如多个用户有发动态的,有刷动态的。

  3.  

  4. 多个用户同一时间做同一个操作,比如多个用户一起发动态。

 

 

对于这2个理解,在性能需求上可以分开提,比如:

 

 

  •  

  • 系统支持并发用户数500

  •  

  • 发布动态:支持300人并发发布动态。

 

 

有几种并发用户数评估方法,大家可以看下:

 

 

1)公式1:

 

 

 

n:平均每天的访问用户数。App可以直接用日活代替。

 

 

L:一天内用户从登录到退出的平均时间,可以理解为平均用户使用时长。

 

 

T:考察时间长度,一天内多长时间有用户在使用系统。

 

 

举个例子:

 

 

App日活是10w,用户平均使用时长是10min,用户每天活跃时间大约是从早上10点到晚上10点。

 

 

公式里的n=10w,L=10min,T=12h

 

 

C=(10w×10min)/12h,时间单位统一成秒

 

 

C=(10w×10×60)/(12×3600)≈1388人/秒

 

 

峰值C’=1388×3×根号1388≈1500人/秒

 

 

提需求时可以以峰值并发用户数为准

 

 

n:平均每天的访问用户数。App可以直接用日活代替。

 

 

L:一天内用户从登录到退出的平均时间,可以理解为平均用户使用时长。

 

 

T:考察时间长度,一天内多长时间有用户在使用系统。

 

 

举个例子:

 

 

App日活是10w,用户平均使用时长是10min,用户每天活跃时间大约是从早上10点到晚上10点。

 

 

公式里的n=10w,L=10min,T=12h

 

 

C=(10w×10min)/12h,时间单位统一成秒

 

 

C=(10w×10×60)/(12×3600)≈1388人/秒

 

 

峰值C’=1388×3×根号1388≈1500人/秒

 

 

提需求时可以以峰值并发用户数为准

 

 

n:平均每天的访问用户数。App可以直接用日活代替。

 

 

L:一天内用户从登录到退出的平均时间,可以理解为平均用户使用时长。

 

 

T:考察时间长度,一天内多长时间有用户在使用系统。

 

 

举个例子:

 

 

App日活是10w,用户平均使用时长是10min,用户每天活跃时间大约是从早上10点到晚上10点。

 

 

公式里的n=10w,L=10min,T=12h

 

 

C=(10w×10min)/12h,时间单位统一成秒

 

 

C=(10w×10×60)/(12×3600)≈1388人/秒

 

 

峰值C’=1388×3×根号1388≈1500人/秒

 

 

提需求时可以以峰值并发用户数为准

 

 

 

标签:10,用户,性能需求,并发,时间,用户数,10w,计算方法
From: https://www.cnblogs.com/rood/p/17577350.html

相关文章

  • java并发编程(一)----初识
    一、什么是并发  先看“科普中国”给出的官方解释。并发在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。   通俗来讲,并发就是指同一时间间隔内发生两个或多......
  • 为什么redis高并发
    为什么Redis高并发1.流程概述为了帮助你理解为什么Redis能够支持高并发,我将向你展示Redis高并发的实现流程,并解释每个步骤需要做什么。下面是Redis高并发的实现流程概述:步骤说明1.连接Redis建立与Redis服务器的连接2.处理请求接收客户端的请求并处理3.缓......
  • Java并发工具CountDownLatch的使用和原理
    1.等待多线程完成的CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完......
  • 多任务编程之并发、并行概念
    多任务的执行方式1.并发2.并行并发:在⼀段时间内一个cpu交替去执⾏任务。示例:对于单核cpu处理多任务,操作系统轮流让各个软件交替执⾏,假如:软件1执⾏0.01秒,切换到软件2,软件2执⾏0.01秒,再切换到软件3,执⾏0.01秒……这样反复执⾏下去。表⾯上看,每个软件都是交替执⾏的,但是,......
  • JUC并发编程(3)—锁中断机制
    目录1.什么是中断2.源码解读(中断的相关API)3.如何使用中断标识停止线程学习视频:https://www.bilibili.com/video/BV1ar4y1x7271.什么是中断一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,所以,Thread.stop、Thread.suspend、Thread.resume都已经被......
  • (转)数据库锁 sql 数据库大并发操作 数据库原子操作
    1数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2为另一个线程。T3,T4以此类推。下面以SQLServer(2005)为例。2共享锁(Sharedl......
  • 多语言高并发接入阿里巴巴电商平台,获取实时商品详情数据源码,API接口技术开发分享
    接口数据展示alibaba.item_get-获得商品详情公共参数请求地址:注册key和secret接入请私信名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString......
  • 多语言高并发接入阿里巴巴电商平台,获取实时商品详情数据源码,API接口技术开发分享
    接口数据展示alibaba.item_get-获得商品详情公共参数请求地址:注册key和secret接入名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_sear......
  • Java并发处理任务
    背景当一个任务执行时间过长的时候,并且这个任务可以分解成多个独立的任务时,可以使用Java多线程来减少执行时间。第一版publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{func1();}privatestaticvoidfunc1()t......
  • sql面试题 - 求出连续登录7天的用户/用户数
    连续性问题,如:求出连续登录7天的用户/用户数求出连续充电次数大于等于12次的用户数求出3年获得冠军的选手......通用的解法:数据去重处理。如求连续7天登录的用户数,则一个用户一天只保留一条数据开窗函数。找到分区主键,然后按照时间进行排序求得rank用时间-rank,得到一......