网络监控
由于PhantomJS允许对网络流量进行检测,因此可以使用它对网络行为和性能进行各种分析。
所有的资源请求和响应都可以使用onResourceRequested
和onResourceReceived
来嗅探。一下脚本netlog.js是一个非常简单的示例,它记录了每个请求和响应:
var page = require('webpage').create();
page.onResourceRequested = function(request) {
console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function(response) {
console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open(url);
另一个例子netsniff.js通过收集并重新格式化数据,以HAR格式导出网络流量统计。使用HAR查看器来可视化结果并得到瀑布图。
以下是由酷云文库网站提供的一个examplary瀑布图:
对于更高级的网络分析,请参见诸如Confess.js 和 YSlow
YSlow和PhantomJS的集成对于自动化的web性能非常有用。报告可以在TAP(测试任何协议)和JUnit中。在持续集成系统(如Jenkins)中运行YSlow是一个很容易的DIY解决方案。