读书笔记之性能测试从零开始(一)

本文介绍了软件性能测试的发展,强调了性能测试从定性到定量的转变。解释了软件的主体、时间和空间要素,指出软件性能关乎资源占用和运行速度。讨论了功能与性能的区别,并从用户角度探讨了性能指标,如响应时间、吞吐量、资源使用率等。最后,从软件人员视角分析了提高性能的策略,如消除内存泄漏、空间和时间的权衡。
摘要由CSDN通过智能技术生成

《性能测试从零开始》第一章

1.历史回顾与现在发展

之前的性能测试是以验证软件系统是否达到相关性能指标为主要目的,而现在性能测试不仅要找出性能瓶颈还要诊断它为什么存在,甚至进一步预测系统上线后可能在何种情况下会出现性能拐点。这些变化标志着性能测试从定性分析进入到定量分析的时代,同时对性能测试人员提出了更高的要求,度量的定义和度量的采集到度量数据的分析,无不深入到测试系统的各个环节中去。

2.什么是软件

按照关键要素:主体,时间,空间,事件理解

主体:程序,是人类逻辑思维的物化,表现形式为一系列指令代码。
时间:即使计算机速度再快,任何软件程序每一段代码的运行都是需要时间的,例如从用户的感受来讲,就是程序将运行结果响应给用户的速度。
空间:软件运行的环境,以资源的方式存在,通常是软件以间接或直接的方式占用并使用硬件资源和其他软件资源。
硬件资源主要指运行该软件的硬件平台,有CPU、内存和存储系统等,如果软件是基于网络架构的,那么硬件还有网络硬件,如交换机、路由器等。
软件资源包括操作系统、开发平台、中间件和数据库等,它们以库文件和API的方式提供给应用软件使用。
事件:软件按照用户的要求运行,运行的同时必然要占用时间资源和空间资源。
 

3.软件性能的产生

短短几十年,软件行业出现了奇迹般的高速发展,软件广泛应用到各个领域中,用户不再把软件当成神秘的玩意,而是一个普通的商品,开始从经济学的角度来考虑软件的经济效能。讲经济就是要运用投入产出的关系分析和指导软件工程的各种活动和环节,软件运行不能以硬件不计成本为假设,要尽可能地少占用各种硬件资源,同时,软件运行的速度也要尽可能地快,每秒5000次加法运算是根本不可想象的,也是不可能被用户接受的。这些其实就是用户的最原始的性能需求。

4.功能和性能的关系

软件性能和功能区别的实质是,软件功能焦点在于软件“做什么”,关注软件物质“主体”发生的“事件”;而软件性能则关注于软件物质“做得如何”,这是综合“空间”和“时间”考虑的方案(资源和速度),表现为软件对“空间”和“时间”的敏感度。软件的性能实现是建立在功能实现的基础之上的。
 

5.用户眼里的软件性能

以前:又要马儿跑(响应时间),又要马儿少吃草(消耗和占用的资源)

现在:不仅要让马儿跑,还要马儿能快能慢(软件系统的伸缩性)

           路遥知马力(软件系统在长时间运行下的稳定性)

           细分: 计算性能(速度快)、资源的使用和回收(硬件和软件)、启动时间、伸缩性(并发用户数和平均响应时间)、稳定性

因此,在性能测试报告中一般要包含:响应时间,内存使用率,I/O占用率等,因为这是用户关心的内容

性能指标:

响应时间(Response time):响应时间就是用户感受软件系统为其服务所耗费的时间,对于网站系统来说,响应时间就是从点击了一个页面计时开始,到这个页面完全在浏览器里展现计时结束的这一段时间间隔。根据“管辖区域”不同,响应时间可以细分为:(1)服务器端响应时间,这个时间指的是服务器完成交易请求执行的时间,不包括客户端到服务器端的反应(请求和耗费在网络上的通信时间),这个服务器端响应时间可以度量服务器的处理能力。(2)网络响应时间,这是网络硬件传输交易请求和交易结果所耗费的时间。(3)客户端响应时间,这是客户端在构建请求和展现交易结果时所耗费的时间。那么客户感受的响应时间其实是等于客户端响应时间+服务器端响应时间+网络响应时间。细分的目的是为了方便定位性能瓶颈出现在哪个节点上。

吞吐量(Throughput):吞吐量是我们常见的一个软件性能指标,对于软件系统来说,“吞”进去的是请求,“吐”出来的是结果,而吞吐量反映的就是软件系统的“饭量”,也就是系统的处理能力,具体说来,就是指软件系统在每单位时间内能处理多少个事务/请求/单位数据等。但它的定义比较灵活,在不同的场景下有不同的诠释,比如数据库的吞吐量指的是单位时间内,不同SQL语句的执行数量;而网络的吞吐量指的是单位时间内在网络上传输的数据流量。吞吐量的大小由负载(如用户的数量)或行为方式来决定。

资源使用率(Resource utilization):常见的资源有:CPU占用率、内存使用率、磁盘I/O、网络I/O。

点击数(Hits per second):点击数是衡量Web Server处理能力的一个很有用的指标。需要明确的是:点击数不是我们通常理解的用户鼠标点击次数,而是按照客户端向Web Server发起了多少次http请求计算的,一次鼠标可能触发多个http请求,这需要结合具体的Web系统实现来计算。

 并发用户数(Concurrent users):并发用户数用来度量服务器并发容量和同步协调能力。在客户端指一批用户同时执行一个操作。并发数反映了软件系统的并发处理能力,和吞吐量不同的是,它大多是占用套接字、句柄等操作系统资源。

6.软件人员眼里的软件性能

1)消除软件对空间和时间不必要的浪费--内存泄漏

2)以空间换时间

3)以时间换空间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值