五个W
WHY: 为什么要进行性能测试
应用程序是否能够很快的响应用户的要求?
应用程序是否能处理预期的用户负载并有盈余能力?
应用程序是否能处理业务所需要的事务数量?
在预期和非预期的用户负载下,应用程序是否稳定?
是否能确保用户在真正使用软件时获得舒服的体验?
问题的根源是什么?
在多种平台上的数百个服务器异构系统、多种应用、数千个工作站、局域网、广域网和其他分类型的分布式网络体系结构交错的故障点
误区:提高一下硬件配置就可以提高性能了,因此性能测试不重要?
软件本身的问题如:内存泄漏
WHAT: 关注的性能测试内容
并发用户数/吞吐量
平均响应时间
服务器资源占用情况
可靠性、可扩展性
发现引起系统问题的原因,关注采用何种技术提高系统性能
软、硬件配置是否合适(容量规划/硬件选型)
WHO: 哪些人员关注性能
- 开发人员
系统架构:架构设计是否合理?
数据库设计:数据库设计是否存在问题?
代码:代码是否存在性能问题?系统中是否存在不合理的内存使用方式?
设计和代码:系统中是否存在不合理的线程同步方式和不合理的资源竞争? - 系统管理人员(操作系统、网络、服务器等等)
资源利用率:应用服务器和数据库资源使用状况合理吗?
系统容量:系统最多能支持多少用户的访问?系统最大的业务处理量是多少?
系统稳定性:系统是否能支持7X24小时的业务访问?
系统可扩展性:系统是否能够实现扩展?系统性能可能的瓶颈在哪里?更换哪些设备能够提高系统性能? - 用户
响应时间:过长时间的等待会让使用者烦躁不安;
系统稳定性:出现HTTP500错误或数据库崩溃会让用户对系统失去信心
对于一般的web网站来说,在欧美国家普遍的标准为原则3/5/8(2/5/10):
3: 3秒钟用户会觉得是一个很好的体验。
5: 5秒钟用户可能会觉得差了一点,还行,比较好。
8: 8秒钟是用户所能承受的最大极限
- 业务人员
参数:如何向用户提供参数,例如支持多少用户使用?响应时间是多少? - 测试人员
以上所有层面都需要关注
是否能够发现系统中存在的瓶颈?
是否真实有效的评估系统性能能力?
WHERE: 性能测试的关注领域
- 能力验证
性能测试中最简单也是最常用的一个应用领域,主要关心的是“在给定的条件下,系统能否具有预期的表现”。 - 规划能力
规划能力领域与能力验证领域有些不同,其主要关心的是“应该如何才能使系统具有我们要求的性能能力”或 是“在某种可能发生的条件下,系统具有如何的性能能力 - 性能调优
主要应用于对系统性能进行