以下内容结合了其他网友发表的内容,首先再次表示感谢。
假设一个系统有2000个使用者(对于一般的企业系统,这个概念比较简单,就是指数据库中的用户总数,但对于网站型的系统而言,相对较为复杂,一般为注册用户和游客的总和),也就是说,该系统的用户总数是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 R = T / TS
其中F为吞吐量,VU表示虚拟用户个数,R表示每个虚拟用户发出的请求数,T表示性能测试所用的时间,TS为用户思考时间 。