Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including nemo-browsermob-proxy with all npm packages installed. Try it out:

var nemoBrowsermobProxy = require("nemo-browsermob-proxy")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

nemo-browsermob-proxy v0.1.2

BrowserMob Proxy plugin for for Nemo automation framework


nemo-browsermob-proxy is a nemo plugin aimed to capture performance data and/or add custom headers to browsers launched during nemo tests. nemo-browsermob-proxy is based on browsermob-node which is built on top of browsermob-proxy api. Once nemo-browsermob-proxy plugin is registered, browser requests are routed through the proxy. Technically nemo-browsermob-proxy can support all capabilities supported by browsermob-proxy REST API, however currently it only supports a minimal set of features like starting proxy, collecting HAR, updating headers, stopping proxy etc. More features will be added based on requests.


You need to install and start the browsermob-proxy

% ./browsermob-proxy --port=8787


npm install nemo-browsermob-proxy --save-dev

Nemo Configuration

Add nemo-browsermob-proxy to your config/nemo-plugins.json file. Make sure priority<100 to allow plugin to register before nemo initializes the driver

        "priority": 99,
        "register": true

You can optionally put your proxy preferences like proxy property under nemoData environment variable like below,

  "nemoData": {
                "proxy": {
                     "host": "localhost", //host where browsermob-proxy is running
                     "port": 8787,  //port on browsermob-proxy is running
                     "proxyPort": 9090

The config above is optional. If it's not provided, following default will be applied

 "proxy": {
             "host": "localhost", //host where browsermob-proxy is running
             "port": 8080,  //port on browsermob-proxy is running
             "proxyPort": RETURNED By BMP //whatever available when queried browsermob-proxy


Once nemo-browsermob-proxy plugin is registered, it will start proxy and start grabbing data in HAR format. You can then set custom headers, run tests etc and then grab the output HAR file for reporting performance metrics. All nemo-browsermob-proxy methods return promises, so you can use it's methods along with WebDriverJS/nemo methods. For example,

 var headersToSet = {
            'User-Agent': 'Bananabot/1.0',
            'custom-header1': 'fancy-header1-value',
            'custom-header2': 'custom-header2-value'
  nemo.browserProxy.writeOutputToHARFile(process.cwd() + '/data.har');
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free