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