软件测评师教程读书笔记(第八章)

负载压力测试概述

 

性能测试

  • 对于一个软件系统而言,系统的性能包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等
  • 通常情况下存在性能调优与性能评测两种性能测试策略
  • 性能测评:1)在真实环境下,检查系统服务等级的满足情况,评估并报告整个系统的性能。2)对系统的未来容量做出预测和规划。
  • 性能调优步骤:1)查找形成系统瓶颈或者故障的根本原因 。2)进行性能调整和优化 。3)评估性能调整的效果。
  • 性能测评是性能调优的基础

负载测试

  • 通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试

压力测试

  • 通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试(什么条件下系统的性能变的不可接受)

并发性能测试

  • 并发性能测试的过程,是一个负载测试和压力测试的过程,逐渐增加并发用户数负载,直到系统的瓶颈或不能接受的性能点,通过某些指标来确定系统并发性能的过程

疲劳强度测试

  • 系统稳定运行的情况下,能够支持的最大并发用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量

大数据量测试

  • 包括独立的数据量测试和综合数据量测试两类
  • 独立的数据量测试针对某些系统存储、传输、统计、查询等业务进行的大数据量测试
  • 综合数据量测试指压力性能测试、负载性能测试、疲劳性能测试相结合的综合测试

负载压力测试目的

  • 在真实环境下检测系统性能,评估系统性能及服务等级的满足情况
  • 预见系统负载压力承受力,在应用实际部署之前,评估系统性能
  • 分析系统瓶颈、优化系数
  • 为企业项目的实施提供信息,帮助用户正确的进行容量规划,实现软硬件投资合理化

辅助网络故障分析的信息

  • 监控不同探针之间的连接状态,传输的字节数以及通信往返行程次数
  • 会话性能概要,监控那段网络延迟大,带宽对网络双向性能的影响,节点用于处理和用于传输的时间
  • 服务器与客户端之间帧传输情况统计,可以监控到与应用相关的帧的分布,对每一个帧可以与相关的数据包关联,并且可以对帧解码
  • 服务器与客户端之间传送信息包统计,监控包的详细信息
  • 线程信息统计,监控线程的内容和生存周期,以及线程与数据包的关系
  • 负载的高峰时刻,监控到负载的平均值及高峰值,并且高峰时刻可以与相关的线程、数据包、帧相关联
  • 故障错误总结

如果测试需求仅仅是系统的负载压力性能测评,那么只要重点关注客户端交易处理性能指标就够了;如果测试需求关心系统后台服务器承受负载压力的能力,那么我们重点就是监控服务器、数据库、中间件等的资源使用情况。

交易处理指标主要包括以下四项

  • 并发用户数指标
  • 交易处理指标
  1. 平均事务响应时间
  2. 每秒事务数
  3. 每秒事务总数
  4. 事务摘要
  5. 事务性能摘要
  6. 事务响应时间(负载下/百分比/分布)
  • web请求指标
  1. 每秒点击次数
  2. 点击次数摘要
  3. 吞吐量
  4. 吞吐量摘要
  5. HTTP状态代码摘要
  6. 每秒HTTP响应数
  7. 每秒下载页面数
  8. 每秒重试次数
  9. 重试次数摘要
  10. 连接数
  11. 每秒连接数
  12. 每秒SSL连接数
  • web页面组件指标
  1. 激活网页细分
  2. 页面组件细分(随时间变化/不随时间变化)
  3. 页面下载时间细分(随时间变化/不随时间变化)
  4. 第一次缓冲时间细分(随时间变化/不随时间变化)
  5. 已下载组件大小

负载压力测试实施步骤:测试计划->测试需求分析-> 测试案例制定-> 测试环境、工具、数据准备-> 测试脚本录制、编写与调试->场景制定->测试执行->获取测试结果->结果评估与测试报告

下面分别论述各部分内容

负载压力测试计划

  • 有助于:构建能够精准的模拟工作环境的测试方案;了解测试需要的资源;以可度量的指标定义测试成功条件
  • 4个步骤:1)分析应用程序(确定系统组件->描述系统配置->分析使用模型->任务分布)2)定义测试目标(以可度量的指标制定目标->确定测试的时间)3)计划方案实施(确定如何实现测试目标)4)检查测试目标

常规的测试目标:

  1. 度量最终用户的响应时间,完成一个业务流程需要多长时间;
  2. 定义最优的硬件配置,哪一种硬件配置可以提供最佳性能;
  3. 检测可靠性,系统无错误或无故障运行的时间长度或难度;
  4. 查看硬件或软件升级对性能的可靠性有何影响;
  5. 评估新产品,应选择哪些服务器硬件或软件;
  6. 度量系统容量,在没有显著性能下降的前提下,系统能够处理多大的负载;
  7. 确定瓶颈,哪些因素会延长响应时间

负载压力测试需求分析

  • 测试需求内容:测试的对象是什么?系统配置如何?应用系统的使用模式是什么?
  • 8020原理测试强度估算:每个工作日中的80%的业务在20%的时间内完成
  • UCML压力需求分析:是一个符号集合,这些符号可以创建虚拟系统用法模型,以及描述相关参数。

负载压力测试案例制定

  • 包括测试策略、测试案例、以及测试内容
  • 测试内容一般包括并发性能测试、疲劳强度测试、大数据量测试和系统资源监控等

测试环境、工具、数据准备

  • 测试环境的基本原则:要满足软件运行的最低要求,不一定选择将要部署的环境;选用与被测系统相一致的操作系统和软件平台;营造相对独立的测试环境;无毒的环境
  • 负载压力测试工具的局限性:缺乏功能点的校验;对有些控件支持的不好;不能达到真实模拟负载;脚本的支持不够灵活;报错定位不够详细
  • 准备测试数据目的:识别数据状态;验证测试案例;初始数据提供了一个基线用来评估测试执行的结果;业务数据提供负载压力背景;脚本中参数数据真实模拟负载

结果评估与测试报告

  • 交易处理性能评估指标:并发用户数、交易响应时间、交易通过率、吞吐量、点击率
  • 资源占用性能评估分为:服务器操作系统资源占用、数据库资源占用、中间件资源占用
  • 服务器操作系统资源占用监控指标:CPU、磁盘管理、内存、交换区SWAP、进程、安全控制、文件系统
  • 数据库资源占用监控指标:读写页面的使用情况、超出共享内存缓冲区的操作数、上一轮询期间作业等待缓冲区的时间、共享内存中物理日志和逻辑日志的缓冲区的使用率、磁盘的数据块使用情况以及被频繁读写的热点区域、用户事务或者表空间事务、数据库锁资源、关键业务的数据表的表空间增长、SQL执行情况
  • 中间件资源占用监控指标:web中间件、应用中间件、交易中间件、其他中间件

故障分析经验

  • 交易的响应时间如果很长,远远超过系统性能的需求,表示耗费CPU的数据库操作。例如排序,执行sum、min、max等较多可考虑是否有索引以及索引建立的是否合理
  • 测试工具可模拟不同的虚拟用户单独访问web服务器、应用服务器和数据库服务器,用web端响应时间减去各个分段时间,则知道瓶颈在哪
  • 内存页交换速率,偶尔走高表明当时有线程竞争内存;持续很高则内存可能是瓶颈,也可能是内存访问命中率低
  • CPU占有率持续超过95%,表明CPU是瓶颈;合理范围在60-70%
  • 缓存点击率越高越好,若持续低于80%应考虑增加内存

测试报告

  • 测试案例说明、测试结果数据、测试结果分析、测试环境说明、报告术语解释

 

 

你可能感兴趣的:(软件测评师教程读书笔记(第八章))