《应用程序性能测试的艺术 第2版》第四章 性能测试流程 摘录

      我在计划之中计划。 ------ Frank Herbert, 沙丘

        这一章开篇就来这一句,我第一次看没觉得这一章有什么好记的,但是当我回头再看一遍时觉得这才是做事的方式方法。所以今天就把这一章的内容也摘抄一些。

        性能测试流程分成6个步骤:

        步骤1:获取非功能需求。要开始一个项目,首先得获取项目需求,然后项目相关方要对需求达成一致,并签字确认。那这个性能测试的项目需求应该有如下这些内容:

  • 完成性能测试的截止日期,包括应用发布日期。
  • 开展性能测试的内部和外部资源。这个决定通常取决于时间要求和内部是否有足够的技术能力。
  • 测试环境设计。记住测试环境必须尽可能与生产环境保持一致,而且环境搭建所需的时间通常比预期的要长。
  • 在每个测试周期内保证代码的冻结。
  • 测试环境不能被其他的用户操作影响。在性能测试执行过程中,不能有基他人使用这个环境,否则测试结果可能会不准确。
  • 确定性能目标。最重要的是目标必须得到业务责任人的认可。
  • 关键用例。这些用例必须提前确定,文档化,并且可以被用来编写对应的脚本。你要知道确定关键用例是至关重要的,如果确定的用例不准确,整 个性能测试就只是在浪费时间和资源。
  • 每个用例中需要独立计时的部分(如登录或者花在搜索上的时间)。
  • 每个用例所需要的输入数据,目标数据和会话数据。(必须创建足够多的准确的测试数据,同时注意数据安全和保密)
  • 针对性能测试为每一个应用构建负载模型。
  • 确定性能测试场景。(场景的数量,类型,包含用例,虚拟用户配置,思考时间,步调时间以及用例的加压模式)
  • 确定并且将应用、服务器以及网络关键性能指标付诸文档。记住只有对应用的基础设施进行深入而广泛的监控,才能获取到足够的信息用来分析和解决可能出现的问题。
  • 确定性能测试的交付物,即针对达成一致的性能目标而产生的对应结果报告。制定一个性能测试的报告模板会是一个很好的习惯。
  • 定义提交一个性能缺陷的流程。(如测试中发现重要的问题怎么办?必须有应急计划。)
  • 测试团队成员及汇报结构。规划好相关方的人员以及沟通管理计划。
  • 性能测试所需的工具、资源、技能以及一些商业许可证。必须保证资源到位。
  • 为团队提供足够的工具培训。

       当这些需求得到确认之后:

  1. 开始制定一个初步计划,计划包含资源,时间线以及一些重要的项目里程碑。
  2. 制定细化的性能测试计划,计划中应该包括所有的依赖以及相关的时间线,详细的场景以及用例信息,负载模型和环境信息。
  3. 计划中应包含风险评估,如果没有能够近期完成性能测试或者没有达到性能目标如何应对。

     步骤2: 构建性能测试环境,注意尽可能接近真实的生产环境,如果无法实现,至少需要一个能够反映生产环境中的服务器层次的部署结构。目标数据库必须填充足够的接近真实的数据。

  • 为初始化和配置性能测试环境准备充足的时间。
  • 考虑所有的部署模型。(局域网,广域网)
  • 考虑外部系统的链接。(很有可能是性能瓶颈的源头)
  • 足够的施压能力。(施压机器的位置)
  • 将应用正确部署到性能测试环境中。
  • 足够的商业许可证。
  • 部署和配置性能测试工具。
  • 部署和配置关键性能指标监控工具。

   步骤3:编写性能测试脚本

  • 确定会话数据需求。
  • 确认并且应用输入数据需求。
  • 确定每个用例的检查点设置。
  • 保证脚本能够正确回放。(单用户和多用户,确保能够正确进行验证)

   步骤4:构建性能测试场景

  • 确定场景测试类型,为每个测试用例使用一个虚拟用户来执行基准测试以建立性能基准;之后执行负载来验证目标最大并发数或者吞吐率,然后会有一个场景将所有的用例混合进行负载测试,最后可能需要执行压力测试和浸泡测试,有需要的话还可以执行一些非性能相关的测试,以验证负载均衡策略或者灾难恢复场景。如果出现问题,用隔离测试来定位并解决问题。
  • 确定每个用例中如何设置思考时间和步调时间。
  • 确定每个用例需要多少施压机器,多少虚拟用户。
  • 确定施压机器的施压模式。
  • 确定测试如何结束。
  • 确定是否需要进行IP欺骗,如果是的话,客户需提供有效的IP地址列表 。
  • 是否需要模拟不同的网络带宽。
  • 根据设立的服务器以及网络关键性能指标,确定哪些运行时数据需要配置监控。
  • 如果这是一个WEB性能测试,你需要模拟怎样的浏览器缓存级别,新用户,活跃用户还是回访用户?
  • 考虑应用实现技术对性能测试设计的影响。

   步骤5:执行性能测试和分析

  • 执行一次场景演练或者基准测试,以验证性能测试环境和测试场景都能正常工作。
  • 执行负载测试,每次执行之前重置数据库。
  • 执行隔离测试,排查和定位负载测试过程发现的问题,将结果提交给开发人员或者应用供应商。
  • 执行压力测试,评估应用的容量。
  • 执行浸泡测试,以此来发现一些诸如内存泄漏的慢性问题。
  • 执行非性能相关的测试。

  步骤6:测试结果分析和报告

  • 收集最终的测试数据。确保性能测试数据收集的完备,并且将这些数据备份保存。否则你可能遗漏了一些重要指标,而且事后无法追回。
  • 根据项目需求,将性能目标和测试结果进行比较以判断测试是否通过。
  • 使用你习惯的模板来将测试结果文档化。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值