browserstacker

Python wrapper for BrowserStack features

MIT License

Downloads
787
Stars
3
Committers
1

BrowserStacker

Python wrapper for BrowserStack <https://www.browserstack.com/>_ features.

|Build Status| |codecov.io|

Installation

The current stable release:

::

pip install browserstacker

or:

::

easy_install browserstacker

or from source:

::

$ sudo python setup.py install

Usage

To start working with BrowserStack ScreenShots API simply type:

.. code:: python

>>> from browserstacker import ScreenShotsAPI
>>> api = ScreenShotsAPI('user', 'key')
>>> api.browsers()
[
    {
      "os": "Windows",
      "os_version": "XP",
      "browser": "chrome",
      "browser_version": "21.0",
      "device": None
    },
    {
      "os": "ios",
      "os_version": "6.0",
      "browser": "Mobile Safari",
      "browser_version": None,
      "device": "iPhone 4S (6.0)"
    }
  ....
]

Optionally you can filter the output of browsers by browser, browser_version, device, os or os_version.

.. code:: python

>>> api.browsers(os='Windows', browser='chrome')
[
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "22.0",
      "device": None
    },
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "23.0",
      "device": None
    }
  ....
]

Command line:

.. code:: bash

$ browserstacker browsers -os Windows -b chrome
Available browsers:

------
browser_version: 22.0
os: Windows
browser: chrome
device: None
os_version: 8.1
------
...
Total browsers: 100

Filtration values are case insensitive and are casted to strings during filtration. E.g. you can use integers for filtration by os_version parameter. Also it is possible to filter by multiple values:

.. code:: python

>>> api.browsers(os='Windows', browser=('chrome', 'firefox'))
[
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "chrome",
      "browser_version": "22.0",
      "device": None
    },
    {
      "os": "Windows",
      "os_version": "8.1",
      "browser": "firefox",
      "browser_version": "16.0",
      "device": None
    }
  ....
]

Command line:

.. code:: bash

$ browserstacker browsers -os Windows -b chrome -b firefox
Available browsers:

------
browser_version: 22.0
os: Windows
browser: chrome
device: None
os_version: 8.1
------
...
Total browsers: 215

To generate screenshots:

.. code:: python

>>> browser = api.browsers()[0]
>>> response = api.generate('http://www.google.com', browser)

Command line:

.. code:: bash

$ browserstacker generate http://www.google.com -os Windows -b firefox -bv 37.0 -ov XP

Here you can pass single browsers or list of them. You'll get the job_id from response. To list available screenshots for job_id:

.. code:: python

>>> api.list(response['job_id'])
{
    "id":"13b93a14db22872fcb5fd1c86b730a51197db319",
    "state":"done",
    "callback_url": "http://staging.example.com",
    "win_res": "1024x768",
    "mac_res": "1920x1080",
    "quality": "compressed",
    "wait_time": 5,
    "screenshots": [
        {
            "os":"Windows",
            "os_version":"XP",
            "browser":"ie",
            "browser_version":"7.0",
            "id":"be9989892cbba9b9edc2c95f403050aa4996ac6a",
            "state":"done",
            "url":"www.google.com",
            "thumb_url":"https://www.browserstack.com/screenshots/13b93a14db22872fcb5fd1c86b730a51197db319/thumb_winxp_ie_7.0.jpg",
            "image_url":"https://www.browserstack.com/screenshots/13b93a14db22872fcb5fd1c86b730a51197db319/winxp_ie_7.0.png",
            "created_at":"2013-03-14 16:25:45 UTC",
        }
    ]
}

Command line:

.. code:: bash

$ browserstacker list 13b93a14db22872fcb5fd1c86b730a51197db319

To download screenshots:

.. code:: python

>>> api.download(response['job_id'], 'path_to_screenshots_dir')

Command line:

.. code:: bash

$ browserstacker download 13b93a14db22872fcb5fd1c86b730a51197db319 -d screenshots_dir

All screenshots will be saved in 'path_to_screenshots_dir'. If destination kwarg is absent, then screenshots will be downloaded to current working directory. Also you can use shortcut to create & download screenshots to your local machine:

.. code:: python

>>> response = api.make('http://www.google.com', browser, destination='path_to_screenshots_dir')

Command line:

.. code:: bash

$ browserstacker make -os Windows -b firefox -bv 37.0 -ov XP -d screenshots_dir

Command line interface


Browserstacker comes with command line interface built with `Click <http://click.pocoo.org/>`_.
After installation ``browserstacker`` entry point will be available
It exposes almost the same API as ``ScreenShotsAPI`` does. Does not support Python 3.2.

To use CLI you have to pass user & key directly:

.. code:: bash

    $ browserstacker -u user -k key browsers
    Available browsers:
    ...
    Total browsers: 629

Or via environment variables:

.. code:: bash

    $ export BROWSERSTACK_USER=user
    $ export BROWSERSTACK_KEY=key
    $ browserstacker browsers

Help is also available:

.. code:: bash

    $ browserstacker --help
    Usage: browserstacker [OPTIONS] COMMAND [ARGS]...

    Options:
      -u, --user TEXT  Username on BrowserStack
      -k, --key TEXT   Access key
      -v, --verbosity  Verbosity level
      --version        Show the version and exit.
      --help           Show this message and exit.

    Commands:
      download
      generate
      browsers
      list
      make

Python support
--------------

BrowserStacker supports Python 2.6, 2.7, 3.2, 3.3, 3.4, 3.5, PyPy, PyPy3 and Jython.
**NOTE**. CLI does not support Python 3.2.


.. |Build Status| image:: https://travis-ci.org/Stranger6667/browserstacker.svg?branch=master
   :target: https://travis-ci.org/Stranger6667/browserstacker

.. |codecov.io| image:: https://codecov.io/github/Stranger6667/browserstacker/coverage.svg?branch=master
    :target: https://codecov.io/github/Stranger6667/browserstacker?branch=master