《大型IT系统性能测试入门经典》学习笔记03——性能测试战术篇(三)

1.性能测试管理与实施

1.1性能测试管理概述

1.1.1 性能测试实施流程

1. 测试需求分析
    主要和项目干系人进行沟通,同时收集各种项目资料,尤其要搞清楚用户对待性能测试的核心需求。
    确定测试策略和测试范围。测试策略主要根据软件类型等自身特点以及用户对性能测试的核心需求等来确定,测试范围则根据测试策略和需求分析的结果来确定

2. 测试计划制定与评审
    测试计划主要包含测试内容与范围、测试策略说明、测试方案设计、测试实施安排、性能测试标准、测试环境部署、风险分析、人员需求与分工等内容,测试计划要进行评审才可以生效

3. 测试案例设计与开发
    测试场景的设计和测试脚本的开发。测试脚本开发主要是指开发和场景相关的测试脚本,测试脚本开发比较常见的做法是先通过测试工具录制用户的操作,然后进行修改。

4.  测试执行与监控
    测试实施主要是指通过测试工具或者真实的用户来执行测试场景,具体工作主要有创建测试场景、执行测试场景和监视测试场景等。
    监控屏推动性能测试项目的进展是测试经理的主要职责。在制定过程中,测试经理通常会根据项目具体情况进行测试内容的调整。比如修改测试场景、调整测试范围等。

5.  分析测试结果
    根据前面的测试数据来分析测试结果,为优化和调整系统提供依据。测试分析的对象是应用程序、应用服务器、数据库服务器、操作系统和硬件资源等。通过对测试结果的综合分析,准确定位系统的性能问题。

6. 编写性能测试报告
    根据分析结果编写性能测试报告。测试报告主要包含测试过程记录、测试分析结果和系统调整建议等内容。

7. 测试经验总结

1.1.2 性能测试管理障碍

1.  性能测试习惯拖到最后阶段进行
2. 性能测试以走形式的方式进行
3. 一些无意义的性能测试

1.2性能测试规划与设计

1.2.1 性能测试需求分析

1. 需求信息的来源:
    开发过程相关文档是性能测试需求的主要来源,项目开发计划书、需求规格说明书、设计说明书、测试计划等文档都可能设计性能测试的要求或者一些性能测试方面的定义。
    客户代表、项目经理、产品经理、销售经理、需求分析员

2. 确定性能测试策略和测试目标

3.  确定性能测试范围

4.  目标系统的业务分析:
    确定系统的核心模块;确定模块间的耦合关系;分析系统压力点

5. 用户以及场景分析:
    一种是基于用户实际使用情况的场景测试;另外一种是为了特殊测试目的而设计的场景测试。
    比较常见的用户场景有一下三种:一天内不同时间段的使用场景;系统运行不同时期的场景;不同业务模式下的用户场景。

1.2.2 性能测试整体规划

性能测试规划的重点是时间、质量、成本等相关管理要素

    1. 测试环境规划:
        网络环境设计、操作系统环境规划、数据库环境规划、应用服务器环境规划、硬件资源环境设计规划

    2. 测试环境维护方面的规划

    3.  测试工具规划

    4.   人力资源规划
![](/upload/media/markdown/15306345500093_1537437069977.jpg)

1.2.3 性能测试计划制订

1.  明确性能测试策略和测试范围
2. 确定性能测试目标、方法、环境和工具:
    测试目标的编写;测试方法的编写;测试环境的设计;测试工具的确定。

3. 确定性能测试团队成员以及职责
4. 确定时间进度安排
5. 确定性能测试执行标准:
    启动标准;终止标准;结束标准;

6. 测试技能培训
7. 确定性能测试中的风险

注意事项:

    1. 根据项目需要对上面的内容进行裁剪
    2. 根据用户需求进行内容的调整与重组
    3. 计划要得到全部项目干系人的认可

1.2.4 性能测试场景设计

1. 确定用户使用系统方法:
    用户现场调查;分析系统日志;

2. 并发用户数量设计方法:
    极限法;用户趋势分析;经验评估法
    需要注意:按照各类用户同时递增的方式来设计用户数量。并发用户数的最大值一般不会超过前面计算的最大并发用户数量的20%;设计用户数量时要考虑成本。

3. 系统不同时间段场景的设计方法
    选择典型的场景进行测试,尤其要选择场景中并发用户数据较大的场景;要覆盖全面,即设计出的场景要覆盖到压力可能较大的时间段。

