软件测试中的性能测试是什么

性能测试顾名思义指的是应用软件中各项指标的负载情况 。
根据百度百科的释义,性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 。
性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样 。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试 。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测 。
简而言之,性能测试目标就是为了识别并消除应用程序中的性能瓶颈 。
今天,我们就以博睿数据的个别产品为例,讲讲性能测试的那些事儿 。
性能测试的基本常识
首先,要想全面的认识性能测试,就要对性能测试的基本常识、术语以及性能测试的基本方法论有基本的认识 。
性能测试的概念前文已经陈述,在这里我们就不再赘述 。
我们来看下什么是软件性能 。
软件测试是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性 。
一般而言,性能测试主要包含以下5个术语:
响应时间:对请求做出响应需要的时间 。
并发用户数:在同一时间段内访问系统的用户数量 。
吞吐量:单位时间内系统处理的客户请求的数量 。
性能计数器:描述服务器或操作系统性能的一些数据指标 。
思考时间:休眠时间 。
按照类型来划分,性能测试又分为六大类型:
负载测试:负载测试用于测试应用程序在正常和峰值情况下的性能 。在负载测试中,我们对应用程序性能好坏的判定依据主要源于该应用程序对用户请求的响应情况,以及它在不同负载变化下(可接受的程度内)一致响应的能力来检测的 。
在应用程序出现异常情况前,该应用程序所能容纳的最大负载量是多少?
在系统变慢或出现崩溃之前,数据库所能处理的数据量有多少?
是否有任何与网络相关的问题需要解决?
验收性能测试:通过模拟生产运行的业务压力量和使用场景组合,测试系统性能是否满足生产性能要求 。
压力测试:压力测试旨在寻找破坏系统的方法 。该测试同时还能为我们找到系统可以承受的最大负载范围 。
通常,压力测试采用增量方法,通过逐步增加负载来观察系统各项性能指标的变化情况 。
首先,我们可以从应用程序已经测试过的负载开始(例如当前用户数 100 个);然后慢慢地增加更多的负载来给系统增加压力(例如从 100 个用户数逐步增加到 10000) 。
当我们发现服务器没有响应请求的那个点开始,这个点就被认为是断点(在一些性能测试报告图表中,往往也视为性能拐点) 。
系统在崩溃前能承受的最大负载是多少?
在实施压力测试过程中,系统是如何崩溃的?系统能否在崩溃后自行恢复?
被测系统/应用程序在处理异常负载时,有哪几种中断方式?
配置测试:通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能的影响程度,从而找到系统各项资源的最优分配原则 。
可靠性/可恢复测试:可靠性测试或恢复测试用于验证应用程序在出现故障或异常行为后,是否能够恢复到正常状态,以及恢复阶段需要经过多长时间 。
例如在某线交易站点出现故障,致使用户不能在一天的某个点(高峰时间)买卖股票,但在一两个小时后用户能够进行在线股票交易,我们就可以说该应用程序是可靠的,即有能力从异常行为中自行恢复 。

推荐阅读