不同角度关注的软件性能
一、系统用户
用户对系统性能最直观的体现就是从他单击一个按钮,或者打开一个链接到系统把本次操作的结果以他能察觉的方式展示出来这么一个过程所消耗的时间,也就是一般意义上的“响应时间(RT)”。这个时间既有客观的成分,也有主观的成分。比如执行某操作会返回大量数据。从客观的角度来看,事务的结束应该是系统返回所有的数据,响应时间的计算应该是从用户操作开始到所有数据返回整个过程耗时。但是从用户的角度来看,如果做了分步展示数据(就是先加载部分数据,然后在用户看的途中继续加载剩下的数据),那么用户所感受的响应时间会远远小于实际的事务响应时间。用户一般还会受另一个因素影响:稳定性,一个系统的时好时坏,也会让用户受到很直观的感受。
二、系统管理员
管理员是一种特殊的用户,除了RT,还会想要知道系统具有多大的可扩展性,处理并发的能力如何,系统可能的最大容量是什么,系统可能的性能瓶颈在哪,通过更换哪些设备或是进行哪些扩展能够提高系统性能以及系统在长时间的运行中是否足够稳定,是否能够不间断的提供业务服务等。了解了这些情况,管理员才能根据系统的用户状况制定管理措施,能对突发情况进行快速的处理。管理员也会关注网络带宽占用情况以及服务器端资源使用情况。
三、开发人员
开发人员会关心主要的用户感受(RT),也会关注系统的扩展性等管理员关心的内容。但是最想知道的还是如何通过调整设计和代码实现、系统设置等方法提高软件的性能表现,以及如何发现并解决软件设计和开发过程中由于多用户访问而引起的缺陷。更关注的是使性能表现不佳的因素和由于多用户访问引起的软件故障,即我们通常说的性能瓶颈和性能缺陷。简而言之,开发想知道的是哪些地方是导致性能表现不佳的根源(毕竟性能测试反馈出来的问题,最终还是要他们去处理的....)架构设计、数据库设计、代码是否需要优化等都是他们应当考虑的。
四、前端性能
Web应用的前端响应时间指浏览器的页面加载时间。一般而言,浏览器的页面加载时间包括对HTML的解析、对页面上的图片以及CSS等文件的获取和加载、客户端脚本(JavaScript)的执行时间以及对页面进行渲染所花费的时间,这部分性能体现就被称为前端性能。其中占大头的主要是浏览器的展示和浏览器端脚本执行所消耗的时间。与服务器端不同,前端性能与用户量的多少并没有直接的关系,因为前端性能考察的主要是浏览器的展示和脚本执行时间,所以如何提高浏览器下载和执行资源的效率,如何让浏览器尽快开始渲染页面,如何让浏览器尽可能充分的利用缓存等问题是前端性能主要关注的。当然,严格上来说,前端性能还是和服务器端性能有点关系的,例如大多数Ajax应用都会使用JS脚本从服务器读取数据,获取数据需要的时间就依赖服务器端性能。
-------------------------------------------------------------------------分割线------------------------------------------------------------------------
最后插句题外话:综上,如果公司要你出具一份性能测试报告,你首先需要明确测试报告是给谁看的,然后再有针对性的说明什么业务场景下,性能指标达到了多少......等等。
关于性能指标,看下一篇博客吧。性能测试科普系列应该会水比较多的博客......