webpagetesttool
v1.0.4
Published
Web Page Speed Test Tool - Node.js module
Downloads
2
Readme
#Web Page Test Tool - Node.js module
##Why?
We needed a wrapper for the existing WebPageSpeedTest node tool that could: a) persist tests to Amazon SimpleDb and b) export data to HostedGraphite and c) check up on existing tests
Since web page testing via the WPST API is asynchronous and not guaranteed to be run instantly, we needed a way to be able to schedule a test run and go back later to retrieve the results. A single run of this tool will check the entire SimpleDb domain for existing tests and retrieve their results, schedule a test for the given URL AND export results to HostedGraphite. Whilst it's not really extensible and will only write out to these two storage providers, you could fairly easily switch them out for similar storage technologies. Pluggable writers are not planned for this.
##Install
Install via npm
npm install @aoldevteam/webPageTestTool
##Usage
var wpst = require('@aoldevteam/webPageTestTool');
wpst.start(opts, function(err){
console.log("Tool finished run.")
});
##Options
The opts variable should be an associative array like so:
opts = {
accessKey: "Your AWS SimpleDB access key",
secretKey: "Your AWS SimpleDB secret key",
domain: "The AWS SimpleDB domain you want to store scheduled test details to",
webPageTestApiKey: "The WPT API key (get one from http://www.webpagetest.org/getkey.php)",
urlToTest: "www.appliancesonline.com.au",
testLocation: "ec2-ap-southeast-2:Chrome",
loggingLevel: "info",
testName: "AOLHome",
hostedGraphiteKey: "Your HostedGraphite API key"
}
Notes:
- testName should be a name unique to the URL you are testing; you could use it to test different sections of your website and track over time in HostedGraphite.
- all fields are required.
##Tests
###Running tests
Unit level tests are written using the Jasmine test runner, and stored as spec files in ./spec. You can run them via the command line:
npm test
###Code coverage
Get a code coverage report using Istanbul.
istanbul cover ./node_modules/jasmine-node/bin/jasmine-node spec/*.js