问:性能测试 什么时候开始更好?需求阶段、设计阶段、还是测试阶段?
答:有些同事在测试几轮之后,功能稳定了开始介入性能测试,这时才发现性能根本支撑不了预期值。这个时候开发再回头进行系统调优,如果事先选的架构能支撑就好,如果不能达不到预期值,后面讨论或者请教高手发现原先的架构缺陷,再调整架构代价就非常大。基本导致前期的功能测试成果作废。其实各个阶段都有事情做。需求阶段可以整理,评审出性能需求,评审需求可行性时就考虑好数据量和用户量。设计阶段--对预估的需求做设计,举个例子。背景:我们现在使用的是mysql数据库(公司去oracle化),我们要从一个5000W的一个数据表的6个不同查询维度查询数据,比如说城市、行业、地址类型、爱好、性别、时间范围。这样对于mysql的查询常见的优化设计可能是分表、建立索引,但,对于这个场景就不好处理了。数据耦合强,没有办法分表。索引,组合索引太多。后面的处理办法是用mongodb、nosql的方法解决。对于编码和测试阶段可以这样去分不同阶段做不同事情。
编码阶段,可以提出需要,让研发通过单元测试(开多线程)的方式进行压力测试。进行一些单元压力测试测试阶段---测试阶段也有策略的,建议先做一下单一场景单一用户的性能测试。常常会遇到有些同事在没有压单个场景的情况下,就进行负载测试,到处定位瓶颈,发现单一用户单一场景都是问题。这就是绕了一圈回到了起点。