1.1.0 • Published 9 years ago

node-timing.js v1.1.0

Weekly downloads
191
License
-
Repository
github
Last release
9 years ago

node-timing.js

node-timing.js is a small set of helpers for working with the Navigation Timing API to identify where your application is spending its time. Useful as a function to be passed to Selenium's executeScript function.

Installation

$ npm install node-timing.js

Usage

var timing = require('node-timing.js');

describe('node-timing.js', function () {
    var timings;
    var threshold = 2000;

    before(function () {
        browser.get('/');
        browser.driver.executeScript(timing.getTimes).then(function (times) {
            timings = times;
        });
    });

    it('should load the page faster than ' + threshold + 'ms', function () {
        expect(timings.loadTime).to.be.below(threshold);
    });

});

Sample output of timing.getTimes()

Chrome:

{
  appcacheTime: 10,
  connectTime: 141,
  domReadyTime: 472,
  firstPaint: 1441899507454.93,
  firstPaintTime: 691.98486328125,
  initDomTreeTime: 483,
  loadEventTime: 0,
  loadTime: 1260,
  lookupDomainTime: 36,
  readyStart: 0,
  redirectTime: 0,
  requestTime: 118,
  unloadEventTime: 0
}

Firefox:

{
  appcacheTime: 0,
  connectTime: 0,
  domReadyTime: 388,
  firstPaint: 0,
  initDomTreeTime: 332,
  loadEventTime: 0,
  loadTime: 1002,
  lookupDomainTime: 1,
  readyStart: 1,
  redirectTime: 0,
  requestTime: 167,
  unloadEventTime: 0
}

Build

Run npm install to install necessary dependencies for building the library. Check that npm run jshint doesn't throw any exceptions.

License

Released under an MIT license.