加入底层平台测试大概有一年了,接触了比较多的项目,做了各种测试,其中觉得难做得是性能测试。曾经迷茫过、曾经犯过错、曾经失败返工过,尽管底层平台系统的测试产品业务很如此的单纯。深知性能测试的博大,把自己的一点小小经验整理下,让自己和别人以后少走些弯路。

  要做好性能测试首先要明确性能测试的目标。性能测试主要目标是发现系统的瓶颈,找出系统的性能基线,对系统进行调优,确认所测系统是否满足需求方的性能要求。有了准确的目标,性能测试才能测试准确。

  产品性能测试通常粗的分,我会将性能测试分为两类:可靠性测试(压力测试、负载测试等)和性能测试。这两种测试有很多的不同点:

  1)可靠性测试往往模拟的用户的使用情况,强调的为时间的延续性,要求产品没有不可接受的失败。

  2)性能测试往往需要和硬件条件联系在一起,寻找性能的好发挥以及优的方案

  通常性能测试需要在产品设计时要进行简单性能测试,以对产品进行性能初期评估和调优,早于可靠性测试。同时在系统稳定时,常常还需要做详细的性能测试,以给应用方以数据参考。

  那如何做性能测试那?

  1) 性能测试应该早期积极介入。介入代码审查和分析性能目标,多提出疑问,早期发现潜在的性能问题

  2) 性能测试考虑全局,他是一个系统的测试。需要在产品的每个部件都做了一个测试,并全部成功后才开始系统测试执行。需要考虑多种因素:环境的、硬件的、软件的等等。

  3) 测试前一定要检查确认配置。参数一定要配置对,否则测试无效。好对于每个测试都有一个checklist,每次检查前都一一检查。这一步骤一定不可以省略,并需要被开发review。

  4) 数据预热和数据准备很关键。一开始系统并不是一个干净的环境。我们需要在性能测试开始前预存一定的数据,并且让其有个增量。而且也要考虑到哪些方面数据多少(要更具实际情况)。

  5) 准备测试脚本和工具要考虑实际情况。比如人的思考时间,场景的设计,不同操作的比例,数据的随机性等都要仔细设计,和可以开发以及应用方进行讨论和确认。

  6) 测试执行前一定要确保服务器独占,执行中如果是5-7天的测试,好拿出先跑一个压力不高的测试,潜在发现可发现的问题。

  7) 多种测试结果的分析发现问题。

  a) Log日志的分析

  b) 系统状态的分析

  c) 数据一致性的分析

  性能测试需要长时间的经验积累,我知道的只是些皮毛,后面还会继续探索,喜欢性能测试并将会在实践中不断积累和成长。