前段时间在内部做了一个性能测试方面的培训或者叫sharing,发现谈到一些具体技术的时候大家都比较容易接受,但是性能测试中有些部分却比较难以理解。比如说常见的问题有:
1. 为什么选用这样的sample来测试?
2. 为什么用这样的配置来测试?
3. 这样的测试结果能反映客户的真实情况吗?
这些都是很好的问题,愿意思考的人才会提出这样的问题。
1. 为什么选用这样的sample来测试?
2. 为什么用这样的配置来测试?
3. 这样的测试结果能反映客户的真实情况吗?
这些都是很好的问题,愿意思考的人才会提出这样的问题。
其实这些也是困扰做性能测试的人的问题,因为这里存在着一对矛盾。相比稳定性(stability)或者大流量(volume)的测试而言,性能测试是要求精确量化的测试,比如response time要到毫秒,还有concurrent connection和throughput等指标,都是要实际测出的具体数字。但是另一方面,它其实又是很模糊的,比如说你只可能挑选一种或者几种可能 的配置来测试,而不可能精确的涵盖所有的配置情况下的性能。而且实验室测试的数据和production上真实的数据流量也是不一样的,甚至客观的讲永远 不可能完全精确的模拟,就好比一个网站上线之前怎么能预料到将来成千上万的用户将要怎么来使用呢?姑且称之为性能测试的dilemma。
联想起最 近看到的一个例子,大家可能更容易理解,据称工信部最近列出了6000多种车型的“实际“油耗。相对于之前都是各个厂家给出的理论油耗,很多是在90公里 等速的情况下的理论或者叫完美油耗,在无风的日子里,平坦的马路,没有急踩油门,没有刹车,所以很多油耗都是6.x。但是很显然,大家都知道,你不可能找 到一条这样完美的 路,连续的开上100公里。
我们也可以把上面的油耗测试看成是一种性能测试。那么因为这样的不完美,我们就变成一个怀疑论者吗?认为所有的性能测试都是没有意义的,因为它永远不可能反映真实的情况。
自己做性能测试也有很长一段时间了,有段时间我也在思考同样的问题,does it make sense?直到有段时间,我看到一个很好的别的行业的例子。
不好意思,还是汽车行业的例子。(最近怎么老关注这个行业?)
比较关注汽车安全性的人常常会去看他关注的车在一些碰撞测试中得到几星级的评价。在中国,这个标准就是C-NCAP。由于最近几年才开始运作,所以也参考了不少美国和欧洲的标准。好吧,让我们来看一下它大概是如何来给一辆车的安全性打分的。
关于这一部分,大家可以参考 C-NCAP的评价规程 。
“ 试验车辆100%重叠正面冲击固定刚性壁障。碰撞速度为50km/h~51km/h(试验速度