logo资料库

性能测试基本概念、应用场景.docx

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
随着软件行业的快速发展,现代的软件系统越来越复杂,功能越来越多,测试人员除 了需要保证基本的功能测试质量,性能也随越来越受到人们的关注。以下几个方面介绍基 础的性能测试理论 目录: 一、 什么是软件性能 二、不同群体眼中的性能 三、性能测试类型 四、性能测试应用场景 五、性能测试基本概念 六、理发店模型和地铁进站模型 七、做好性能测试需要掌握的知识 正文: 一、 什么是软件性能 定义:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的 功能,而是在完成该功能时展示出来的及时性。如:响应时间、稳定性等 由定义可知性能关注的是软件的非功能特性,所以一般来说性能测试介入的时机是在 功能测试完成之后。另外,由定义中的及时性可知性能也是一种指标,可以用时间或其它 指标来衡量,通常我们会使用某些工具或手段来检测软件的某些指标是否达到了要求,这 就是性能测试。 性能测试定义:指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对 系统的各项性能指标进行测试。 二、不同群体眼中的性能 不同的人由于人生观、世界观、价值观以及教育背景、知识体系、人生阅历的不同, 对于同一事物或问题的看法可能不同。对于软件性能也是如此,不同的人由于视角的不 同,所关注的点也可能不同。下面来看看在不同的人群眼中性能分别是什么样的。 用户眼中的性能 开发眼中的性能
系统管理员眼中的性能 测试眼中的性能是什么样的呢? 测试人员通常是做为软件质量控制的一个角色,不仅仅是找 bug,需要对整个软件的
质量负责,性能也属于质量的一部分,因此测试人员眼中的性能应该是全面的,考虑的东 西也需要全面: 1、测试人员需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。 2、测试人员在做性能测试时除开要关注表面的现象如响应时间,也需要关注本质,比 如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等言方方面面。 三、性能测试类型 基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关参数做为基础参考 和后续衡量指标 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或 多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 。 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统 在峰值负载或超出最大载荷情况下的处理能力。 稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统 是否稳定。 并发测试:测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁 或者其他性能问题 四、性能测试应用场景(领域) 1、性能测试应用场景(领域)主要有:能力验证、规划能力、性能调优、缺陷发现、性能 基准比较,下表简单介绍和对比了这几个场景的各自用途和特点: 主要用途 典型场景 特点 常用性能 测试方法 a)要求在 已确定的 环境下运 行 b)需要根 据典型场 景设计测 试方案和 用例,包 括操作序 列和并发 用户量, 需要明确 的性能目 标。 a) 它是一 种探索性 的测试 b) 常用于 了解系统 性能和获 得扩展性 能的方法 在要求平 均响应时 间小于 2 秒的前提 下,如何 判断系统 是否能够 支持 50 万用户/天 的访问 量? 某某系统 计划在一 年内获客 量在到 xxx 万, 系统到时 候是否能 支持这么 a)负载测 试 b)压力测 试 c)稳定性 能测试 a) 负载测 试 b) 压力测 试 c) 配置测 试 能力验证 关注在给 定的软硬 件条件 下,系统 能否具有 预期的能 力表现 规划能力 关注如何 使系统具 有我们要 求的性能 能力
多用户 量?如果 不能需要 如何调整 系统的配 置? 某某系统 上线运行 一段时间 后响应速 度越来越 慢,此时 应该如何 办? 某些缺陷 只有在高 负载的情 况下才能 暴露出 来,如线 程锁、资 源竞争或 内存泄 露。 每次只改 变一个配 置,切忌 无 休止的 调优 a) 并发测 试 b) 压力测 试 c) 配置测 试 做为系统 测试的补 充,用来 发现并发 问题,或 是对系统 已经出现 的问题进 行重现和 定位 a) 并发测 试 b) 压力测 试 性能调优 主要用于 对系统性 能进行调 优 缺陷发现 发现缺陷 或问题重 现、定位 手段 性能基准 比较 常用于敏捷开发过程中,敏捷开发流程的特 点是小步快走,快速试错,迭代周期短,需 求变化频繁。很难定义完善的性能测试目 标,也没有时间在每个迭代开展详细的性能 测试,可以通过建立性能基线,通过比较每 次迭代中的性能表现变化,判断迭代是否达 到了目标。 2、通常在某个性能场景(领域)中需要联合使用多种性能测试方法一起进行性能测试,下 表为性能测试应用领域与测试方法关联: 能力验证 规划能力 性能调优 缺陷发现 性能基准比较 √ √ √ √ √ √ √ √ √ 基准测试 负载测试 压力测试 并发测试 稳定性测试 √ √ √ √ 五、性能测试基本概念
1、响应时间 a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是 响应时间 b) 关键路径:下图为一次 http 请求经过的路径,请求会经过网络发送到 web 服 务器进行处理,如果需要操作 DB,再由网络转发到数据库进行处理,然后返回值给 web 服务器,web 服务器最后把结果数据通过网络返回给客户端。 c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间) d) 响应时间-负载对应关系: 图中拐点说明: 1、响应时间突然增加 2、意味着系统的一种或多种资源利用达到的极限 3、通常可以利用拐点来进行性能测试分析与定位 2、吞吐量 a)定义:单位时间内系统处理的客户端请求的数量 b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒 另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单 表表示。 位。 c)计算方法:Throughput = (number of requests) / (total time). d)吞吐量-负载对应关系:
图中拐点说明: 1、吞吐量逐渐达到饱和 2、意味着系统的一种或多种资源利用达到的极限 3、通常可以利用拐点来进行性能测试分析与定位 3、并发数: a)并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是 同一个场景或功能,也可以是不同场景或功能。 b)在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提 交请求 c)系统用户数:系统注册的总用户数据 三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数 4、资源利用率 a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量 b) 通常需要关注的服务器资源如下: 1、CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制 2、内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地 方,以供 cpu 进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消 失。 3、磁盘 IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机 或断电不会丢失,速度慢),以便将来再次使用这些数据。 4、网络: c)资源利用-负载对应关系:
图中拐点说明: 1、服务器某荐资源使用逐渐达到饱和 2、通常可以利用拐点来进行性能测试分析与定位 5、其它常用概念: a) TPS:Transactions Per Second,每秒事务数 b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间 内是不对服务器产生压力的 c) 点击数:每秒钟用户向 WEB 服务器提交的 HTTP 请求数。这个指标是 WEB 应用 特有的一个指标:WEB 应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所 以点击是 WEB 应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率 和 TPS 就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性 能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的 一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个 HTTP 请求. d)PV:访问一个 URL,产生一个 PV(Page View,页面访问量),每日每个网站 的总 PV 量是形容一个 网站规模的重要指标。 UV:作为一个独立的用户,访问站点的所有页面均算作一个 UV(Unique Visitor,用户访问) 六、理发店模型和曲线拐点模型 上面介绍了很多性能测试中的基本概念,比较抽象,可以通过性能测试理发店模型 或 地铁进站模型来帮忙我们更好的理解这些概念。在此不做详细介绍,需要可查原文。 七、做好性能测试需要掌握的知识: 掌握一门编程语言 掌握计算机原理和操作系统知识 良好的网络基础 掌握数据库知识 中间件(apache,tomcat) 常用抓包工具 性能测试工具
分享到:
收藏