UNPKG

forerunnerdb

Version:

A NoSQL document store database for browsers and Node.js.

97 lines (76 loc) 2.83 kB
# Astrobench [![NPM version](https://badge.fury.io/js/astrobench.png)](http://badge.fury.io/js/astrobench) [![Bower version](https://badge.fury.io/bo/astrobench.png)](http://badge.fury.io/bo/astrobench) > Make the Web Faster JavaScript library for running in the browser performance benchmarks, based on Benchmark.js. [Live Demo](https://kupriyanenko.github.io/astrobench/demo.html) Easy way to create test cases. Provides rich and pretty UI. ![](https://cdn.rawgit.com/kupriyanenko/astrobench/gh-pages/astro.png) ## Installation Install with [bower](http://bower.io/) ``` $ bower install astrobench --save ``` Or with [npm](https://www.npmjs.org/) ``` $ npm install astrobench --save ``` ## Use it ```html $ bower install astrobench --save $ $EDITOR tests.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Performance tests</title> <link rel="stylesheet" href="bower_components/astrobench/src/style.css"> </head> <body> <!-- Wrapper for tests --> <div id="astrobench"></div> <script src="bower_components/astrobench/dist/astrobench.js"></script> <script> // A test suite begins with a call to the global function `suite` with two parameters: // a string and a function. // The string is a name or title for a spec suite – usually what is being tested. // The function is a block of code that implements the suite. suite('String matching', function(suite) { var text; // To help a test suite DRY up any duplicated setup code, provides // the global `setup` functions. // As the name implies the `setup` function is called once. // You can store data in `suite` Object, or define necessary variables. // Code from body of the function will be presented in UI. setup(function() { suite.text = 'Hello world'; text = 'Hello world'; }); // Benchmark are defined by calling the global function `bench`, // which, like `suite` takes a string and a function. // The string is the title of the test and the function is the test bench('String#match', function() { !! text.match(/o/); }); bench('RegExp#test', function() { !! /o/.test(suite.text); }); // Async benchmark. // Calls to `bench` can take an optional single argument, Deferred object, // method .resolve() should be called when the async work is complete. bench('Async#test', function(deferred) { setTimeout(function() { deferred.resolve(); }, 100); }, // Options for current benchmark // See more on http://benchmarkjs.com/docs#options { defer: true }); }); </script> </body> </html> ``` And enjoy the result. ![](https://cdn.rawgit.com/kupriyanenko/astrobench/gh-pages/sample.png)