缓存的存在与否,比如大家都知道数据库有缓存、CPU有缓存那么产生模拟真实数据的原因更多再也此,我们要规避不需缓存的时候缓存了、以及合理的模拟缓存,根据真实架构设计来设计测试数据。
数据库历史数据(业务基础数据量和质量是否满足);数据库业务交易数据是否满足,数据的单一问题是否带来查询压力减轻了,不能模拟真实情况。
测试数据的写死,是否到账业务场景遗漏。比一些边界场景和一下主流场景组合的综合场景。特别是这种组合很容易遗漏,非主流+主流。
断言(检查点)是否能满足,出现过多次的真实案例,不设置检查点。去掉直接认为没有必要的请求。在动静分离的系统中,去掉了静态资源请求,结果上线后静态资源服务器被压死了。一个原则,就是会给资源带来压力的真实情况一个都不放过,这就是参数化和数据准备的原则。
问:老师怎么看待js的性能,以及测试如何下手这个环节。开发认为js性能受终端配置影响严重且多数用户会自认为是不是我的网不好之类的,从而忽略掉这个环节的性能测试。
答:首先,性能是设计出来的不是被测试出来的。这个文章中有提到。因此一个好的性能需要做好前期的性能可行性设计。没有这个流程的同学,建议研发流程中加入,性能可行性设计。给出现状(使用工具查看现状):js性能工具: JSLitmus、jsperf、chrome浏览器的profile等。可以检查网页性能情况比如chrome的profeil,操作简单,录制+停止。
可以用工具看到js大小,加载速度等,还可以看看研发的代码。要让研发动起来就的找方法:js常见的优化方法:建议动静分离、建议压缩、建议缓存、建议版本标示、文件合并、方法抽象、避免全局、解耦html和css,具体方法很多。动静分离是常见的。就是把,js、图片、css等静态文件放到不同的服务器上。js由于是静态资源,可以做动静分离,来减轻服务器压力。js做缓存,js由于版本特征明显,需要做好版本标示,保证不会由于缓存带来功能问题。tags可以通过代码或设置中间件如gizp压缩(压缩登记等),其实不光js前台的图片等都有很多优化方法,后面的chat会提到。比如nginx中间件,设置nginx.cfg就能压缩。可以买一本js性能优化的书看看推荐《高性能JavaScript》。
原文转自:http://gitbook.cn/books/58a1cef89253167836c8acad/index.html