explaingit

airtestproject/airtest

9,343PythonAudience · developerComplexity · 3/5Setup · moderate

TLDR

A Python testing framework that automates tapping and swiping on Android, iOS, and Windows apps by recognizing what's on screen, no app modifications needed. Includes a visual IDE for recording tests without writing code.

Mindmap

mindmap
  root((Airtest))
    What it does
      Image recognition
      Touch automation
      No app changes
    Platforms
      Android
      iOS
      Windows
    Tools
      AirtestIDE
      Poco library
      HTML reports
    Tech Stack
      Python
      ADB
    Use Cases
      Game testing
      App regression tests
      Device farm scaling
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automate tapping and swiping tests on an Android game without modifying the game's code.

USE CASE 2

Write one Python test script and run it across Android, iOS, and Windows devices unchanged.

USE CASE 3

Use AirtestIDE to record interactions visually and generate test scripts without writing code by hand.

USE CASE 4

Scale automated tests across a farm of physical devices connected over USB or a network.

Tech stack

Python

Getting it running

Difficulty · moderate Time to first run · 30min

Requires ADB and device connection over USB or network, iOS testing needs additional platform tools.

In plain English

Airtest is a testing framework that automates tapping, swiping, and other interactions on mobile apps and games without requiring any modifications to the app itself. It does this by using image recognition to locate buttons and other elements on screen, then simulating the touch or click. Because it works by looking at what is visible rather than hooking into the app's code, it can handle games built in Unity and similar engines where traditional automation tools often struggle. The framework supports Android, iOS, and Windows applications from a single set of Python scripts. A developer writes the test once, specifying which image on screen to tap and what result to expect, and the same script can run against different devices. For those who prefer a visual interface, the project also ships AirtestIDE, a desktop application that lets users record actions, run tests, and view reports without writing code by hand. A companion library called Poco extends Airtest by giving direct access to the internal structure of an app's user interface. Where image recognition looks at pixels, Poco can query named elements and their properties, which makes it possible to write more precise and reliable automation for supported platforms and game engines. Tests can be run from the command line against devices connected over USB or over a network, making it straightforward to scale testing across a farm of physical devices. After a test run, Airtest generates an HTML report that includes screenshots and screen recordings so it is easy to see exactly what happened and where something went wrong. The project was created by NetEase and is actively maintained as open-source software.

Copy-paste prompts

Prompt 1
Using Airtest, write a Python script that opens a mobile game on Android, taps on a specific button by its on-screen image, and checks that a score appears.
Prompt 2
Help me set up Airtest to run the same test script against multiple Android devices connected over a network at the same time.
Prompt 3
Show me how to use Poco with Airtest to query a UI element by name inside a Unity mobile game instead of relying on image recognition.
Prompt 4
How do I generate and view an HTML test report with screenshots after running an Airtest test suite from the command line?
Open on GitHub → Explain another repo

← airtestproject on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.