背景:

       为了方便大家领悟性能测试微妙心印,本次从老师极客时间专栏中抽出精彩对话,希望大家走上成功之路。

01丨性能综述:性能测试的概念到底是什么?


性能项目分为如下几类:

  1. 新系统性能测试类:这样的项目一般都会要求测试出系统的最大容量,不然上线心里没底。
  2. 旧系统新版本性能测试类:这样的项目一般都是和旧版本对比,只要性能不下降就可以根据历史数据推算容量,对调优要求一般都不大。
  3. 新系统性能测试优化类:这类的系统不仅要测试出最大容量,还要求调优到最好。



精彩回顾:


性能测试实战30讲之问题问答整理一_性能测试


思考题:


    最后给你留两道思考题吧,我为什么不推荐使用性能测试、负载测试、容量测试这样的词来概括性能执行策略呢?以及,为什么性能测试中要有监控和分析?



读者:



第一个问题:
在博弈论中,有如下两个概念:
- 共有知识:每个人都知道的信息,只是共同知识的第一个层次
- 共同知识(common knowledge):不但是每个人都知道的信息,而且每个人都知道别人也知道该信息。而且每个人都知道别人也知道其他人知道该信息。如有 A、B、C 三人:

第一个层次,A、B、C 三人都知道某一知识;
第二个层次,A 知道 B、C 也知道该知识,A 不确定 B、C 知道 A 已经知道 B、C 知道该知识了
第三个层次,每个人都知道别人也知道其他人也知道该信息;
此二者,差之毫厘,谬以千里。

安徒生童话里《皇帝的新衣》就是一个经典的例子。皇帝没穿衣服是“共有知识”,但不是“共同知识”。在小孩戳破之前,每个人都知道皇帝是裸着的,然而他们不知道别人看见的也是一个裸体的皇帝。因此,他们不愿承认自己属于看不见皇帝新衣的笨人。这个荒唐的骗局也是因此才持续了好一段时间。

第二个问题:
从方法论角度:没有数据,你就无法度量它。
从现状角度:很多企业已转向修炼内功,开始注重内部效率的提升。而数据则是这项内功最核心的部分,向内寻找答案,通过数据的力量驱动增长。性能数据也一样。
从生活角度:就像“医生”一样,需要懂得多方面的知识才能为“病患”确诊“病因”。医生遇到病人,会“望闻问切”,利用 X 光等手段做各种分析。根据病人的表象和分析的数据,医生会做出诊断,确定是什么病。然后会开药方或者给予治疗。病人服药或者接受治疗后,会再次进行复检,来确定治疗效果。对待性能问题也是如此;


老师回答:

者回复: 说的非常好。你也可以到极客时间里开个专栏了哦。



读者:


因为性能测试、负载测试、容量测试这样的词来听起来都是很强调最后的测试执行过程,其实在这之前还有很多的准备以及后面的分析总结环节,所以这些词都不准确。


老师回答:

作者回复: 理解的很对。我要表达的就是这样的理念。


读者:


第一个问题:这三个不够精确,不能指导测试
第二个问题:简单点说做事要有反馈,没有监控和分析,没法修正测试方向,方向错了,也就得不到好结果。


老师回答:

作者回复: 非常对。多交流。


读者:


第一个问题:就像老师说的,很多概念能抹平沟通中的误解,而这几个概念恰恰很容易让人误解而且每个人的理解都不一样。
第二个问题:性能测试只有加入了分析监控才能形成一个良好的闭环

老师回答:

作者回复: 说的对。没有监控分析优化,性能测试的价值是无法衡量的。




读者:



  1. 这些词在概念上类似,找不出明显的区别,对于性能测试的场景设计没有指导意义
    2. 应用程序是运行在操作系统之上,应用程序是有架构的,在性能测试中要想找到瓶颈,就要实时监控数据。如操作系统 中间件,观察变化趋势并且分析,才能找出性能瓶颈

老师回答:

作者回复: 你已得到真传。哈。


读者:


在稳定性测试中,显然最核心的元素是时间(业务模型已经在容量场景中确定了),而时间的设置应该来自于运维周期,而不是来自于老板、产品和架构等这些人的心理安全感。
——
高老师,我对"老板、产品和架构这些人的心理安全感"这句话不太理解,这些所谓的”心理安全感“会对稳定性有影响吗?


老师回答:

作者回复: 就是他们自己拍脑袋给一个时间,认为如果稳定性测试满足这样的时间长度,就觉得系统是安全的。

读者:

对我这种非科班的,要做好性能分析与调优,需要学点什么计算机基础课程?求指导


老师回答:

作者回复: 像语言、os、网络、数据库、存储、队列服务器、中间件服务器、缓存服务器、负载均衡等等的逻辑,都是需要知道的。





性能测试实战30讲之问题问答整理一_调优_02