4. 业务模式的分析与设计方法
    按业务模式和时间段的场景来设计性能测试场景时,会设计如何设计每个模块并发用户数据的问题。通常会取各个相关模块在24小时内最大的并发用户数目进行组合。

5. 大数据量测试场景设计方法
    历史数据引起的大数据量测试;运行时大数据量测试

6. 一些特定测试场景设计方法

1.3性能测试实施和控制

性能测试实施主要包含搭建与维护测试环境、执行测试场景、监控测试执行场景、保存与分析测试结果等

1.3.1测试实施主要阶段

1. 第一阶段:开发阶段的性能测试实施
2. 第二阶段:用户现场性能测试的实施

1.3.2测试实施主要过程

性能测试的实施过程主要包含测试场景运行、测试场景监控、测试结果分析、性能优化与验证、测试报告编写等工作。

1. 测试场景运行
    1. 创建虚拟用户脚本
    2. 参数化、修改、试运行脚本
    3. 设计测试场景
    4. 执行与监视测试场景
    5. 分析与优化测试结果
    6. 测试结果记录

2. 监控测试场景
    1. 并发用户信息
        主要监控用户是否能够正常登录系统,登录后是否能够正常执行业务,如果用户运行不正常可以考虑停止测试

    2. 场景状态
        主要监控运行时测试工具是否报错,发现错误时要对其认真分析。如果错误较多,可以考虑停止测试。

    3. 事务响应时间
        事务响应时间直接体现着应用程序的性能,执行测试时要重点监控事务响应时间是否在用户接受的范围之类。

    4.  应用服务器和数据库服务器
        应用服务器和数据库服务器的计数器是各阶段性能测试都要监控的重点

    5. 操作系统和硬件资源
        资源不够用也是系统瓶颈的重要原因之一。尤其要注意,测试时还要监控测试机的使用情况,除非保证场景小号的资源不会超出测试机的负载能力,否则就应该认真监控测试机。因为一旦测试机发生瓶颈,所有测试结果均无实际意义。

3. 分析测试结果
    针对测试结果进行综合分析,分析通常是团队协作的过程。

4. 性能优化和验证
    测试结果分析完成后,系统进行优化,之后会反复验证场景性能,直到所有场景通过测试。

5. 编写测试报告

1.3.3测试实施变更控制

性能测试的进度与变更控制贯穿整个性能测试过程,不仅仅只针对测试实施过程。进度与变更控制主要面向实施过程。

1.   性能测试引起进度变化的主要原因
    1. 开发团队解决性能缺陷的速度
        性能问题棘手的根源在于很多性能问题都是设计出来或者隐藏在程序代码的某个角落,分析起来非常耗时。

    2.  测试过程需要的软硬件资源
    3.  性能测试中采用的一些新技术
    4.  测试工具的执行能力
    5.  测试范围的变化
2. 如何应对性能测试的变更
    1. 按照合理的流程规划性能测试
    2. 保证测试方案得到项目干系人的认可
    3. 经常召开例会处理遇到的变更
    4. 学会接受合理的变更
3. 如何控制性能测试进度
    1. 正确协调质量、进度、成本的关系
    2. 建议规范的软件开发与测试体系,逐步使软件开发与测试工作进入良性循环状态
    3. 保障项目的里程碑
        适当的加班;增加人力资源;调整测试范围;

1.4 测试分析与经验总结

这里是指站在管理角度对性能测试执行过程进行分析与总结。性能测试分析与经验总结主要关注性能测试规划与设计、测试场景设计、测试工具与技术、性能测试结果分析等方面。

1.4.1 性能测试规划总结

1. 测试环境规划是否合理
2. 人力资源安排是否合理
    1. 安排的人力是否保证项目的进度
    2. 团队成员是否胜任工作
3. 测试工具规划是否合理
    1. 工具是否按照预期完成任务
    2. 工具的学习成本是否很高

1.4.2 测试场景设计总结

1. 测试场景可用性总结
2. 场景执行效果分析
3. 场景执行时间分析

1.4.3 测试工具与技术总结

1. 测试过程的一些技术方面的总结
2. 测试工具的使用经验总结

1.4.4 瓶颈分析方法总结

1. 应用系统瓶颈分析经验
2. 数据库瓶颈分析经验
3. 应用服务器分析
4. 操作系统及硬件


评论(0 ) 点赞(25)


暂未登录,请登录之后发表评论。 QQ