最近做了一波业务的优化,在上线前需要自测一下来验证优化的效果,chrome performance调试的时间总是不稳定,想要批量刷来取均值计算,于是想到使用无头浏览器来试一下。
目前已知存在的问题是:
使用js加载器加载的脚本,例如 import ()
,在这种情况下无法被加载.... 先记录一下,后面再解决。
phantomjs安装
linux下:
下载:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
解压:
tar -xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
建立软连接:
ln -s /usr/home/zihao5/phantomjs/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
Mac下:
brew install phantomjs
极其简单的测试脚本:
var WebPage = require('webpage');
var fs = require('fs');
var system = require('system');
var i = 100;
var address = system.args[1];
var times = system.args[2];
if (times) {
i = times;
}
function openPage() {
i = i - 1;
var page = WebPage.create();
page.settings.userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1';
page.customHeaders = {
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"Accept-Language": "zh-CN,zh;q=0.8,en;q=0.6",
};
page.open(address, function(s) {
console.log(i);
page.close();
});
wrapper();
}
function wrapper() {
if (i >= 0) {
setTimeout(function() {
openPage();
}, 5000);
} else {
phantom.exit();
}
}
wrapper()
调用方法例如: phantomjs phantomTest.js /Users/zihao5/Desktop/Code/snal/dist/index/index.html 100
用node随便搭了个server,页面中已各种打点,发送给server,这样就可以啦~~~
先这样吧,有空了看看能不能解决动态脚本不加载。
网友评论