--------------------------------------------------------------------
假设一个OA系统的用户表里面有1000用户,这是系统注册用户数。历史来看,最高峰同时有500人在线,这是同时在线用户数。
现在有500个用户同时使用系统,其中:
20%用户 在查看系统公告,这对于系统没有太多负载,因为浏览系统公告没并没有交互,点击公告才稍微有点负载;
20%用户 在填写表单,访问表单页面也没有太多负载、填写表单也不会太多负载,只有表单并发提交才稍微有点负载;
30%用户 登录进入以后直接关闭或者最小化浏览器,这几乎没有负载;
20%用户 不停从一个页面跳转另一个页面,这些频繁的交互是有实际负载的;
10%用户 不停的从服务器下载报表统计数据、执行各种会议室资源查询、不断的向服务器上载大附件,这些业务操作产生的负载可能远超以上90%用户。
以上的例子,说明了服务器实际承受的最大负载、能够实际承受的最大并发数,并不取决于多少用户在线,而是取决于:
业务类型、业务分布、业务并发
这些数据可以通过部署用户行为分析应用或者服务器日志的分析得到。
所以,参考80/20原则(80%的负载来源于20%的业务操作),通常来说,性能测试用例没必要实现与功能测试一样的覆盖率。
编写性能测试方案,一定要找出系统当中的典型业务(用户常用的、对响应比较敏感的、或者资源消耗比较高的、稳定性有特殊要求的),如果用户会话的产生符合泊松分布
那么可以使用以下公式对性能需求当中的并发用户和最大并发进行估算:平均并发用户数 = 会话数量 * 会话平均时间 / 业务峰察长度
最大并发用户数 = 平均并发用户数 + 3 × (平均并发用户数的平方根)
但是,如果是秒杀抢购这一类活动、微信公众号直接的大范围**,像这一类业务集中在某一个时间点爆发出现的情况,上面的公式就不适用了。
假设OA系统有1000用户,每天500个用户访问,每个用户每天使用OA的时间累计为1小时,在1天时间内用户只在8小时内使用该系统
平均并发用户数 = 500 * (1*60*60)/(8*60*60) = 62.5 并发/秒
最大并发用户数 = 62.5 + 3*7.9 = 86.2 并发/秒
一、经典公式1:
一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据
1)平均并发用户数为 C = nL/T
2)并发用户数峰值 C‘ = C + 3*根号C
C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度
C’是并发用户数峰值
举例1,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天之内,用户只有在8小时之内会使用该系统。
那么,
平均并发用户数为:C = 400*4/8 = 200
并发用户数峰值为:C‘ = 200 + 3*根号200 = 243
举例2, 某公司为其170000名员工设计了一个薪酬系统,员工可进入该系统查询自己的薪酬信息,但并不是每个人都会用这个系统,假设只有50%的人会定期用该系统,这些人里面有70%是在每个月的最后一周使用一次该系统,且平均使用系统时间为6分钟。
则一个月最后一周的平均并发用户数为(朝九晚五):
n = 170000*0.5*0.7/5 = 11900(一周5天,每天的用户量)
C= 11900*6/(60*8) = 148.75(每天8小时)
二、通用公式2:
对绝大多数场景,我们用(用户总量/统计时间)*影响因子(一般为3)来进行估算并发量。
比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为50000*80%/(3*60*60)=3.7,约4人/S,考虑到安检,入口关闭等因素,实际堆积在检票口的人数肯定比这个要大,假定每个人需要3秒才能进站,那实际并发应为4人/s*3s=12,当然影响因子可以根据实际情况增大!
三、根据PV计算公式:
比如一个网站,每天的PV大概1000w,根据2/8原则,我们可以认为这1000w pv的80%是在一天的9个小时内完成的(人的精力有限),那么TPS为:
1000w*80%/(9*3600)=246.92个/s,取经验因子3,则并发量应为:
246.92*3=740
PV:访问量即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次
单台服务器每天PV计算
公式1:每天总PV = QPS * 3600 * 6
公式2:每天总PV = QPS * 3600 * 8
四、根据TPS估计:
公式为 C = (Think time + 1)*TPS
五、根据系统用户数计算:
并发用户数 = 系统最大在线用户数的8%到12%