• 性能测试的目的
  • 目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
  • 包括以下几个方面
  • 1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
  • 2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
  • 3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
  • 检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
  • 4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
  • 性能测试的原则
  • 1)情况许可时,应使用几种测试工具或手段分别独立进行测试,并将结果相互印证,避免单一工具或测试手段自身缺陷影响结果的准确性;
  • 2)对于不同的系统,性能关注点是有所区别的,应该具体问题具体分析;
  • 3)查找瓶颈的过程应由易到难逐步排查:
  • 服务器硬件瓶颈及网络瓶颈(局域网环境下可以不考虑网络因素)
  • 应用服务器及中间件操作系统瓶颈(数据库、WEB服务器等参数配置)
  • 应用业务瓶颈(SQL语句、数据库设计、业务逻辑、算法、数据等)
  • 4)性能调优过程中不宜对系统的各种参数进行随意的改动,应该以用户配置手册中相关参数设置为基础,逐步根据实际现场环境进行优化,一次只对某个领域进行性能调优(例如对CPU的使用情况进行分析),并且每次只改动一个设置,避免相关因素互相干扰;
  • 5)调优过程中应仔细进行记录,保留每一步的操作内容及结果,以便比较分析;
  • 6)性能调优是一个经验性的工作,需要多思考、分析、交流和积累;
  • 7)了解“有限的资源,无限的需求”;
  • 8)尽可能在开始前明确调优工作的终止标准。