性能测试基础

软件性能涉及响应时间、并发用户数、吞吐量等关键指标,不同角色对其理解各有侧重。性能测试旨在验证性能指标,评估系统能力,包括功能、可靠性、效率等方面的验证。同时,性能测试能发现系统缺陷并进行性能优化规划。
摘要由CSDN通过智能技术生成

什么是软件性能

软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及时性及资源经济型的要求。
对于一个软件系统,运行时执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好
在一定的硬件条件下,软件执行时间最直接影响的因素是软件的算法复杂度
软件性能与软件功能是软件能力的不同体现,以一个人的工作能力来比喻,功能是某个人能够做的事,性能是指这个人完成这件事情的效率

不同角色对软件能的理解

从系统用户角度看软件性能:
系统用户就是使用系统的人员,系统用户看到的性能就是软件的响应时间,即当用户在软件中执行一个功能操作后,软件把本次操作结果完全展示给用户所消耗的时间。从用户角度看,软件的响应时间越短,统性能越好。
从系统运维人员角度看:
运维人员关注系统响应时间的同时,还需要关注系统的资源利用率、系统最大容量、系统访问量变化趋势、数据量增长幅度、系统扩展功能等。
从开发人员的角度看:
开发人员力求从系统软件架构、代码结构、算法复杂度、数据库设计方案、数据库访问效率等方面保障软件的性能。

常用的性能指标

响应时间
响应时间指用户感受到的软件系统为其服务所耗费的时间。不同类型的系统,响应时间的影响因素度也不同。
单机软件系统:此类软件响应时间主要取决于运行软件的计算器当前资源的占用情况,在资源比较空闲的情况下,就是计算机运行该软件程序所需的处理时间。
C/S结构的网络软件统:指客户端/服务器系统。此类软件的响应时间主要包含客户端执行时间、网络通信时间和服务器端的响应时间。以QQ 登录为例,用户执行QQ后,输入用户名和密码,单击“登录”按钮,到登录成功显示好友列表窗口为止的时间就是软件的登录响应时间,该时间可以分解为:计算机执行QQ客户端程序时间+登录信息网络传输时间+服务器端处理登录请求时间+好友列表返回时网络传输时间+好友列表在客户端程序中显示等部分。
B/S 结构的网络软件系统:指浏览器/服务器系统。此类软件的响应时间指从网页上点击某个网页链接,到页面完全在浏览器里展现出来的时间。以在“淘宝”上查询“手机”商品为例,当用户在淘宝网首页的搜索栏中输入“手机”后,单击“查询”按钮,到查出来的手机结果显示在浏览器页面中为止的时间,就是软件系统的查询响应时间,该时间可以分解为:查询请求网络传输时间+服务器端处理查询请求时间+查询结果返回网络传输时间+查询结果在浏览器中打开时间。
对于软件系统来说,设定响应时间指标需要根据系统功能的特点来进行定义,不能笼统定义系统响应时间要求。在进行系统性能需求定义时,可以对系统功能按照特点进行分类,针对每种功能进行响应时间指标的定义。常见的功能类型包括:
登陆
增删改操作
查询类操作
统计类操作
交易类操作
图形类操作

在定义响应时间时,还尘更针对系然不同忙闲情况,制定不同的指标,一般情况下,需要定义三种情况下系统的响应时间:
闲时响应时间:指系统中访问用户数量较少的情况下,用户访问系统的响应时间,也可理解为在不收其他用户干扰的情况下,系统应该具有的性能表现。因为用户访问系统具有一定规律,很多情况下,用户访问系统时系统处于相对空闲状态,在这种情况下系统应该以最快的速度完成用户请求,闲时响应时间定义了系统最佳响应时间要求。
忙时响应时间:指在系统处理正常访问用户量的情况下,用户访问系统的响应时间。该指标定义了系统在正常访问状态下应该具有的响应时间要求,体现了系统在正常访问状态下的性能表现。
峰时响应时间:指在系统具有大量并发用户的情况下,用户访问系统的响应时间。该指标定义了系统在承载最大并发用户情况下应该具有的响应时间要求,体现了系统压力负荷最大情况下的性能表现,也可以理解为系统最大响应时间要求。
并发用户数
并发用户数指系统能够同时外理的用户请求的数目,也可以理解为同时向系统提交请求的用户数目。与并发用户数相关的概念还包括注册用户数和在线用户数。注册用户数指系统中全部注册用户的数量;在线用户数指在相同时间内登陆了系统,并在系统中进行操作的用户数量。
并发用户数刻画的是某一时刻向系统同时提交请求的用户数量,只是系统某个瞬时状态的描述,并不能完全体现系统的性能表现。由于每个请求到达服务器后,服务器程序都需要分配计算资源完成此次请求,因此并发用户数越大,系统承受的压力就越大,系统的响应时间就越长。为了更加精确地描述系统性能指标,一般可以使用平均并发用户数和最大并发用户数来刻画系统性能。
平均并发用户数:指在系统正常访问量情况下的并发用户数。
最大并发用户数:指在峰值访问情况下的并发用户数。
如何判断是否达到峰值访问情况?
系统响应时间达到了峰值响应时间,即系统的响应时间已经达到了用户能够接受的上限。
系统服务器资源利用率已经达到了上限,即服务器的CPU利用率、内存利用率等指标已经达到了需求规定的上限。
系统请求成功率,即成功请求数/总请求数。当系统压力过大时,某些用户请求就会执行失败,如果失败率过高,就说明系统已经达到了处理能力的上限,所以可以根据成功率来判断是否已经达到了最大并发用户数。
通过上述描述可以看出,平均并发用户数仅反映了系统某个时刻的用户访问情况,并不反映系统的性能情况;而最大并发用户数反映了系统的处理能力,往往作为一项重要的性能指标在需求分析时进行定义。
吞吐量
吞吐量指单位时间内系统处理的客户请求数量,体现系统的整体处理能力。系统吞吐量越大,说明系统性能越好。衡量吞吐量的常用指标包括:
RPS:请求数/秒,描述系统每秒能够处理的最大请求数
PPS:页面数/秒,描述系统每秒能够显示的页面数量
PV:页面数/天,描述系统每天总的Page View 数量
TPS:事务/秒,描述系统每秒能够处理的事务数量
QPS:查询/秒,描述系统每秒能够处理的查询请求数量
服务器能计数器
服务器性能计数器指服务器或操作系统性能的一些数据指标,在性能测试中发挥着监控和分析的关键作用。常用的操作系统性能计数器包括System Load、进程与线程数、使用内存数、CPU使用率、磁盘I/O、网络I/O等。性能计数器一般可以通过操作系统命令进行查看或采集,在系统运行时,可以对这些指标设置报警阈值,当监控系统发现性能计数器超过阈值时,就向系统运维人员报警,及时发现服务器资源即将耗尽的情况,避免由于系统过载发生拒绝服务、系统崩溃等情况。
与性能计数器相关的另一个概念是“资源利用率”。资源利用率反映的是在一段时间内服务器资源平均被占用的情况,能够更加直观地反映系统当前的运行状况,例如 CPU利用率如果达到80%,就说明当前CPU已经基本耗尽,系统处于满载状态。所以在进行性能需求分析时,往往通过资源利用率指标来定义服务器性能要求。

