🌜
🌞
karma-browserstack-launcher

karma-browserstack-launcher

v1.6.0

A Karma plugin. Launch any browser on BrowserStack!

npm install karma-browserstack-launcher

README

karma-browserstack-launcher

js-standard-style npm version npm downloads

Build Status Dependency Status devDependency Status

Use any browser on BrowserStack!

Installation

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

$ npm install karma-browserstack-launcher --save-dev

and it will be added automatically.

Configuration

// karma.conf.js
module.exports = function(config) {
  config.set({
    // 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']
  })
}

Global options

  • username your BS username, you can also use BROWSERSTACK_USERNAME env variable.
  • accessKey your BS access key, you can also use BROWSERSTACK_ACCESS_KEY env variable.
  • startTunnel do you wanna establish the BrowserStack tunnel ? (defaults to true)
  • tunnelIdentifier/localIdentifier in case you want to start the BrowserStack tunnel outside karma by setting startTunnel to false, set the identifier passed to the -localIdentifier option here (optional)
  • 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)
  • proxyHost the host of your proxy for communicating with BrowserStack REST API and BrowserStackLocal (optional)
  • proxyPort the port of your proxy (optional)
  • proxyUser the username used for authentication with your proxy (optional)
  • proxyPass the password used for authentication with your proxy (optional)
  • proxyProtocol the protocol of your proxy (optional. default: http. valid: http or https)
  • forcelocal force traffic through the local BrowserStack tunnel, passes flag through to BrowserStackTunnel
  • video enable video recording of session on BrowserStack (defaults to true)

Per browser options

  • device name of the device
  • real_mobile or realMobile allows the session to run on a real mobile device instead of an emulator / simulator (optional, defaults to false)
  • browser name of the browser
  • browser_version version of the browser
  • os which platform ?
  • os_version version of the platform
  • build the BS worker build name (optional, defaults to global)
  • name the BS worker name (optional, defaults to global)
  • project the BS worker project name (optional, defaults to global)

Note: you can also pass through any additional options supported by browserstack. (EG. url, resolution, etc.)
See https://www.browserstack.com/automate/capabilities for a full list of supported options.

BrowserStack reporter

To report session results back to BrowserStack for display on your BrowserStack dashboard, use the following additional configuration:

// karma.conf.js
module.exports = function(config) {
  config.set({
    // The rest of your karma config is here
    // ...
    reporters: ['dots', 'BrowserStack']
  })
}

Browserstack iOS simulators

By default, your Selenium and JS tests will run on real iOS devices on BrowserStack. Since we are in the implementation phase, we are still working on a few things, such as adding more devices, ability to test on local URLs, etc.

In case your tests are facing any issues on real iOS devices, we also provide iOS simulators where you can run your automated tests smoothly.

To access our iOS simulators, use the following capabilities:

customLaunchers: {
  iPad_3: {
    real_mobile: false,
    device: 'iPad 3rd (6.0)',
    os: 'ios',
    'os_version': '6.0',
    'browser_version': null,
    browser: 'Mobile Safari'
  }
}

List of iOS simulators you can test on:

  • device: 'iPad 3rd', 'os_version': '5.1'
  • device: 'iPad 3rd (6.0)', 'os_version': '6.0'
  • device: 'iPad Mini', 'os_version': '7.0'
  • device: 'iPad 4th', 'os_version': '7.0'
  • device: 'iPhone 4S', 'os_version': '5.1'
  • device: 'iPhone 4S (6.0)', 'os_version': '6.0'
  • device: 'iPhone 5', 'os_version': '6.0'
  • device: 'iPhone 5S', 'os_version': '7.0'

CI/CD Build Environment Variables

Many CI/CD systems will make the name or ID of the currently running build available via an environment variable. The follow environment variables below are supported by default:

  • process.env.BUILD_NUMBER
  • process.env.BUILD_TAG
  • process.env.CI_BUILD_NUMBER
  • process.env.CI_BUILD_TAG
  • process.env.TRAVIS_BUILD_NUMBER
  • process.env.CIRCLE_BUILD_NUM
  • process.env.DRONE_BUILD_NUMBER

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


