服务器又崩了?10年+性能测试老鸟给测试工程师的忠告

性能测试对于“用户基数大、并发峰值高、业务链复杂、系统更新快”的互联网公司来说,是软件生命周期里至关重要的一环。

无论是金融类产品的正式上线,还是大型电商促销活动如“淘宝双11”、“京东618”等极限峰值业务挑战,背后都有性能测试人员和研发运维同学战战兢兢的身影。

什么?服务器又崩了?系统刚上线就挂了?不是已经做过性能测试了吗?

当当当当,测试人的灵魂拷问来了 ——  你提交的性能测试报告真得有价值吗?你敢拍胸脯保证经过你的性能测试后,系统上线不会崩溃吗? 

性能测试行业发展背景与人才现状

以上是一个真实的案例。性能测试只测不调是行业常见的现象,而这样根本无法判断性能测试的有效性。拿到这样一份堆砌着参数数据,而缺乏对系统架构级的性能监控分析与优化建议的“流氓性能测试报告”,恐怕运维同学真得是要哭晕在厕所。

客观来讲,一方面,目前国内的性能测试人才水平良莠不齐,另一方面,现在行业里大部分的性能测试,都只局限于研发流程的一个小环节中。最常见的情况就是一说性能测试,话题就聊到 LoadRunner 等压力工具上。不少测试人只会使用压力工具,但多年来技能并没有提升,陷入“上不去,下不来”的尴尬境地

导致这种情况主要由于两点:

  1. 系统性能测试与优化技术栈比较综合,对从业人员技能水平要求较高,需要较强的测试开发能力
  2. 由于历史原因,性能测试领域缺少标准,而长期以来国内市面上相关的性能测试培训以及书籍多数以介绍工具使用为主,并没有系统解决性能问题。也就是说,大多性能从业人员对性能参数是知其然,而不知其所以然。

要知道,性能测试工具 ≠ 性能测试。工具只是外层功夫,想要成为被行业认可和尊重的性能专家,必须刻意修炼内功。 

怎样的性能测试才算有价值?

有价值的性能测试一定要满足以下 2 点:

1. 性能测试与性能分析要有明确的数据证明调优的效果

性能测试人员/团队要有能力给运维一份性能测试报告+配置文档+风险说明。

2. 性能测试与性能分析的价值要体现在有效的节约成本中

既测又调并且调得有效果,能直观反馈在成本数据上。

比如,通过对线上主机明确的容量规划,核算出最优解的数目,可以为公司节约巨大的成本。举个例子:

如果按理论最高 TPS 算,公司需要配置 800 台主机(实际情况大部分时间的空置和电费会造成巨大浪费)。但通过性能测试,能有明确的逻辑指出只需要配置 60 台主机就够用了(可以节约 90% 以上的服务器成本)。如果是这样的性能测试报告反馈给公司老板,那么一定会被当作公司的宝贝,被团队和市场足够尊重。

性能测试是一个依赖全局优化的复杂系统工程,性能测试岗位人员要证明自己的技术和市场价值,一定要从全生命周期着眼,不断迭代自己的技术栈水平。

当前互联网企业业务的快速发展已经对系统性能提出了日益严苛的要求,而性能测试领域人才紧缺。

具备性能测试技能和性能分析能力的性能测试高级人才是当下 BAT 互联网企业在招聘时的重中之重,尤其是精通性能测试,同时熟悉各层性能优化的中高级测试开发工程师、测试架构师等更是一将难求,年薪 150W+ 都很常见。

另外,BAT、TMD 的质量保障技术栈也在快速迭代。

全链路压测自动化平台实践在巨头企业已经广泛落地,即能基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试(流量录制、回放、施压等),并持续调优。

性能测试高级人才技术栈

BAT、TMD 等企业青睐的性能测试高级人才,通常具备综合的测试开发和性能测试与优化技能:

很多同学在测试面试时都会卡在性能测试这一关。

一方面是性能测试基础技能不牢靠,不够全面或需要更新(比如 LoadRunner 已经落伍),也没有找到清晰的成长路径;

另一方面,最主要是缺少性能测试和优化分析实战项目经验,纸上谈兵易,实战落地难。

成为一个高级性能测试人员需要掌握的东西非常多,如何快速掌握这些知识?

其实,最高效的学习路径离不开以下 3 个关键步骤:

  1. 阅读经典好书,夯实基础理论和技能知识;
  2. 找到领域专家,在巨人的肩膀上学习工具和最佳实践经验;
  3. 通过实战项目检验学习效果,正向反馈,积累避坑经验,持续提升;