页面性能评估工具
Yslow和
PageSpeed
PageSpeed及Yslow是目前比较常用的
Web页面性能评级工具
先说Yslow
Yslow是Yahoo发布的一款免费
性能评估工具,提供包括Firefox,Chrome,opera,safari浏览器上的插件。
详细的使用方法此处不再介绍,也比较简单,随便搜索一下也能找到。
本文重点说明下命令行调用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环境下编译不通过,需要找替代版本。
)
如果是公司内网环境,有代理屏蔽之类的问题,也可直接下载好各依赖包手动安装
通过执行 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评估测试了
测试类型可以是basic
, grade
, stat s
, comps
, all
规则集一般用ydefault
其他定义如下:
ynumreq | score for Make fewer HTTP Requests |
ycdn | score for Use a Content Delivery Network(CDN) |
yemptysrc | score for Avoid empty src or href |
yexpires | score for Add Expires headers |
ycompress | score for Compress components with gzip |
ycsstop | score for Put CSS at top |
yjsbottom | score for Put JavaScript. at bottom |
yexpressions | score for Avoid CSS expressions |
yexternal | score for Make JavaScript. and CSS external |
ydns | score for Reduce DNS lookups |
yminify | score for Minify JavaScript. and CSS |
yredirects | score for Avoid URL redirects |
ydupes | score for Remove duplicate JavasScript. and CSS |
yetags | score for Configure entity tags (ETags) |
yxhr | score for Make AJAX cacheable |
yxhrmethod | score for Use GET for AJAX requests |
ymindom | score for Reduce the number of DOM elements |
yno404 | score for Avoid HTTP 404 (Not Found) error |
ymincookie | score for Reduce cookie size |
ycookiefree | score for Use cookie-free domains |
ynofilter | score for Avoid AlphaImageLoader filter |
yimgnoscale | score for Do not scale images in HTML |
yfavicon | score 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地址进行评估并给出得分