云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 软件测试相关资料合集

软件测试相关资料合集

  • 62 次阅读
  • 3 次下载
  • 2025/6/18 18:41:06

唉!很多东西,看似简单,实际上还是需要去深入学习理解。融汇贯通

用户视角的软件性能

从用户的角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,当用户单击一个按钮、发出一条指令或是在Web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。图1.1以一个Web系统为例,说明了用户的这种印象。

发出请求请求应用服务器DB服务器用户用户感受到响应返回数据应用界面呈现呈现时间系统响应时间

图1.1 Web系统的响应

必须要说明的是,用户所体会到的“响应时间”既有客观的成分,也有主观的成分。例如,用户执行了某个操作,该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数据,响应时间应该是从用户操作开始到所有数据返回完成的整个耗时;但从用户的主观感知来说,如果采用一种优化的数据呈现策略,当少部分数据返回之后就立刻将数据呈现在用户面前,则用户感受到的响应时间就会远远小于实际的事务响应时间(顺便说一下,这种技巧是在C/S结构的管理系统中开发人员常用的一种技巧)。

表1-1给出了管理员关注的部分性能相关问题的列表。

表1-1 管理员关注的部分性能相关问题

管理员关心的问题 服务器的资源使用状况合理吗 应用服务器和数据库的资源使用状况合理吗 系统是否能够实现扩展 系统最多能支持多少用户的访问?系统最大的业务处理量是多少 系统性能可能的瓶颈在哪里 更换哪些设备能够提高系统性能 系统能否支持7×24小时的业务访问 软件性能描述 资源利用率 资源利用率 系统可扩展性 系统容量 系统可扩展性 系统可扩展性 系统稳定性

响应时间是指系统对事件产生响应所需要的时间。

管理员已经知道,在并发用户数为100时,A业务的响应时间为8秒,那么此时的系统状态如何呢?

服务器的CPU使用是不是已经达到了最大值?是否还有可用的内存?应用服务器的状态如何?我们设置的JVM可用内存是否足够?数据库的状况如何?

是否还需要进行一些调整?这些问题普通的用户并不关心,因为这不在他们的体验范围之内;但对管理员来说,

要保证系统的稳定运行和持续的良好性能,就必须关心这些问题。

管理员还会想要知道系统具有多大的可扩展性,处理并发的能力如何;而且,管理员还会希望知道系统可能的最大容量是什么,

系统可能的性能瓶颈在哪里,通过更换哪些设备或是进行哪些扩展能够提高系统性能,了解这些情况,管理员才能根据系统的用户状况制定管理措施,

在系统出现计划之外的用户增长等紧急情况的时候能够立即制定相应措施,进行迅速的处理;

此外,管理员可能还会关心系统在长时间的运行中是否足够稳定,是否能够不间断地提供业务服务等。

对于一个没有达到预期性能规划的应用,开发人员最想知道的是,这个糟糕的性能表现究竟是由于系统架构选择的不合理还是由于代码实现的问题引起?由于数据库设计的问题引起?抑或是由于系统的运行环境引发?

或者,对于一个即将发布到现场给用户使用的应用,开发人员可能会想要知道当大量用户访问这个系统时,系统会不会出现某些故障,例如,是否存在由于资源竞争引起的挂起?是否存在由于内存处理等问题引起的系统故障?

因此,对开发人员来说,单纯获知系统性能“好”或者“不好”的评价并没有太大的意义,他们更想知道的是“哪些地方是引起不好的性能表现的根源”或是“哪里可能存在故障发生的可能”。

表1-2给出了开发视角的软件性能关注内容。

表1-2 开发人员关注的性能问题

开发人员关心的问题 架构设计是否合理 数据库设计是否存在问题 代码是否存在性能方面的问题 系统中是否有不合理的内存使用方式 系统中是否存在不合理的线程同步方式 系统中是否存在不合理的资源竞争 问题所属层次 系统架构 数据库设计 代码 代码 设计与代码 设计与代码 总结

以上我们描述了3个不同层面上的软件性能关注点,由此可见,不同的对象对软件系统性能的关注是有着显著的差异的。从项目管理的角度,以我们的系统干系人来分析,大部分用户对性能的理解属于“用户视角”,项目的维护人员或是用户方的项目经理一般会从“管理员视角”来看待软件性能的问题,而项目的创建者——开发人员(包括设计人员)自然就是从“开发视角”来关注软件性能了。

因此,对软件性能测试来说,在不同的层面上要求我们关注不同的内容:从直接体验的用户的角度来说,表现为软件系统对用户操作的响应时间;在系统或是管理员的关注层面,我们还需要从软件的性能表现分析系统的可扩展性、并发能力等指标;最后,从最贴近软件的创建者——开发人员的角度来说,还需要为软件性能问题进行定位,了解性能的制约因素

和引起性能问题的关键 原因。

1.2 软件性能的几个主要术语

响应时间、并发用户数、吞吐量、性能计数器,在使用性能测试工具进行测试时,还会接触到“思考时间(Think Time)”的概念

(1)响应时间是“对请求作出响应所需要的时间”,而且,我们把响应

