美文网首页我爱编程
利用phantomjs进行前端自动化测试

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

作者: NowhereToRun | 来源:发表于2018-03-13 00:44 被阅读227次

    最近做了一波业务的优化,在上线前需要自测一下来验证优化的效果,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进行前端自动化测试

        本文链接:https://www.haomeiwen.com/subject/pszwwxtx.html