开发手册 欢迎您!
软件开发者资料库

PhantomJS - 测试

PhantomJS测试 - 从简单和简单的步骤学习PhantomJS,从基本到高级概念,包括概述,环境设置,对象,方法,网页,文件系统,系统,Web服务器模块,属性,方法,事件/回调,子进程模块,命令行界面,屏幕捕获,页面自动化,网络监控,测试,REPL,示例。

PhantomJS 有很多网页API,它提供了所有细节. PhantomJS可用于测试,如获取页面内容,获取屏幕共享,将页面转换为pdf等.市场上有许多流行的测试库,可与PhantomJS一起使用,可用于测试.

一些可以与PhantomJS一起使用的流行框架如下&&;

  • Mocha

  • Jasmine

  • Qunit

  • Hiro

  • Laika

  • Buster.JS

  • WebDriver

示例 - 带有Qunit的PhantomJS

(function () {        var url, timeout,args = require('system').args, page = require('webpage').create();    url = args[1];    timeout = parseInt(10, 10);       page.onConsoleMessage = function (msg) {        //prints all the console messages       console.log(msg);    };    page.onInitialized = function () {  // called when page is initialized       page.evaluate(callqunit);    };    page.onCallback = function (message) { // called from        var result, failed;             if (message) {           if (message.name === 'QUnit.done') {             result = message.data;             failed = !result || !result.total || result.failed;                          if (!result.total) {                console.error('No tests were executed');             }             pageexit(failed ? 1 : 0);          }       }    };     page.open(url, function (status) { // opening page        if (status !== 'success') {          console.error('Unable to access network: ' + status);          pageexit(1);       } else {          var checkqunit = page.evaluate(function () {             //evaluating page and chcking if qunit object                is present on the given page url             return (typeof QUnit === 'undefined' || !QUnit);          });                   if (checkqunit) {             console.error('Qunit scripts are not present on the page');             pageexit(1);          }                               //timeout of 10seconds is used otherwise message from console will get printed.          setTimeout(function () {             console.error('The specified timeout of ' + timeout + ' seconds has expired.                Aborting...');             pageexit(1);          }, timeout * 1000);                 }    });     function callqunit() {

qunit.html

                          QUnit Example                      
       
               

输出

命令 :  phantomjs qunit.js http://localhost/tasks/qunit.html

上述程序生成以下输出.

{"passed":3,"failed":2,"total":5,"runtime":23}Time taken is 23ms to run 5 tests.3 passed, 2 failed.