qileilove

blog已经转移至github,大家请访问 http://qaseven.github.io/

关于线上与线下性能测试结果的差异

 有几个学员经常会对线上与线下测试结果不一样的问题产生纠结...所以还是统一写一篇这样的文章
  其实这个问题本身不用纠结,就好比再牛逼的双胞胎还是有他们不一样的地方。本身性能测试就是一个预估风险、排查瓶颈、了解系统现有性能的一个手段。就好比小时候你是个好孩子,但不意味这你长大了也是一个好孩子,也许你会像海波兄那样的...so,性能测试只是一种手段,减小风险的方法而已。
  再者,本身线上和线下的测试结果就不太具有可比性,原因为:
  1、线下与线上机器环境配置的差异
  2、线下和线上业务数据的差异,虽然我们线下要最大可能的模拟用户行为,但你不能拿保证100%的模拟啊,那么多用户你都能兼顾到?
  3、线下和线上产生压力时间的差异,线下是模拟高压力大并发的情况,而线上通常压力不大,大并发主要集中在某几个特殊时段。
  说道这里,又会有童鞋继续纠结了,那为毛还做测试啊,都不准确,做个毛毛?好吧,那我想反问你一句,一辆汽车开的人不同,开车的习惯不同,会对车造成不同程度的影响,既然我们没法100%测试模拟,那我们干脆就产出汽车后直接卖给你好了,做个什么测试和路测,多tmd费劲。对吧?这时候你不干了,你说那多危险,万一有大问题呢,不就要了我的命了吗?呃...这时候你明白了?那换到性能测试中就不明白了?
  我们做性能测试的意义其实很简单:
  1、预防、评估风险,如果有大问题可以早点发现,减小风险。这里理解极其简单,你程序存在内存泄漏的问题,难道线下2g和线上4g这个内存差异就不会有内存泄漏了?这就好比,你不会骑永久牌自行车,难道给你换个小强牌(瞎编的...)自行车你就瞬间会骑了?
  2、前端性能测试。可以通过前端性能测试保证页面性能,给用户带来较好的用户体验。
  3、单接口性能调优。主要目的是优化接口性能,排查接口性能问题,及应用内存隐患。
  比如,我们会准备几种业务场景,比如全走DB和全走缓存,分别得到这几种场景下,应用最佳处理能力情况下,在测试中排查是否存在性能提升的地方,及代码问题导致的内存泄露等。
  4、容量评估。可以根据线上机器比例,线下模拟配比来估算。

posted on 2014-09-12 09:55 顺其自然EVO 阅读(175) 评论(0)  编辑  收藏 所属分类: 测试学习专栏


只有注册用户登录后才能发表评论。


网站导航:
 
<2014年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