Skip to main content

DeviceFarm App Manager Library

Biblioteca Robot Framework para reservar dispositivos, baixar aplicativos do Firebase, realizar upload e garantir a instalação no DeviceFarm.

Instalação

python -m pip install --upgrade devicefarm-app-manager-library

Import único

*** Settings ***
Library    devicefarm_app_manager_library

O import unificado disponibiliza, entre outras, as seguintes keywords:

  • Seleciona Dispositivo Pronto Para Uso
  • Download APK Firebase
  • Upload Aplicativo para o devicefarm
  • Instalar Aplicativo em dispositivo reservado
  • Consultar Aplicativo Instalado
  • Garantir Aplicativo Instalado
  • Retorna counter do aplicativo no devicefarm

Exemplo

*** Settings ***
Library    devicefarm_app_manager_library

*** Variables ***
@{APP_VERSAO}    1.8.4    201    ANDROID
${PACKAGE}       br.gov.caixa.fies

*** Test Cases ***
Reservar e instalar
    ${device_id}=    Seleciona Dispositivo Pronto Para Uso
    ...    platform=ANDROID
    ...    preferred_devices=${DEVICES}

    ${resultado}=    Garantir Aplicativo Instalado
    ...    device_id=${device_id}
    ...    app_identifier=${PACKAGE}
    ...    version=${APP_VERSAO}[0]
    ...    build=${APP_VERSAO}[1]
    ...    platform=${APP_VERSAO}[2]

Configuração

Defina ENV_FILE com o caminho do .env do projeto consumidor ou disponibilize as variáveis diretamente no ambiente:

DEVICEFARM_BASE_URL=https://seu-devicefarm/rest
DEVICEFARM_TENANT_ID=tenant-id
DEVICEFARM_WORKSPACE_ID=workspace-id
DEVICEFARM_CLIENT_ID=client-id
DEVICEFARM_CLIENT_SECRET=client-secret

DEVICEFARM_APP_FOLDER=./resources/apks
DEVICEFARM_STATE_FILE=./resources/apks/install_state.json
DEVICEFARM_UPLOAD_CACHE_FILE=./resources/apks/cache/upload_cache.json

FIREBASE_SERVICE_ACCOUNT_FILE=./credentials/firebase.json
FIREBASE_PROJECT_NUMBER=project-number
FIREBASE_APP_ID=app-id

DEVICEFARM_REQUEST_TIMEOUT=30
DEVICEFARM_UPLOAD_TIMEOUT=300
LOG_DIR=output

DEVICEFARM_REQUEST_TIMEOUT controla as chamadas comuns à API. O upload do APK usa DEVICEFARM_UPLOAD_TIMEOUT separadamente e aceita valores maiores para redes lentas ou arquivos grandes. Os valores são expressos em segundos.

Também é possível sobrescrever o valor em uma chamada específica:

Garantir Aplicativo Instalado
...    device_id=${device_id}
...    app_identifier=${PACKAGE}
...    version=1.8.4
...    build=201
...    platform=ANDROID
...    upload_timeout=900

Os nomes antigos oauthClientId e oauthClientSecret ainda são aceitos na versão 1.1.2, mas estão depreciados.

Estrutura interna

  • devicefarm_app_manager_library.py: fachada pública do Robot Framework.
  • device_farm_library.py: seleção e reserva de dispositivos.
  • upload_app_library.py: consulta, upload e instalação de aplicativos.
  • config.py: leitura e validação centralizada das configurações.
  • client.py: autenticação e sessão HTTP compartilhada.
  • *_service.py: operações HTTP específicas.
  • exceptions.py: erros de domínio apresentados ao consumidor.

Os módulos antigos permanecem disponíveis como adaptadores de compatibilidade, mas não devem ser utilizados por projetos novos.

Compatibilidade

Os imports antigos continuam disponíveis durante a migração:

Library    device_farm_library
Library    upload_app_library
Library    devicefarm_app_manager

Novos projetos devem utilizar apenas devicefarm_app_manager_library.

Desenvolvimento

python -m pip install -e .
python -m pytest -q
python -m build
python -m twine check dist/*

A publicação no PyPI é executada pelo workflow de release quando uma tag v* é enviada ao GitHub. O workflow valida se a tag corresponde à versão do pyproject.toml antes da publicação.

Metadata

Release files for devicefarm-app-manager-library 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for devicefarm-app-manager-library 1.1.2
File Size Uploaded
devicefarm_app_manager_library-1.1.2.tar.gz 17.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for devicefarm-app-manager-library 1.1.2
File Interpreter ABI Platform
devicefarm_app_manager_library-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 37.0 kB

Release files / devicefarm_app_manager_library-1.1.2.tar.gz

Download URL devicefarm_app_manager_library-1.1.2.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
bf22d0cd81e9b9ff30491fe8ea6ab11240407373807781e3e26a88deeac63371
BLAKE2b-256 checksum
How to use checksums
d8113da0ed7edc6088f5d3a04121cc0284857e167549b456eb0e119a4d0c40bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / devicefarm_app_manager_library-1.1.2-py3-none-any.whl

Download URL devicefarm_app_manager_library-1.1.2-py3-none-any.whl
Size 19.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9cf96a70a012bfc7ff179b7b535892bf5a33b6e626b4a965e0bfc1801c3ccb96
BLAKE2b-256 checksum
How to use checksums
7ed99d2422284161b1b20936f9f3ea9ada22732079f23970ca790ee57f93cc00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

1.2.0

2 release files

This release

1.1.2 This release

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page