Skip to content

Instantly share code, notes, and snippets.

@n1k0
Last active December 12, 2015 08:29
Show Gist options
  • Star 9 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save n1k0/4744637 to your computer and use it in GitHub Desktop.
Save n1k0/4744637 to your computer and use it in GitHub Desktop.
Find the longest request when loading a given url using CasperJS

Find longest request using CasperJS

This gist is based on this one.

// longest-request.js
var casper = require("casper").create();
var utils = require("utils");
var url = casper.cli.get(0);
var times = [];

if (!url) {
    casper.echo("The url arg is missing").exit();
}

casper.on('resource.requested', function(resource) {
    times[resource.id] = {
        start: new Date().getTime(),
        url: resource.url
    };
});

casper.on('resource.received', function(resource) {
    times[resource.id].time = new Date().getTime() - times[resource.id].start;
    times[resource.id].status =  resource.status;
});

casper.start(url).run(function() {
    var longest = times.sort(function(reqa, reqb) {
        return reqb.time - reqa.time;
    })[0];
    this.echo(utils.format('Longest request: %s (%s) with %dms', 
                           longest.url, longest.status, longest.time));
    this.exit();
});

Usage:

$ casperjs longest-request.js https://nicolas.perriault.net/
Longest request: https://nicolas.perriault.net/static/photography/2012/sunset-shooters/thumb.jpg (200) with 1372ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment