第一章:性能测试基本概念

【软件性能测试-过程详解与案例剖析-第二版(段念)】

1. 什么是软件性能

  1. 用户视角
    软件对用户操作的响应时间。从开始操作到所有数据返回。(c/s架构可采用少部分数据返回便呈现的技巧,b/s可通过前端性能优化)
  2. 管理员视角
管理员关心的问题 软件性能描述
服务器的资源使用状况合理吗 资源利用率
应用服务器和数据库服务器的资源使用状况合理吗 资源利用率
系统是否能够扩展 系统可扩展性
系统最多支持多少用户访问?系统最大业务处理量是多少 系统容量
系统性能可能的瓶颈在哪 系统可扩展性
系统能否支持7*24小时的业务访问 系统的稳定性
  1. 开发视角
开发人员关心的问题 问题所属层次
架构设计是否合理 系统架构
数据库设计是否合理 数据库设计
代码是否存在性能瓶颈 代码
系统中是否有不合理的内存使用方式 代码
系统中是否有不合理的线程同步方式 设计与代码
系统中是否存在不合理的资源竞争 设计与代码
  1. web前端性能
    前端响应时间指浏览器的页面加载时间。包括对html的解析,对页面上图片和css等文件等获取和加载,javascript的执行时间以及对页面进行展示所花费的时间。

2. 软件性能的几个主要术语

  1. 响应时间:
    对请求做出响应所需要的时间。合理的响应时间取决于实际的用户需求,而不能依据测试人员的设想来决定。
  2. 并发用户数:
    一般的估算公式------C=nL/T;C为平均并发用户数;L为login session的平均长度;T为考察的时间段长度,典型oa系统为8小时工作时间;n为login session的数量;
  3. 吞吐量:
    一般的估算公式-------F=NR/T;F表示吞吐量;N表示virtual user的个数;R表示每个vu发出的请求数量;T表示性能测试的时间;
  4. 性能计数器(counter):
    描述服务器或操作系统性能的一些数据指标。比如内存,cpu, 磁盘io,进程时间等都是常见的计数器。计数器在性能测试中发挥着监控和分析的作用,尤其是在分析系统的可扩展和性能瓶颈定位时。
  5. 思考时间:
    也称休眠时间,从业务角度讲,该时间指的是用户进行操作时,每个请求之间的间隔时间。

3. 软件性能测试方法论

  1. SEI负载测试计划过程:
    SEI load testing planning process 是一个关注于负载测试计划的方法,主要有六个关注域:目标、用户、用例、生产环境、测试环境、和测试场景。

  2. RBI方法:
    rapid bottleneck identify 是用于快速识别系统性能瓶颈的方法。该方法基于以下事实:
    一、发现的80%系统的性能瓶颈都由吞吐量制约。
    二、并发用户数和吞吐量瓶颈之间存在一定的关联。
    三、采用吞吐量测试可以更快速的定位问题。

  3. 性能下降曲线分析法:
    描述的是性能随着用户数的增加而出现下降趋势的曲线。这里的性能可以是响应时间,也可以是吞吐量或单击数/秒单数据。一般来说,性能主要指响应时间。
    下降曲线可分为以下几个部分:单用户区域;性能平坦区;压力区域;拐点;

  4. LoadRunner的性能测试过程:
    计划测试–测试设计–创建VU脚本–创建测试场景–运行测试场景–分析结果

  5. Segue提供的性能测试过程:
    通过单用户对应用的访问获取性能取值的基线,然后设定可接受的性能目标(响应时间),用不同的并发用户数等重复进行测试。该过程数一个不断try–check的过程。非常适合性能调优和优化。

  6. 敏捷性能测试:
    一、在每个迭代目标中包含明确的性能目标。该目标可能基于端到端的,接口的,面向具体的函数的。
    二、建立不同层次的性能测试。该目标可能基于端到端的,接口的,面向具体的函数的。
    三、完全或接近完全自动化的性能测试。因为要达成敏捷与快速,自动化三必须的选择。
    四、使用测试驱动开发的方法保证性能和性能优化。不低于上一个版本的性能表现可以作为一个基本通用的标准。

  7. 本书提供的性能测试模型:
    一、通用性能测试模型(PTGM: Performance Testing General Model):
    测试前期准备–测试工具引入–测试计划–测试设计与开发–测试执行与管理–测试分析
    二、敏捷模型(ATML)
    三、TMap

猜你喜欢

转载自blog.csdn.net/weixin_42306440/article/details/89047604