软件性能的影响因素

软件系统的性能表现收到很多因素的影响,主要因素包括硬件设施、网络环境、操作系统、中间件、应用程序、并发用户数、系统数据量等,如果系统中的哪个环节出现了性能瓶颈,就会严重影响系统的运行性能。

软件性能测试的概念

定义1: 软件性能测试指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行的测试活动。
定义2: 软件性能测试指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能指标是否满足性能需求要求的测试活动。
定义3: 软件性能测试指检验软件性能是否符合性能指标需求定义的测试活动。
综上所述,软件性能测试的概念:
软件性能测试指为了验证软件系统性能表现而开展的一系列测试活动,可以从狭义和广义两个角度来理解:
狭义的软件性能测试指为验证软件性能指标、评估系统服务能力、推荐系统软硬件配置、完成系统性能优化等而开展的测试活动,这也是一般意义上人们对软件性能测试的理解。
广义的软件性能测试指在测试过程中需要相关性能测试方法配合完成的系统测试活动,包括可靠性测试、可恢复性测试、稳定性测试、兼容性测试、可扩展性测试等。

软件性能测试的目标

能力验证
验证性能指标与需求的符合情况
软件性能测试最主要的目标就是验证软件性能是否符合软件需求文档中的性能指标要求,是否符合预定的设计目标,是否符合用户现在或将来的应用要求等,可称之为性能符合性验证。
前提:需求中已经明确性能指标的要求,如硬件设备、软件环境、网络条件、基础数据等。
性能符合性验证是进行性能测试最重要和最基础的测试内容。
获得系统服务能力
满足需求中性能指标的要求是对系统性能的最低要求。再此基础上,系统使用方可能还需要了解系统在各种情况下的服务能力,如系统能够支持多少用户同时在线、能够支持多少用户并发访问、能够存储多大的数据量等。
此类评价还包括软件在不同环境下的性能极限,软件性能岁用户数量的变化情况、软件性能随环境变化的情况、在软件性能指标允许的情况下系统最长运行时间,软件所能支持的最大数据量、支持的最低运行环境等,所以这种测试了称为软件性能能力验证。
评价系统可靠性
软件质量是指软件产品中能满足给定需求的各种特性的总和。ISO/IEC 9126 中规定了软件的 6 个质量特性,即功能性(Functionality)、可靠性(Reliability)、易用性(Usability)、效率性 (Eficiency)、维护性(Maintainability)和可移植性(Portability),每个特性包含若干子特性。其中软件可靠性的测试与软件性能测试关系密切,一般也是通过性能测试的方法来完成系统可靠 性测试工作。 软件可靠性是软件产品在规定的条件下和规定的时间内完成规定功能和性能的能力。
该定义包括两方面的含义:
在规定的条件下和规定的时间内、软件不引起系统失效的概率。
在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。
软件系统的可靠性一般用平均无故障时间(NTTF)来度量。软件可靠性又包括软件的成熟性、容错性和易恢复性
容错性是指软件发生故障时,软件产品维持应有的功能和性能的能力
可恢复性是指在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及为达到此目的所需的时间和努力相关的软件属性
可恢复性测试通常需要关注恢复所需的时间以及回复的程度
有一种系统恢复手段是故障转移,例如系统采用双机热备机制,当其中主服务器发生故障时,系统业务能够自动切换到备份服务器。
缺陷发现
缺陷发现性能测试的主要目的是通过性能测试的手段来发现系统中存在的缺陷,并不需要验证性能指标是否满足需求的要求

能力规划
性能优化

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值