时间作为用户视角的软件性能的主要体现。图1.1将用户所感受到的软件性能(响应时间)划分为“呈现时间”和“系统响应时间”两个部分,其中“呈现时间”取决于数据在被客户端收到响应数据后呈现页面所消耗的时间,例如,对一个Web应用,呈现时间就是浏览器接收到数据后用户把数据呈现出来的时间;而“系统响应时间”指应用系统从请求发出开始到客户端接收到数据所消耗的时间。不会区分“系统响应时间”和“响应时间”,直接把这里的“系统响应时间”等同于“响应时间”。

“系统响应时间”定义为“应用系统从发出请求开始到客户端接收到响应所消耗的时间”,而许多描述性能测试的书或者工具却把“响应时间”定义为“应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间”。

响应时间可以被进一步分解。图1.2描述了一个Web应用的页面响应时间的构成。从图中可以看到,页面的响应时间可被分解为“网络传输时间”(N1+N2+N3+N4)和“应用延迟时间”(A1+A2+A3),而“应用延迟时间”又可以分解为“数据库延迟时间”(A2)和“应用服务器延迟时间”(A1+A3)。之所以要对响应时间进行这些分解,主要目的是为了能更好定位性能瓶颈的所在。在后续的实例讨论中,读者将会看到如何应用这些响应时间的分解进行性能问题的定位。

图1.2 Web应用的页面响应时间分解

因此,在进行性能测试时,“合理的响应时间”取决于实际的用户需求,而不能依据测试人员自己的设想来决定。

(2) 并发用户数

该概念不从业务角度出发,而是从服务端承受的压力出发,描述的是同时向客户端发出请求的客户,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。

首先,如果性能测试的目标是验证当前系统能否支持现有用户的访问,最好的办法就是弄清楚会有多少用户会在同一个时间段内访问被测试的系统,如果使用性能测试工具模拟出与系统的访问用户数相同的用户,并模拟用户的行为,那得到的测试结果就能够真实反映实际用户访问时的系统性能表现,这样一来,也就能够通过性能测试了解到当系统处于实际用户访问时,会具有怎样的性能表现。这里提到的在同一个时间段内访问系统的用户数量,也就是我们说的并发用户数的一个概念,这种并发的概念通常在性能测试(Performance Testing)方法中使用,用于从业务的角度模拟真实的用户访问,体现的是业务并发用户数。

下面我们用一个更接近实际的例子来说明这两个并发概念之间的不同。 图1.4所示是实际应用系统的演示。

应用界面服务器VUVU2VU3VUGVUG 如果考虑整个系统运行过程中服务器所承受的压力,情况就会不同了:在该系统的运行过程中,把整个运行过程划分为离散的时间点,在每个点上,都有一个“同时向服务端发送请求的客户数”,这个就是所称的服务端承受的最大并发访问数。如果能找到运行过程中可能出现的最大可能的服务端承受的最大并发访问数,则在该用户数下,服务器承受的压力最大,资源承受的压力也最大,在这种状态下,可以考虑通过并发测试(Concurrency Testing)发现系统中存在的并发引起的资源争用等问题。

假设有一个OA系统,该系统有2 000个使用用户——这就是说,可能使用该OA系统的用户总数是2 000名,这个概念就是“系统用户数”,该系统有一个“在线统计”功能(系统用一个全局变量计数所有已登录的用户),从在线统计功能中可以得到,最高峰时有500人在线(这个500就是一般所说的“同时在线人数”),那么,系统的并发用户数是多少呢?

根据我们对业务并发用户数的定义,这500就是整个系统使用时最大的业务并发用户数。

服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。

那么,该系统的服务端承受的最大并发访问数是多少呢?这个取决于业务并发用户数和业务场景,一般可以通过对服务器日志的分析得到。

前面已经说过,“并发用户数”决定于具体的业务场景,因此,在确定这个“并发用户数”之前,必须先对用户的业务进行分解,分析出其中的典型业务场景(也就是用户最常使用、最关注的业务操作),然后基于场景采用某些方法获得其“并发用户数”。

在实际的性能测试工作中,测试人员一般比较关心的是业务并发用户数,也就是从业务角度关注究竟应该设置多少个并发数比较合理,因此,在后面的讨论中,也是主要针对业务并发用户数进行讨论,而且,为了方便,直接将业务并发用户数称为并发用户数。

那么,究竟应该如何获得测试人员关心的并发用户数的具体数值呢?

下面给出了一些用于估算并发用户数的公式,详细内容可参见书后参考文献[3]。

搜索更多关于: 软件测试相关资料合集 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

唉!很多东西,看似简单,实际上还是需要去深入学习理解。融汇贯通 用户视角的软件性能 从用户的角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,当用户单击一个按钮、发出一条指令或是在Web页面上单击一个链接,从用户单击开始到应用系统把本次操作的结果以用户能察觉的方式展示出来,这个过程所消耗的时间就是用户对软件性能的直观印象。图1.1以一个Web系统为例,说明了用户的这种印象。 发出请求请求应用服务器DB服务器用户用户感受到响应返回数据应用界面呈现呈现时间系统响应时间 图1.1 Web系统的响应 必须要说明的是,用户所体会到的“响应时间”既有客观的成分,也有主观的成分。例如,用户执行了某个操作,该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数据,响应时

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com