“并发用户数”、“系统用户数”和“同时在线用户数”的计算公式

与并发用户数相关的概念还包括“并发用户数”、“系统用户数”和“同时在线用户数”,下面用一个实际的例子来说明它们之间的差别。
         假设有一个OA系统,该系统有2000个使用用户——这就是说,可能使用该OA系统的用户总数是2000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量记数所有已登录的用户),从在线统计功能中可以得到,最高峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?
        根据我们对业务并发用户数的定义,这500就是整个系统使用时最大的业务并发用户数。当然,500这个数值只是表明在最高峰时刻有500个用户登录了系统,并不表示实际服务器承受的压力。因为服务器承受的压力还与具体的用户访问模式相关。例如,在这500个“同时使用系统”的用户中,考察某一个时间点,在这个时间上,假设其中40%的用户在较有兴致地看系统公告(注意:“看”这个动作是不会对服务端产生任何负担的),20%的用户在填写复杂的表格(对用户填写的表格来说,只有在“提交”的时刻才会向服务端发送请求,填写过程是不对服务端构成压力的),20%部分用户在发呆(也就是什么也没有做),剩下的20%用户在不停地从一个页面跳转到另一个页面——在这种场景下,可以说,只有20%的用户真正对服务器构成了压力。因此,从上面的例子中可以看出,服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。
       在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务角度关注究竟应该设置多少个并发数比较合理,因此,在后面的讨论中,也是主要针对业务并发用户数进行讨论,而且,为了方便,直接将业务并发用户数称为并发用户数。
       (1) 计算平均的并发用户数: C = nL/T
       (2) 并发用户数峰值: C’ ≈ C+3根号C
        公式(1)中,C是平均的并发用户数;n是login session的数量;L是login session的平均长度;T指考察的时间段长度。
        公式(2)则给出了并发用户数峰值的计算方式中,其中,C’指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的login session产生符合泊松分布而估算得到的。
实例:
         假设有一个OA系统,该系统有3000个用户,平均每天大约有400个用户要访问该系统,对一个典型用户来说,一天之内用户从登录到退出该系统的平均时间为4小时,在一天的时间内,用户只在8小时内使用该系统。
则根据公式(1)和公式(2),可以得到:
               C = 400*4/8 = 200
               C’≈200+3*根号200 = 242
           F=VU * R / T
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间
R = T / TS
TS为用户思考时间
计算思考时间的一般步骤:
A、 首先计算出系统的并发用户数
C=nL / T      F=R×C
B、 统计出系统平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、 统计出平均每个用户发出的请求数量
R=u*C*T/VU
D、根据公式计算出思考时间
TS=T/R
缺陷检测有效性百分比DDE=TDFT/(TDFC+TDFT)×100%
其中:TDFT=测试过程中发现的全部缺陷(即由测试组发现的),TDFC=客户发现的全部缺陷(在版本交付后一个标准点开始测量,如,半年以后)

缺陷排除有效性百分比DRE=(TDCT/TDFT)×100%
其中:TDCT=测试中改正的全部缺陷,TDFT=测试过程中发现的全部缺陷

测试用例设计效率百分比TDE=(TDFT/NTC)×100%
其中:TDFT=测试过程中发现的全部缺陷,NTC=运行的测试用例数

以下公式较适用于白盒测试
功能覆盖率= 至少被执行一次的测试功能点数/ 测试功能点总数 (功能点)
需求覆盖率= 被验证到的需求数量 /总的需求数量 (需求)
覆盖率= 至少被执行一次的测试用例数/ 应执行的测试用例总数 (测试用例)
语句覆盖率= 至少被执行一次的语句数量/ 有效的程序代码行数
判定覆盖率= 判定结果被评价的次数 / 判定结果总数
条件覆盖率= 条件操作数值至少被评价一次的数量 / 条件操作数值的总数
判定条件覆盖率= 条件操作数值或判定结果至少被评价一次的数量/(条件操作数值总数+判定结果总数)
上下文判定覆盖率= 上下文内已执行的判定分支数和/(上下文数*上下文内的判定分支总数)
基于状态的上下文入口覆盖率= 累加每个状态内执行到的方法数/(状态数*类内方法总数)
分支条件组合覆盖率= 被评测到的分支条件组合数/分支条件组合数
路径覆盖率= 至少被执行一次的路径数/程序总路径数

时间: 2024-10-27 12:06:53

“并发用户数”、“系统用户数”和“同时在线用户数”的计算公式的相关文章

关于系统用户数,并发用户数,在线用户数,吞吐量

