工欲善其事 必先利其器

性能评估工具PageSpeed及Yslow

上一篇 / 下一篇  2012-02-09 21:17:35 / 个人分类:测试工具

题外话: 很久没有更新这边的blog了,想来1年多也有不少收获,还是总结总结罢。想哪是哪,先从具体的工具说起吧

页面性能评估工具YslowPageSpeed

PageSpeed及Yslow是目前比较常用的Web页面性能评级工具

先说Yslow

Yslow是Yahoo发布的一款免费性能评估工具,提供包括Firefox,Chrome,opera,safari浏览器上的插件。
基于Yahoo定义的提高webSite性能的规则集对访问的页面进行评估,给出评估结论。(http://developer.yahoo.com/performance/rules.html)
详细的使用方法此处不再介绍,也比较简单,随便搜索一下也能找到。
本文重点说明下命令行调用Yslow进行测试的方法,这样就可以比较顺利的实现自动化测试并加入敏捷的持续集成流程中了
1. 首先Yslow是基于Node.js的(Node.js此处不多作介绍,以后再另文详述。)首先需要安装node.js,目前最新版本是0.6.10,已集成npm(node pakage manager)

以笔者的windows环境为例,执行
C:\Program Files\nodejs>npm install yslow -g
可以发现安装不成功,原因是Yslow的一个依赖包contextify在windows环境下编译不通过,需要找替代版本。
如果是公司内网环境,有代理屏蔽之类的问题,也可直接下载好各依赖包手动安装
http://search.npmjs.org/ 查询Yslow各依赖包并下载tgz文件
通过执行 npm install ***.tgz 安装

安装完成后,在windows环境上可以在node中执行相关模块代码执行Yslow测试
$node > require('fs').readFile('example.com.har',function(err, data) {varhar = JSON.parse(data), YSLOW = require('yslow').YSLOW, doc = require('jsdom').jsdom(), res = YSLOW.harImporter.run(doc, har,'ydefault'), content = YSLOW.util.getResults(res.context,'basic'); console.log(content); });{ w: 98725, o: 89, u: 'http%3A%2F%2Fexample.com%2F', r: 9, i: 'ydefault', lt: 981 }

对了,需要将待测的web页面先导出为har格式的文件(Http archive),可以通过firebox的netexport插件或者HttpWatch导出
替换掉示例脚本中的har文件即可执行basic评估测试了
测试类型可以是basicgradestat scompsall
规则集一般用ydefault
其他定义如下:
ynumreqscore for Make fewer HTTP Requests
ycdnscore for Use a Content Delivery Network(CDN)
yemptysrcscore for Avoid empty src or href
yexpiresscore for Add Expires headers
ycompressscore for Compress components with gzip
ycsstopscore for Put CSS at top
yjsbottomscore for Put JavaScript. at bottom
yexpressionsscore for Avoid CSS expressions
yexternalscore for Make JavaScript. and CSS external
ydnsscore for Reduce DNS lookups
yminifyscore for Minify JavaScript. and CSS
yredirectsscore for Avoid URL redirects
ydupesscore for Remove duplicate JavasScript. and CSS
yetagsscore for Configure entity tags (ETags)
yxhrscore for Make AJAX cacheable
yxhrmethodscore for Use GET for AJAX requests
ymindomscore for Reduce the number of DOM elements
yno404score for Avoid HTTP 404 (Not Found) error
ymincookiescore for Reduce cookie size
ycookiefreescore for Use cookie-free domains
ynofilterscore for Avoid AlphaImageLoader filter
yimgnoscalescore for Do not scale images in HTML
yfaviconscore for Make favicon small and cacheable

另一个工具PageSpeed

PageSpeed和Yslow类似,但基于不同的规则集,包括移动网络的规则。同样也是打分机制
PageSpeed的命令行比较简单,下载har_to_PageSpeed 工具,命令行执行即可输出结果 http://page-speed.googlecode.com/files/har_to_pagespeed.exe

pagespeed还提供在线检测功能,对你提供的URL地址进行评估并给出得分


TAG: 性能评估工具 PageSpeed yslow Yslow

 

评分:0

我来说两句

Open Toolbar