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.1.tar.gz (73.9 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.1-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: geppetto_android-2.0.1.tar.gz
  • Upload date:
  • Size: 73.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for geppetto_android-2.0.1.tar.gz
Algorithm Hash digest
SHA256 d5dd18c4d5abccd9e9da3dcb64166b15a22c587fe9e219f6fb52cf528f29f338
MD5 f11ca48a29f5ca8d00f084baeef17978
BLAKE2b-256 30e34532cc8cbed665756ca05e477abe0c4bc3ac125d47f152150eab61632cfd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: geppetto_android-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for geppetto_android-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aac9eb1ce049ca174cb29a5b4c534786eabe9ad3c5e4fae7453216fadafa69c7
MD5 761da98c3eda43d6a14c60236a14ef63
BLAKE2b-256 8c6d9c365f86444e55292810d2465a8e55f259ee24c257ebe314b85f9b156e2b

See more details on using hashes here.

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