0


性能测试从入门到放弃(一)

性能测试定义

性能测试是观察系统在给定的运行环境下,测试场景中系统的性能表现是否符与预期目标一致,评判是否存在性能缺陷,根据结果识别性能瓶颈。

  1. 运行环境:硬件服务器、操作系统、网络、数据库、web服务器、应用服务器等都为系统的运行环境。
  2. 测试场景:用户如何使用系统,即是“某个时间段,用户在做什么”;例如12306购票系统,平时:用户购票少,用户购票时间段分散,春运期间:用户多,用户使用时间集中。

性能测试策略

  1. 负载测试(Load Testing) 模拟改变系统负载方式、增加负载等来发现系统中所存在的性能问题;目的如下:(1)确定系统所能承受最大用户数、最佳用户数; (2)关注不同用户数下的系统响应时间及服务器资源使用情况。
  2. 压力测试(Stress Testing) 模拟大量的虚拟用户向服务器产生负载,使得服务器处于极限状态下长时间运行;目的如下:测试服务器在高负载情况下,是否能够稳定工作,找出系统链路中存在瓶颈的环节。
  3. 并发测试(Concurrency Testing) 模拟多个用户并发,访问同一个应用、同一个存储过程、数据记录以及其他类型并发操作;目的如下:测试并发情况下是否存在死锁、数据错误等异常情况。
  4. 稳定测试(Stability Testing) 模拟一定数量虚拟用户,运行一种或多种业务,长时间的运行(724小时)系统;目的如下:*(1)检测系统长时间运行下,系统稳定性和性能指标是否符合预期目标; (2)检测系统是否存在宕机、内存泄漏等异常情况。

性能测试指标

1. 响应时间
用户发出请求后,收到响应结果的时间;一般包含了网络传输时间、系统排队时间、系统处理业务时间、数据库操作等时间的和;
2. TPS
单位时间内处理交易的效率,即“每秒处理事务数”,代表系统处理业务能力;
3. 业务成功率
用户操作系统成功与失败交易笔数的比率;
4. VU
virtual user即虚拟用户数,每一个VU代表一个并发用户;
5. 最大用户数
系统能够承受用户同时访问的最大并发数;
6. CPU
包含服务器CPU使用率以及CPU队列长度等资源利用的指标,主要考察CPU使用率情况;
7. 内存
包含内存使用率和内存页交换频率的指标,主要考察内存使用率情况;
8.磁盘
包含磁盘读写大小能力和磁盘繁忙率,根据实际情况主要从这两个维度进行考察;

性能测试流程

总体性能测试流程如下图所示:

#mermaid-svg-r1tPUlH9Qcol8yHv {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .error-icon{fill:#552222;}#mermaid-svg-r1tPUlH9Qcol8yHv .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-r1tPUlH9Qcol8yHv .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-r1tPUlH9Qcol8yHv .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-r1tPUlH9Qcol8yHv .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-r1tPUlH9Qcol8yHv .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-r1tPUlH9Qcol8yHv .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-r1tPUlH9Qcol8yHv .marker{fill:#333333;stroke:#333333;}#mermaid-svg-r1tPUlH9Qcol8yHv .marker.cross{stroke:#333333;}#mermaid-svg-r1tPUlH9Qcol8yHv svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-r1tPUlH9Qcol8yHv .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .cluster-label text{fill:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .cluster-label span{color:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .label text,#mermaid-svg-r1tPUlH9Qcol8yHv span{fill:#333;color:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .node rect,#mermaid-svg-r1tPUlH9Qcol8yHv .node circle,#mermaid-svg-r1tPUlH9Qcol8yHv .node ellipse,#mermaid-svg-r1tPUlH9Qcol8yHv .node polygon,#mermaid-svg-r1tPUlH9Qcol8yHv .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-r1tPUlH9Qcol8yHv .node .label{text-align:center;}#mermaid-svg-r1tPUlH9Qcol8yHv .node.clickable{cursor:pointer;}#mermaid-svg-r1tPUlH9Qcol8yHv .arrowheadPath{fill:#333333;}#mermaid-svg-r1tPUlH9Qcol8yHv .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-r1tPUlH9Qcol8yHv .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-r1tPUlH9Qcol8yHv .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-r1tPUlH9Qcol8yHv .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-r1tPUlH9Qcol8yHv .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-r1tPUlH9Qcol8yHv .cluster text{fill:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv .cluster span{color:#333;}#mermaid-svg-r1tPUlH9Qcol8yHv div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-r1tPUlH9Qcol8yHv :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
1

2

3

4

通过

不通过

不满足指标

验证调优

满足指标

      性能需求分析
     

      确定性能测试指标
     

      确定性能测试交易
     

      确定性能测试场景
     

      确定性能测试环境
     

      编写性能测试方案
     

      方案评审
     

      性能测试准备
     

      创建/运行场景
     

      分析测试结果
     

      性能调优
     

      编写性能测试报告
     
  1. 性能需求分析 (1)性能测试指标:主要分析被测系统指标有哪些?指标值是多少?根据经验判断,调研用户使用情况,参考同行业系统信息等,例如响应时间3秒内,交易成功率99%,资源使用率80%,TPS为3万笔/秒; (2)性能测试交易:用户使用量大、用户使用比较集中、系统的核心功能等都可纳入性能测试交易范围,例如12306系统的购票交易、淘宝天猫的秒杀活动、双11购物支付场景; (3)性能测试场景:包含前面提到的测试策略,负载测试、并发测试、压力测试、稳定测试等,还应根据不同被测系统考虑一些异常场景,例如容灾测试、高可用测试等场景; (4)性能测试环境:包含被测系统的软硬件信息,软件包含使用哪些软件、软件版本信息、软件参数配置等信息硬件包含了硬件操作系统版本、CPU、内存配置,内核参数配置等信息;例如某系统应用软件配置:jdk1.8,硬件配置:Redhat 7.8、CPU8核、内存16G;
  2. 性能测试方案 (1)根据需求分析情况,确定交易范围、指标范围、测试场景、以及测试环境等信息; (2)根据压测工作内容,进行压测计划进度安排,明确各工作负责人; (3)性能测试过程将会出现的风险,以及具体风险规避措施;
  3. 性能测试准备 (1)根据方案交易范围,编写交易测试脚本,通过参数化、关联、断言等来强化脚本; (2)根据交易涉及操作数据库表,进行做表存量数据铺底; (3)性能测试环境准备,包含了软件安装、应用部署、参数配置、数据库安装等工作;
  4. 性能测试执行 (1)性能测试场景执行,测试结果统计; (2)测试结果分析,性能调优; (3)调优验证;
  5. 性能测试报告 (1)根据性能测试方案,描述被测系统测试范围、环境情况、测试指标等内容; (2)对测试场景执行测试数据分析、量化分析、系统评价等内容,总结测试结论满足预期指标。

本文转载自: https://blog.csdn.net/weixin_41219773/article/details/126451198
版权归原作者 水声千里 所有, 如有侵权,请联系我们删除。

“性能测试从入门到放弃(一)”的评论:

还没有评论