1.0.1 • Public • Published


npm version

Build Status Coverage Status

Dependency Status devDependency Status Greenkeeper badge

A reporter for karma-benchmark outputting results to a JSON file.


npm install karma-benchmark-json-reporter

Setting up

After installing karma, karma-benchmark and your favorite launcher, in your karma.conf.js:

module.exports = function (config) {
    frameworks: ['benchmark'],
    reporters: ['benchmark-json'],
    // other karma options
    // options for 'karma-benchmark-json-reporter'
    benchmarkJsonReporter: {
      pathToJson: 'my-benchmark-results.json'

See complete working examples for more details.


The benchmarkJsonReporter option container has three settings:


String or array of strings corresponding to the path(s) from the karma basePath of the output JSON file(s).

Default: results.json from the karma basePath.

By setting pathToJson to an array of paths and customizing formatOutput, one can generate multiple output files. See this example for more.


Function that takes in the compiled results array and is expected to return an object that is passed to formatOutput.

Default: the identity function.

Each compiled results item corresponds to one benchmark run has the following keys:

  • fullName: full (and unique) run name concatenating browser, suite and name values
  • browser: name of browser used
  • suite: name of suite (as set in suite('<>', function () {})
  • name: name of benchmark (as set in benchmark('<>', function () {})
  • count: number of times the test was executed
  • cycles: number of cycles performed while benchmarking
  • hz: number of operations per second
  • hzDeviation: standard deviation in hz
  • mean: mean in seconds
  • deviation: standard deviation in seconds
  • variance: variance in seconds^2
  • moe: margin of error
  • rme: relative margin of error (in percentage of the mean)
  • sem: standard error of the mean
  • sample: list of sample points

Note that the compiled results are sorted from fastest to slowest hz values before being passed to formatResults.


Function that takes the output of formatResults and is expected to return a JSON-serializable object that will be written in the output file(s).

Defaults: function (results) { return { results: results } }.

If formatOutput returns an array, then items in the array will be written in separate JSON files in the same order as the given pathToJson array setting.

Otherwise, the formatOutput return value gets JSON stringified into a single JSON file located at pathToJson.


2018 Étienne Tétreault-Pinard. MIT License

Standard - JavaScript Style Guide

Package Sidebar


npm i karma-benchmark-json-reporter

Weekly Downloads






Unpacked Size

11.3 kB

Total Files


Last publish


  • etpinard