软件测试 | 性能调整基础
更多软件测试学习资料
在性能测试工作中经常会提到“性能调优”或者“系统调优”等概念,实际上“性能调优“或者”系统调优”都属于性能调整的范畴。性能调整是比性能调优更准确的说法,例如可能为了让某些部分“更优”而把某些部分调得“不优”。
所谓性能调整是为了改变系统特性而对系统软件或者硬件进行的修改,性能调整不是测试人员的职责,性能测试工程师的主要任务是主要任务是发现定位性能问题。对于性能测试中发现的问题,通常由性能测试工程师、DBA、系统管理员、开发人员共同来解决,但是对于测试人员,了解调整的相关知识则是十分必要的。
1)确定问题
通常情况下,首先确定系统是否存在问题,并对问题进行正确的定位,重点是发现系统瓶颈。通常,确定系统问题从下面几个方面入手。
应用程序代码:通常情况下,很多程序的性能问题都是写出来的,因此对于发现瓶颈的模块,应该首先检查一下代码;
数据库配置:数据库配置经常会引起整个系统运行缓慢,一些诸如 Oracle 的大型数据库都是需要 DBA 进行正确的参数调整才能投产的。
操作系统配置:操作系统配置不合理也可能引起系统瓶颈。
硬件设置:磁盘速度、内存大小等都是容易引起瓶颈的原因,因此这些都是分析的重点。
网络:网络负载过重会导致网络冲突和网络延迟。
同时,还要对系统的使用情况进行调查,例如,以下几种情况。
是否听到了跟多用户的抱怨?
是否某些操作的响应时间会随着时间越来越长?
CPU 的使用率是否很低而 I/O 的使用率却很高?
使用过程中性能是否稳定?
系统性能问题不是显而易见的,要进行仔细的查找才能够进行正确的定位。
2)确定原因
确定系统存在问题后就要仔细分析,确定引起问题发原因。确定原因很大程度上靠的是个人经验,涉及的知识有操作系统、数据库、网络和程序开发等许多方面。
和确定性能问题一样,确定原因仍要广泛地搜集信息。通常要进行如下的分析。
问题的影响是什么,是响应时间还是业务吞吐量,或者是其他问题?
是大多数用户还是少数用户遇到了问题,如果是少数用户,这几个用户与其他用户的操作有什么不同?
系统资源监控的结果是否正常:CPU 的使用是否到了极限?I/O 情况如何?
问题是否集中在某一类模块中?
是客户端还是服务器出现了问题?
系统硬件配置是否够用?
是否实际负载超过了系统的负载能力?
是否未对系统进行优化?
通过这些分析以及一些具体系统相关的问题,可以对系统瓶颈有更深入的了解,进而分析出真正的原因。
3)确定调整目标和解决方案
在分析出问题的原因后,测试人员和其他系统调整人员首先要确定调整目标,然后设计解决方案。确实调整目标的主要作用是明确何时停止调整系统,否则工作将永无尽头。
每个系统都有不同的特点,因此调整目标可能不同。例如,下面这些都是系统的调整目标。
提高系统吞度量
缩短响应时间
更好地支持并发
设计解决方案的主要依据就是这些调整目标,有了明确的方案和目标,就可以进行后面的工作了。
4)测试解决方案
实施解决方案后,就要对方案进行测试。测试人员可以使用以前的测试场景来进行测试,验证系统是否解决了性能问题。测试解决方案尽量在仿真测试环境下进行,因为在生产环境下可能会带来破坏,除非充分估计了测试的风险,并且准备了充分的补救方案。
5)分析调整结果
性能调整的最后一步是分析调整结果,如果没有解决问题,则要重复前面的工作。在测试系统调整方案过程中,要经常分析所做的工作,例如没能准确定位问题或调整方案不正确,预期目标可能不会达到,尽早发现这些问题可以使工作方向正确。
分析结果主要考虑下面的问题。
系统调整是否达到或者超出了预期目标?
系统是调整性能得到了改善,还是牺牲某部分性能来解决问题?
调整是否可以结束了?
最后,如果达到了预期目标,则调整工作完成。
评论