本文来源于:http://www.xqtesting.com/blog/performance-testing-133.html

如有转载,请注明出处。


不少朋友经常会对线上与线下测试结果不一样的问题产生纠结。


其实性能测试就是一个预估风险、排查瓶颈、了解系统现有性能的一个手段。性能测试只是一种手段,减小风险的方法而已。


再者,本身线上和线下的测试结果就不太具有可比性,原因为:

1、线下与线上机器环境配置的差异

2、线下和线上业务数据的差异,虽然我们线下要最大可能的模拟用户行为,但你不能拿保证100%的模拟啊,那么多用户你都能兼顾到?

3、线下和线上产生压力时间的差异,线下是模拟高压力大并发的情况,而线上通常压力不大,大并发主要集中在某几个特殊时段。


说道这里,又会有童鞋继续纠结了,那为毛还做测试啊,都不准确,做个啥?


我们做性能测试的意义其实很简单:

1、预防、评估风险,如果有大问题可以早点发现,减小风险。这里理解极其简单,你程序存在内存泄漏的问题,难道线下2g和线上4g这个内存差异就不会有内存泄漏了?

2、前端性能测试。可以通过前端性能测试保证页面性能,给用户带来较好的用户体验。

3、单接口性能调优。主要目的是优化接口性能,排查接口性能问题,及应用内存隐患。

比如,我们会准备几种业务场景,比如全走DB和全走缓存,分别得到这几种场景下,应用最佳处理能力情况下,在测试中排查是否存在性能提升的地方,及代码问题导致的内存泄露等。

4、容量评估。可以根据线上机器比例,线下模拟配比来估算。