zoukankan      html  css  js  c++  java
  • 认识phantomjs

    PhantomJS

    PhantomJS是一款webkit内核的headelsss的浏览器,使用QtWebkit, 支持DOM操作、CSS选择器、JSON、Canvas和SVG,可以模拟浏览器的服务。

     

    安装

    mac同学使用 brew install casperjs

     

    可以做什么?

    1. Headless的网站集成测试

    可以和单元测试框架如Jasmine、Mocha和WebDriver集成

    2. 屏幕捕捉

    可以捕捉的web页面

    3.网络监控 性能分析

    监控page loading支持输出HAR标准文件,支持使用YSlow和Jenkins进行全自动的性能分析。

    4. 爬虫

    5. 运行自动化测试QA 

     

    phantomjs的生态圈

    1. CasperJS:一个开源的导航脚本处理和高级测试工具

    2. Mocha-PhantomJS:JavaScript测试框架Mocha的客户端

    前端页面监控

    前端页面监控:比如,页面第三方系统数据调用失败,模块加载异常、用户白屏、数据不正确。这时候就需要从前端DOM展示的角度来分析。并且出现问题,需要使用邮件、短信通知相关人员修复bug。并且触发报警是要有现场快照,以便复现问题。

    UI测试包括网页元素的正确展现,网页交互之后的元素变化等,人工测试很是头疼,并且UI层面的测试用例也不好写。

    注入JS文件

    var webPage = require('webpage');
    var page = webPage.create();
    page.includeJs('http://code.jquery.com/jquery-1.10.2.min.js', function() {
    // 模拟登录
    var $testForm = $('form#login');
    $testForm.find('input[name="username"]').value('barret');
    $testForm.find('input[name="password"]').value('1234');
    $testForm.submit();
    });
    

    执行JS代码

    1 var webPage = require('webpage');
    2 var page = webPage.create();
    3 page.open('http://www.taobao.com', function(status) {
    4 var title = page.evaluate(function() {
    5 return document.title;
    6 });
    7 console.log(title);
    8 phantom.exit();
    9 });

    测试页面加载速度

    var page = require('webpage').create(),
      system = require('system'),
      t, address;
    
    if (system.args.length === 1) {
      console.log('Usage: loadspeed.js <some URL>');
      phantom.exit();
    }
    
    t = Date.now();
    address = system.args[1];
    page.open(address, function(status) {
      if (status !== 'success') {
        console.log('FAIL to load the address');
      } else {
        t = Date.now() - t;
        console.log('Loading ' + system.args[1]);
        console.log('Loading time ' + t + ' msec');
      }
      phantom.exit();
    });

    phantomjs loadspeed.js http://www.baidu.com

    输出 Loading http://www.baidu.com Loading time 3802msc

    屏幕截图
    var page = require('webpage').create();
    page.open('http://github.com/', function() {
      page.render('github.png');
      phantom.exit();
    });

    设置页面背景颜色

    page.evaluate(function() {
      document.body.bgColor = 'white';
    });
    

     确保在render之前




    无界面的测试

    PhantomJS itself is not a test framework, it is only used to launch the tests via a suitable test runner.

    例如Mocha Jasmine WebDriver 


    和CI系统持续集成
    例如Jenkins或者TeamCity,Travis CI已经内置了对PhantomJS的支持。

    最好的实践
    和测试框架CasperJS集成。

     

     相关连接

    官网: www.phantomjs.org

  • 相关阅读:
    java Activiti 工作流引擎 SSM 框架模块设计方案
    自定义表单 Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    数据库设计的十个最佳实践
    activiti 汉化 stencilset.json 文件内容
    JAVA oa 办公系统模块 设计方案
    java 考试系统 在线学习 视频直播 人脸识别 springboot框架 前后分离 PC和手机端
    集成 nacos注册中心配置使用
    “感恩节 ”怼记
    仓颉编程语言的一点期望
    关于System.out.println()与System.out.print("\n")的区别
  • 原文地址:https://www.cnblogs.com/bhaltair/p/6859609.html
Copyright © 2011-2022 走看看