For more information on Karma see the homepage.


Check out sample code working with karma-browserstack-launcher here.

Release Notes

1.3.0
By Friedel Ziegelmayer • Published on June 28, 2017

Features

  • add support for using BrowserStackReporter with a proxy (b0f8031)
  • allow the user to disable browserstack video recording (b3cce6c)
  • deps: update to the latest (6c719d2)
  • deps: update to tunnel 2.0.1 (9617438)
1.2.0
By Friedel Ziegelmayer • Published on January 29, 2017

Features

  • pass forcelocal to tunnel (693a4aa)
  • permit overriding name, build, and project on a per-browser basis (9c77a96)
  • Update browserstacktunnel wrapper (4519a37)
1.1.0
By Friedel Ziegelmayer • Published on September 5, 2016

Features

1.0.1
By Friedel Ziegelmayer • Published on May 31, 2016

Bug Fixes

  • urlencode proxy username and password (ab42eee)
  • Use separate property to shutdown workers (221d49f), closes #62

Features

  • Pass proxy url to browserstack api (0c1ca47)
0.1.10
By Friedel Ziegelmayer • Published on February 12, 2016

Bug Fixes

  • Capture timeout occurs even after tests have run successfully (1bd45b6), closes #17
  • Ensure the browser gets terminated (ea3ed1e)

Features

  • add build number env vars for compatibility with drone and other CI systems (054b8d4)
0.1.9
By Friedel Ziegelmayer • Published on January 10, 2016

Bug Fixes

  • Capture timeout occurs even after tests have run successfully (1bd45b6), closes #17
0.1.8
By Friedel Ziegelmayer • Published on December 16, 2015

Bug Fixes

  • Avoid setting tunnelIdentifier if startTunnel is false (fe61baa)
  • Property access on undefined config (a05e6cf), closes #52

Features

  • proxy: Add proxy settings to BrowserstackLocal (7c3da2b)
0.1.7
By Friedel Ziegelmayer • Published on November 12, 2015

Bug Fixes

  • launcher: inherit base launcher and override forceKill (e92798f)
  • Pass localIdentifier to browserstacktunnel-wrapper (ac74978)

Features

  • Global poller for updating worker status (b81cafb)
0.1.5
By Friedel Ziegelmayer • Published on September 9, 2015

Bug Fixes

  • Update browserstacktunnel-wrapper & others (23fdc9d)
0.0.5
By Friedel Ziegelmayer • Published on November 26, 2013

Bug Fixes

  • fix browserstack api tunnelling option (9453045)
  • wait for the browserstack worker to be in state 'running' before timing out. (f8a3cc0)

General

License
MIT
Typescript Types
Tree-shakeable
No

Popularity

GitHub Stargazers
148
Community Interest
288
Number of Forks
85

Maintenance

Commits
10/219/2201
Last Commit
Dec 3, 2020
Open Issues
30
Closed Issues
35
Open Pull Requests
16
Closed Pull Requests
56

Versions

Versions Released
10/219/2201
Latest Version Released
May 18, 2020
Current Tags
latest1.6.0

Contributors

vojtajina
vojtajina
Commits: 37
dignifiedquire
dignifiedquire
Commits: 33
shirish87
shirish87
Commits: 10
johnjbarton
johnjbarton
Commits: 8
donato
donato
Commits: 4
Varun-garg
Varun-garg
Commits: 3
mgol
mgol
Commits: 3
bengummer
bengummer
Commits: 3
budde377
budde377
Commits: 2
yashLadha
yashLadha
Commits: 2
yhwh
yhwh
Commits: 2
L42y
L42y
Commits: 2
jackspirou
jackspirou
Commits: 1
zzo
zzo
Commits: 1
roland-vachter
roland-vachter
Commits: 1