A Karma plugin. Launch any browser on BrowserStack!


Use any browser on BrowserStack!

The easiest way is to keep karma-browserstack-launcher as a devDependency in your package.json.

  "devDependencies": {
    "karma": "~0.10",
    "karma-browserstack-launcher": "~0.1"

You can also add it by this command:

npm install karma-browserstack-launcher --save-dev
// karma.conf.js 
module.exports = function(config) {
    // global config of your BrowserStack account 
    browserStack: {
      username: 'jamesbond',
      accessKey: '007'
    // define browsers 
    customLaunchers: {
      bs_firefox_mac: {
        base: 'BrowserStack',
        browser: 'firefox',
        browser_version: '21.0',
        os: 'OS X',
        os_version: 'Mountain Lion'
      bs_iphone5: {
        base: 'BrowserStack',
        device: 'iPhone 5',
        os: 'ios',
        os_version: '6.0'
    browsers: ['bs_firefox_mac', 'bs_iphone5']
  • username your BS username (email), you can also use BROWSER_STACK_USERNAME env variable.
  • accessKey your BS access key (password), you can also use BROWSER_STACK_ACCESS_KEY env variable.
  • startTunnel do you wanna establish the BrowserStack tunnel ? (defaults to true)
  • retryLimit how many times do you want to retry to capture the browser ? (defaults to 3)
  • captureTimeout the browser capture timeout (defaults to 120)
  • timeout the BS worker timeout (defaults to 300
  • build the BS worker build name (optional)
  • name the BS worker name (optional)
  • project the BS worker project name (optional)
  • device name of the device
  • real_mobile allow browserstack to use a simulator
  • browser name of the browser
  • browser_version version of the browser
  • os which platform ?
  • os_version version of the platform

BrowserStack's REST API documentation explains how to retrieve a list of desired capabilities for browsers.

For an example project, check out Karma's e2e test.

For more information on Karma see the homepage.