node-timing.js

1.1.0 • Public • Published

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.

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i node-timing.js

    Weekly Downloads

    1

    Version

    1.1.0

    License

    none

    Last publish

    Collaborators

    • droogans