利用phantomjs进行前端自动化测试

最近做了一波业务的优化,在上线前需要自测一下来验证优化的效果,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,这样就可以啦~~~
先这样吧,有空了看看能不能解决动态脚本不加载。

你可能感兴趣的:(利用phantomjs进行前端自动化测试)