Skip to main content

pytest plugin for openSTF

Project description

pytest-stf PyPI version

pytest plugin for OpenSTF

Plugin for simplify OpenSTF usage with pytest framework by providing simple fixture that do all primitive tasks for appium based tests.

Target is to easily scale up tests in CI environment where external stf service is used to provide android phones.

Plugin based on stf-appium-python-client

pytest arguments

openstf:
  --stf_host=STF_HOST   Openstf host
  --stf_token=STF_TOKEN
                        Openstf access token
  --phone_requirements=PHONE_REQUIREMENTS
                        Phone requirements
  --stf_allocation_timeout=STF_ALLOCATION_TIMEOUT
                        Allocation timeout (how long time plugin waits for device)

Fixture selected_phone

is session scoped fixture that find out suitable android phone based on cli arguments, prepare remote adb connection and starts appium server that tests could utilize eventually.

NOTE: appium need to be installed separately! (npm i appium) .

NOTE: only one phone is handled by this fixture.

Usage example

Test script: sample.py

from appium.webdriver.webdriver import WebDriver


def test_create(appium_client):
    client, appium, adb, phone = appium_client
    # device is dictionary of device metadata
    # adb: AdbServer instance, that is already connected
    # appium: AppiumServer instance that provide server address for appium client
    print(phone)
    print(f'wd_hub: {appium.get_api_path()}')
    
    client: WebDriver
    client, *_ = appium_client
    URL = 'https://google.com'
    client.get(URL)
    url = client.current_url
    assert url == URL, 'Wrong URL'

Execution

> pytest sample/test_samples.py --stf_host localhost --stf_token $TOKEN --phone_requirements platform=Android

See more examples from sample/test_samples.py.

custom capabilities:

> pytest --appium_capabilities cab=val1&cab=val2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-stf-0.2.0.tar.gz (6.7 kB view hashes)

Uploaded Source

Built Distribution

pytest_stf-0.2.0-py3-none-any.whl (4.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page