1.  关于系统用户数,并发用户数和在线用户数 系统用户数 侠义上来说,可以理解为系统注册用户数:广义上来说,可以理解为所有访问过系统的用户数 在线用户数 侠义上来说,可以理解为已登录系统的用户数:广义来说,可以理解为当前时间访问系统的用户数. 并发用户数 可以分两种: 1)同一时间点,执行同一(业务)操作的用户数 2)同一时间点,执行不同(业务)操作的用户数 注意:服务器实际承受的压力并不完全取决于并发用户数,详情见下面的例子. 例子(以51测试论坛为例): 作为专业软件测试论坛,会有很多测试

并发和在线用户数的思考

首先,在线用户数和并量之间的关系 需要搞清楚. 根据先思考业务,得出业务特点 在系统架构时期不要着急去想那个地方会是瓶颈,怎么去优化,而是先根据业务逻辑进行分析系统的特点如下, 业务的特点如是否上班时间使用? 业务处理是否集中在某个固定的时间点,如早上9点为高峰期,临下班10分钟为高峰期? 在线用户的活动特点,是半小时都不动,还是会不停的操作? 操作的内容是什么有什么特点,是集中的系统的某一个模块还是整个系统平均承担点击? 用户主要获取的内容是什么,纯文本.图片.视频? 系统需要具备什么的服务水

在线用户数与并发用户数的区别和比例关系

在线用户数:用户同时在一定时间段的在线数量 并发用户数:某一时刻同时向服务器发送请求的用户数 一般而言,我们习惯以5-20的比率来推算并发用户与在线用户之间的关系.即,并发与在线的比例约为5%-20% 比如,某网站存在注册用户数为10W人,但同时在线最多1W人,但这1W个人,可能只有500人会浏览帖子,500人会进行发帖,只有这1000个人对服务器才有交易,那我们计算并发量的时候,就可以以1000为标准! =============================================

关于使用HttpSessionBindingListener获取在线用户数,同一用户登陆一次

原创地址:http://blog.csdn.net/jiaoxueli/article/details/2226134 考虑到项目中统计在线用户数量和同一用户只能登陆一次的需求,查询联系 HttpSessionBindingListener接口的使用,记录以备后用,也供同样需要的同仁参考. 下面为我的测试例子,首先建个web工程,例子中程序包括:OnLineUser.java  ,login.jsp ,logout.jsp,onLineUser.jsp四个文件 OnLineUser.java清单

显示当前系统上登录的所有用户数

写一个脚本showlogged.sh,其用法格式为:showlogged.sh -v -c -h|--help其中,-h选项只能单独使用,用于显示帮助信息:-c选项时,显示当前系统上登录的所有用户数:如果同时使用了-v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息:如 Loggedusers: 4. Theyare: root     tty2         Feb 18 02:41 root     pts/1        Mar 8 08:36 (172.16.100.177

基于express+redis高速实现实时在线用户数统计

作者:zhanhailiang 日期:2014-11-09 本文将介绍怎样基于express+redis高速实现实时在线用户数统计. 1. 在github.com上创建项目uv-tj.将其同步到本地: [root@~/wade/nodejs]# git clone [email protected]:billfeller/uv-tj.git 2. 使用npm init初始化node项目(本例不须要复杂的操作,所以暂不使用express工具来生成express应用程序骨架): [root@~/wa

高并发秒杀系统--课程总结与思考

[高并发秒杀系统的开发流程及技术要点] DAO层 1.数据库设计和实现,手写DDL 2.Mybatis理解和使用技巧,主配置,XML中SQL的编写 3.Mybatis与Spring的整合,包扫描,DAO实现,别名识别 Servcie层 4.业务接口的设计和封装,使用者角度设计接口 5.SpringIOC配置技巧,注解+XML 6.Spring声明式是事务使用和理解 Web层 7.Restful接口运用 8.SpringMVC的使用技巧 9.前端交互分析过程 10.Bootstrap和JS的使用,

使用NoSQL实现高并发CRM系统实践(源代码+解析)

又想速度快,又要大数据,又要保证数据不出错,还要拥抱变化,改需求的时候不那么痛苦,特别是字段的调整,按照以前的做法,想想就头疼.使用NoSQL,简直就是随心所欲,再奇葩的数据结构,处理起来也很容易.下面看我如何用NoSQL数据库实现高并发,高可靠的CRM系统. 1.前言 随着facebook.微博等WEB2.0互联网网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本

Java高并发秒杀系统API之SSM框架集成swagger与AdminLTE

初衷与整理描述 Java高并发秒杀系统API是来源于网上教程的一个Java项目,也是我接触Java的第一个项目.本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文,本来接触之初听别人说,c#要转java很容易,我也信了,但是真正去学习的时候还是踩了无数个坑,好在朋友有几个做安卓的,向他们讨教了一些经验,但是他们做安卓的和web又是两个方向,于是继续一个人默默采坑避雷之旅,首先上手的是下面这个Java高并发秒杀系统API. 学习java的初衷一个是公司转行,二