pytest plugin for openSTF
Project description
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_stf-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bcc533a8f7252462a08056a2773f98ec3b7418b01a5b9d2cf88afe66ebd2395 |
|
MD5 | dbb7a41795115642beb22decd7cbd8f6 |
|
BLAKE2b-256 | 0e8b78fed86aaca1f02b737f20b6ac70c94fb72cafb40e06ef3b3e0dee015d77 |