只有很好的搞清楚了性能的定义和概念之后,在性能测试工具中监控和分析中,会很好的帮助和理解,为什么要这样做
一般来讲,性能首先是一种指标,表明软件系统和构件对于其及时性要求的符合程度;其次是软件产品的一种特性,可以用时间来进行度量。
性能的及时性:用响应时间或吞吐量来衡量
响应时间:是对请求做出响应所要求的时间
对于单个事物,响应时间就是完成事物所需要的时间;
对于用户任务,响应时间体现为端到端的时间 (比如:用户单击OK按钮后2秒内收到结果,就是一个对用户任务响应时间的描述)
对交互式的应用(比如Web应用)来说,一般以用户感受的响应时间来描述系统的性能;
对于非交互式应用(如嵌入式系统或银行等的业务处理),响应时间是指系统对事件产生响应所需要的时间。
不同用户,所关注的性能不一样:
1.从用户的角度:软件性能就是软件对用户操作的响应时间。
2.从管理员的角度:软件性能首先表现在系统的响应时间上,这与用户视角一致,但管理员还会关注和系统状态相关的信息,比如,管理员已经知道在并发用户数为100时,A业务的响应时间为8s,那么此时的系统状态如何,CPU & 内存 & JVM & 数据库 & 应用服务器 等的状态。另外,管理员还想知道系统具有多大的可拓展性、处理并发的能力、系统科能的最大容量、系统可能的性能瓶颈、稳定性等
服务器的资源使用状况合理吗?-----------------------------------------------------------------资源利用率
应用服务器和数据库的资源使用状况合理吗?------------------------------------------------资源利用率
系统是否能够实现拓展------------------------------------------------------------------------------系统可拓展性
系统最多能支持多少用户的访问?系统最大的业务处理量是多少?--------------------系统容量
系统性能可能的瓶颈在哪里------------------------------------------------------------------------系统可拓展性
系统能否支持7x24小时的业务访问--------------------------------------------------------------系统稳定性
3.开发的角度:开发人员会关心主要的用户感受------响应时间,也会关心系统拓展性等管理人员的内容,最重要的是他们想知道如何通过调整设计和代码实现、系统设置等方法提提高软件性能的性能表现,以及如何发现并解决软件设计和开发过程中由于多用户访问引起的缺陷。因此,其最关注的是使性能表现不佳的因素和由于大量用户访问印发的软故障,也就是通常所说的性能瓶颈和系统中存在的大量用户访问时表现出来的缺陷
架构设计是否合理-----------------------------------------------------系统架构
数据库设计是否合理--------------------------------------------------数据库设计
代码是否存在性能方面的问题--------------------------------------代码
系统中是否有不合理的内存使用方式-----------------------------代码
系统中是否存在不合理的线程同步方式--------------------------设计与代码
系统中是否存在不合理的资源竞争--------------------------------设计与代码
对软件性能测试来说,在不同的层面上要求我们关注的内容:
从直接体验的用户角度来说,表现为软件系统对用户操作的响应时间;
从系统和管理员层面,还需要分析系统的可拓展性、并发能力等指标;
从开发人员的角度,还需要为软件性能问题进行丁文,了解性能的制约因素和引起性能问题的关键原因
参考资料 段念《软件性能测试过程详解与案例剖析》