网站性能测试技巧
机能测试是宣布新网站和新代码的主要环节。周全机能测试决议了宣布的胜利或掉败。
在宣布新网站和运用法式时,机能测试尤其主要,因为这时还没有任何干于运用履行机能的汗青数据。运用法式框架、平台和硬件的新技巧也可能会开端起感化。硬件的变更是很快的,而应用最新宣布的硬件来运行运用法式,其机能可能比六个月前预定的硬件高许多。
机能测试应当尽早履行,新产物的所有组件都应当先辈行测试,然后能力进行开辟。假如新硬件的容量到达了遗留体系硬件容量的两倍程度,那么使运用架构发生雷同机能的硬件需求就会少于曩昔开辟的运用法式。
假如已经有一个可拜访和正常运行的Web运用法式,那么先给新运用法式分派一小部门测试带宽(假如它将替代旧的运用法式),然后让最终用户试用新运用法式。这种“在临盆情况中测试”的办法可以给我们供给一些异常名贵的信息,从中可以懂得当临盆流量进人运用法式时它的履行情形。此外,我们也可以经由过程解析汗青Web日记来模仿一些临盆流量,将这些流量导入到新运用法式上,从而测试它在临盆情况的运行机能。然而,这仍然属于一种合成测试,其测试成果确定分歧于公共互联网的真实测览器或客户端成用法式的真头流量的测试果。经由过程测量达到新运用法式的流量数目,或者将现有网站的一小部门用户导入到新运用法式中,我们就可以获得一些名贵的信息,懂得运用法式在正式宣布和吸收临盆流量之后可能的履行情形。
1.当地机能测试
Web开辟人员应当在专用办事器上创立Web运用法式实例,这个专用办事器要的硬件和情况设置装备摆设都要跟新网站及其运用法式、数据库或数据存储将要应用的硬件和情况设置装备摆设相相似。并不是每一位Web开辟人员都可以或许创立一个与临盆情况相似的情况。然而,主要的是他们有足够的可用资本,能创立最接近安排最终产物的临盆情况。这可能意味着,Web开辟人员要有一个塔式工作站,然则它的处置才能与运行临盆网站的办事器相当。如许可以包管开辟运用法式的情况尽可能接近最终的临盆情况。
包管网站或运用法式机能接近客户所面临情况的另一种办法是,直接在一个与临盆情况相似的测试情况上开辟运用法式。这取决于快照时光表是否合理,以及今朝有若干的试临盆或分段情况,然则如许做可以勤俭许多时光,因为当地开辟者工作站平日无法反应Web运用法式在临盆情况的真实机能。
当地测试可以直接经由过程应用一些主动化对象或阅读器插件完成。最应用真实Web阅读器去测试Web运用法式机能,因为它可以或许更真实地反应网站的机能。年夜多半网站都是动态的,而 Jmeter I或 Apache Bench等主动化合成测试对象无法出现动态内容,如 Javascript和CSs,并且它们会增长网站的响应时光。对象 Hammerhead支撑在Ficx阅读器中反复加载一个网页并消除缓存,从而可以赞助Web开辟人员懂得一个网页的加载时光。 Firebug.则是另一个适用对象,它可以显示Web阅读器出现一个网页所须要的时光,个中包含所有的动态内容。
假如当地测试发明页面加载时光为1~3秒,并且网站自己没有太多的图片,那么这个网站就可能有一些问题。年夜多半网平易近都没耐烦,他们不肯意期待,特殊是如今宽带已经异常普及,早不是拨号上彀的时代,用户并不睬解数据库须要先履行一些査询操作,然后能力出现一个网页。所以,在测试Web运用法式时,假如衬着时光跨越3秒钟,那么可能就要去失落一些须要加载的静态内容或所履行的前端操作数目
2.缓存
很多公司会毛病地决议购置一个内容交付收集(CDN)。CDN平日是一种Web内容的反向署理,所以CDN公司会在各地设置装备摆设Web办事器,它很像一个web机能监控公司。CDN不会在办事器上应用Web阅读器去按期测试网站的加载速度,而是将我们的网站办事器副本存储到全国或全世界各地。应用CDN的重要原因是因为Web办事器地点地位与用户地点地位分歧,例如网站在加拿年夜多伦多,而用户从美国堪萨斯州威奇托市拜访网站,所以网站加载时光就包含从多伦多到威奇托之间的数据加载时光。相反,CDN会应用一个Web办事器的反向署理将内容存到当地,所以当有人从威奇托拜访网站时,返回响应的是CDN公司位于威奇托的办事器,而不是多伦多的原始办事器,如许就可以明显削减响应时光。
很多CDN公司如今都邑在办事中附加一些Web机能最佳实践办法,如缩略或紧缩 Javascript、HTML和CSS内容的紧缩技巧,甚至再添加层Web运用法式平安抽象。这些都长短常合适临盆网站的办事,它们可以进步网站设计的机能,然则在解决机能问题时,工程师必需謹慎应用这些“罐装”办事。缓存是一种加快和晋升网站机能的好办法,但并不是一种修复机能问题的有用办法,我们应当在开辟人员的当地工作站上解决机能问题。