背景:公司项目需要第三方评测中心进行评测,其中一个指标是系统支持最大10万在线用户登录。
分析:
1、并发10万个用户去测试不现实,并发数太大,公司无支撑该测试的服务器资源。
2、并发某个数量级的用户(现有资源可承受的,如1000并发用户)来推断系统是否满足在线用户熟支持10万个以上。但这种做法不太受认可。
这里就涉及到在线用户数、并发用户数和系统用户数的概念性问题了:
系统用户数这边比较好测试,属于容量问题。如系统支持100万用户,一般在数据库创建超100万个不同用户名的用户即可。
并发用户数是指某一时刻同时向服务器发送请求的用户数,与服务器有交互的过程。如系统支持100个并发用户,直接用LR压100并发不报错即可。
在线用户数是指用户同时在一定时间段的在线数量,不一定与服务器在交互。如系统支持10万个在线用户数,测试方案如何?
->不能将在线用户数和并发用户数混为一谈,这个不同概念的东西。当然,如果指标低,能用并发的方式去测试最好,但一般来说,在线的用户数指标很大,难以用并发的方式去测试。而且在线用户数不是所有用户都正在并发交互,如一个网页,可能有20%是在浏览,20%在提交事务,50%在挂着没操作,所以真正的并发的用户不多。有些人说用比率或公式来推算,这里就不做说明了。
其中一种测试思路如下(web系统):
在系统session不超时或时间范围内,并发将10万个不同用户登录上系统,以此来验证系统满足支持在线用户数达到10万个。
方案:
1、先在系统创建10万个不同登录名的用户
2、在web页面设置显示字段,每有一个用户登录系统就显示在线用户数+1(便于直观显示)
3、用LR参数化登录名称,并发200个用户跑一段时间(视视情况而定),顺序的把10万个不同用户登入系统
以上方案只是应付评测,一定程度上违背了真正的测试。
PS:如果真的想要评估系统的性能,最好还是模拟用户实际使用情况来定制测试方案来去真实的测试。