本项目有一个登录接口需要做性能压测,选择的性能测试工具为Jmeter。通过创建多个虚拟用户(即增加线程数),对开发的单用户脚本增加负载,来达到增加系统压力的测试目的,最终根据测试结果分析找出系统可能存在的性能瓶颈。
1、业务模型分析
本次只考虑这一个接口,即登录功能。
进入登录页面-》用户输入账号和密码-》点击“登录”按钮-》进入到首页
2、用户并发量计算
分析系统业务功能使用的时间段,以及在高峰期时间段期望达到的并发量。经与产品方面沟通期望登录业务在高峰期8:00-22:00这段时间段内达到10万的访问量。根据业务量,首先统计单用户单次登录时服务器的响应时间(可包括用户的思考时间,但统计性能结果时需要排除思考时间),然后再计算并发用户数。
如果压测时间设为14小时,呢么时间段过长了,增加了测试的难度,这里采用二八远着进行业务量与业务时间段的重新换算,14小时20%的时间即为2.8小时,即2.8x60x60s,10万用户的80%即为8万。故本次测试,如果性能能够达到2.0小时内完成8万的业务量即认为测试通过。
假设单用户单次登录的响应时间为4s,那么2.8小时内单用户登录的次数为2.8x60x60/4=2520次,故初次估算并发用户数为8万/2520=31.74,大概为32个。
3、启动方式
实际用户使用过程中,不可能每秒钟都是32个用户同时登录,于是为了更好地模拟用户业务情况,大多数会采用逐步加压、持续施压和逐步减压的方式启动场景。
设计启动方式如下:
每5分钟增加一个虚拟用户,当达到最大数32个虚拟用户时,持续运行2.8小时,然后再每5分钟退出一个虚拟用户,直到全部退出。
探索最优并发数:
在场景中分别设计10、30、100个并发数进行业务操作,无需设置逐步加压、持续和逐步减压的过程,以此方法来探索最大并发数。
书山有路勤为径,学海无涯苦作舟!