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

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

          与并发用户数相关的概念还包括 并发用户数 系统用户数 同时在线用户数 ,下面用一个实际的例子来说明它们之间的差别。
          假设有一个 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=运行的测试用例数

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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页