Skip to main content

Android UI Automation Framework — like Geppetto brought Pinocchio to life, this tool brings your tests to life.

Project description

Geppetto

Just as Geppetto brought Pinocchio to life, this tool brings your tests to life through automation.

Overview

Geppetto is an Android UI automation framework that orchestrates and executes your test suite with precision and care. It provides a high-level Python API for controlling Android devices via ADB, Fastboot, and UIAutomator2.

Installation

uv add geppetto

# With image/video analysis support
uv add geppetto --optional analyzers

# With Acroname USB hub support
uv add geppetto --optional hardware

# Everything
uv add geppetto --optional all

For development:

# Clone the repository
git clone <repo-url>
cd geppetto

# Install dependencies and create virtual environment
uv sync --all-extras

Quick Start

from geppetto import Device, By

device = Device("SERIAL_NUMBER")

# Install and open an app
device.install("app.apk", replace=True)
device.open_app("com.example.app")

# Find and interact with UI elements
widget = device.await_widget(By.TEXT, "Login", timeout=15)
device.click(widget)

# Take a screenshot
device.screenshot("login_screen", pull_to_results=True)

# Access sub-services
device.wifi.connect("MyNetwork", WifiSecurityType.WPA2, "password")
device.lockscreen.set_pin("1234")
device.notification.open()

Architecture

geppetto/
├── core/        # ADB & Fastboot transport layers
├── ui/          # Widget, Bounds, WindowDump, Children
├── services/    # Lockscreen, WiFi, Notification controllers
├── analyzers/   # Screen and Video analysis tools
├── hardware/    # External hardware (Acroname USB hub)
├── models/      # Enums (By, Direction, WifiSecurityType)
├── device.py    # Main Device class (composition-based)
└── exceptions.py

License

MIT

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

geppetto_android-2.0.2.tar.gz (74.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geppetto_android-2.0.2-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file geppetto_android-2.0.2.tar.gz.

File metadata

  • Download URL: geppetto_android-2.0.2.tar.gz
  • Upload date:
  • Size: 74.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for geppetto_android-2.0.2.tar.gz
Algorithm Hash digest
SHA256 0e8076159b6e23defa1fd8b281bb8457bdab7f3abfcdcb8b5abb4ee14abe03ce
MD5 3c5621a81251ea22c32f0375b4ae64ad
BLAKE2b-256 c9d5d0b0809f25c3c9fb2edc5506a6009217957600424bc3cd28bffc70cea7f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for geppetto_android-2.0.2.tar.gz:

Publisher: publish.yml on desodre/Geppetto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file geppetto_android-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for geppetto_android-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4fa867e14a2fd55184810ad5494207fd7f6b6c0b676eca669bbe5644a49b5c85
MD5 a7d6d805d6fd9f92f74b4524385bd530
BLAKE2b-256 cc35afdfd82d54e47c5445ace76a4898e33aae1963b0c16e2920212a6dc47f6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for geppetto_android-2.0.2-py3-none-any.whl:

Publisher: publish.yml on desodre/Geppetto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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