性能指标的监控与分析作为性能测试工作流程中重要的一环,直接关系到性能测试是否充分有效、性能测试结果是否能为系统投产提供有效参考,重要性不言而喻。
本文以性能瓶颈定位方法为主线,介绍如何运用各种性能指标进行性能瓶颈定位?
1、报告所述指标体系
包含配置参数指标体系和应用性能指标体系两部分。其中,配置参数指标体系总结了测试环境中对性能影响较大的部分参数及其参考值。
在正式开始性能测试之前,可通过本套配置参数指标体系对待测系统的各项参数配置进行检验,在测试前尽早规避一些由于配置参数导致的性能瓶颈。
2、应用性能指标体系
总结了对系统性能瓶颈有影响的主要性能指标,包括应用系统、服务器、数据库、中间件等各项指标值的参考值。进而分析各指标在不同组合取值的情形下,系统可能会出现的性能瓶颈,并给出相应的瓶颈定位和性能调优方式。
指标主要采用矩阵表格的形式展示,该表以各性能指标为横、纵坐标,在给出性能指标标准值(如表中的"各项性能指标标准值(保留)"行)的基础上,在指标两两组合相交的位置,给出此情况下可能会出现的性能瓶颈,以及相应的性能调优方式。
性能指标体系
1.1配置参数指标体系
构建配置参数指标体系的目的为在性能测试开始前,根据测试环境资源配置和待测交易的非功能需求,预先调整系统中可能影响性能的参数,提前规避由于各种配置参数带来的性能影响。
根据历史测试经验,应用系统的各项配置参数是影响系统性能的一个重要因素。经过对应用服务器、数据库服务器的大量数据收集以及研究梳理,本文总结研究出了配置参数指标体系,在该体系中详细介绍应用服务器、数据库服务器中可能对系统的性能产生影响的各种主要配置指标,并对每个指标的参考值进行了标注,为实际测试工作提供参考依据。
※※需注意,此范围仅作参考,其具体设置值需根据各个应用系统的实际情况进行相应的调整,从而使得各参数值能给系统带来更好的性能表现。
表1 配置参数指标体系示例
本体系需要从以下几个层面去使用:
第一是开始进行性能测试前,需要对照本体系将相关参数配置情况如实的记录下来;
第二就是根据测试结果并对照参考值调整相应的指标。
1.2应用性能指标体系
应用性能指标体系,主要从应用系统、服务器、数据库和中间件等方面归纳收集整理主要性能指标,该体系主要收录了一些经验数据,将一些常见的性能问题及发现方式通过该体系展现出来,其目的:
一是为读者学习提供参考,
二是为性能测试人员性能测试分析提供知识的积累;
并希望能够在以后的工作中能通过这个体系模板,不断的归纳总结出一些共性问题,使得性能测试的知识得到一个积累和沉淀。
表2展示的就是该体系中的部分内容,本体系采用了一种类似矩阵的方式来展示,这样可以通过不同指标的组合,列举出一些常见的性能问题,并能够给出简单的优化建议。
本体系横列为服务器、数据库和中间件的主要性能指标,纵列为应用系统最为关心的响应时间、TPS、成功率。
表2 应用系统性能指标体系示例
横列的第二行给出了这些指标的参考值范围及参考值的评价,这样可以给使用该体系的人员一个比较直观的概念,并且也能通过这些参考值范围给被测系统的性能优劣给出一个初步的判定。
在横列和纵列之间主要就是针对不同指标组合可能产生什么样的性能问题以及其解决办法的描述,可以说该体系是历史经验总结沉淀下来的成果。
在实际的性能测试工作中,测试人员可以在发现系统性能问题后直接对照本体系,查看是否有类似的问题描述,如果有可以通过描述的内容快速定位问题所在,并给出一定的调优建议;
如果没有类似的问题出现,需要测试人员将问题记录下来,按照常规方式定位问题所在,并总结这样的现象是否为常规的现象,如果是,需将它总结归纳到该体系中。
性能测试,难吗?
很多人都说性能测试难,难在哪?
一者涉及的技术面非常广泛,做性能测试,并不是学会了工具就可以了,性能测试需要了解的东西很多;
二者发现性能故障后,如何进行故障定位调优呢?这个过程较为复杂。
所谓难度最大是因为性能测试关注的测试类型非常多,除了我们常听说的压力测试、负载测试之外,还有容量测试、基准测试、可靠性测试、配置测试等等;
性能测试的指标也比普通的功能测试关注的验证点要多很多,有用户最关心的响应时间、错误率,还有企业最关心的服务器硬件资源利用率,以及工程师们关心的网络吞吐量、上传下载速率、TPS、HPS等等;
而且性能故障的定位和调优不能只是依赖于性能测试工程师,必须要有团队的协作和配合才能够完成复杂的整体调优工作。
性能测试,掌握哪些技术?
成为性能测试工程师,需要掌握哪些技术?
1、软件测试开发语言:
关于掌握脚本语言,学Java还是Python?
对于初学者来说,Python更加容易上手,同时python应用的领域也很广泛,如大数据、人工智能等各个方面。现在主流自动化或者性能测试工具才有Python语言多,必须深入学习体会应用。
2、性能测试工具:
比较推荐的是Locust工具。学习实践完成后,立即投入到正式的企业项目实践中,一方面为企业实现了零投入,高产出的价值,另一方面我们作为测试工程师,通过自己的技术提升,为自身和企业解决了实际工作中存在的性能问题。
3、性能测试调优
掌握性能测试故障定位及调优方法(数据库常见调优技术、架构调优技术、代码调优技术、设备调优方法)
4、※※性能测试现实工作中常见问题
- 项目需求缺乏的情况下,如何开展性能测试需求分析工作?
- 系统没有相关的历史数据,如何设计并发用户数和业务数据量?
- 如何进行性能测试必要性分析?如何分析并确认性能测试范围?
- 负载压测执行后,如何判断是否存在性能故障?
- 如果出现了性能故障,如何进行调优?如何确定调优结果?
- 如何解读各种性能测试数据和曲线图?
如何做好性能测试?
如果想要做好性能测试或性能调优,软件测试员必须具备良好的分析能力、观察能力,最重要的是要在实际项目和工作任务实践,掌握性能测试工作的全流程。
这有一次提升性能测试的机会,6月1日~6月3日,我们的资深导师商老师录制了性能测试实战训练营的课程!本次训练营性能测试小白也可以学,对性能测试方向感兴趣的小伙伴也可以参加哦~~
此次训练营通过具体的性能测试项目实战,让大家快速体验到性能测试工作的基本工作流程,性能测试工具的使用以及性能测试工作过程中常见问题的解决思路及实践,让大家能够深度了解性能测试,迎“难”而上。
参与方式:关注我的头条号并在后台私信我:【训练营】,即可获取资格。