/Airtest

UI Test Automation Framework for Games and Apps

Primary LanguagePythonApache License 2.0Apache-2.0

Airtest

https://travis-ci.org/AirtestProject/Airtest.svg?branch=master

UI Test Automation Framework for Games and Apps

跨平台的UI自动化测试框架,适用于游戏和App中文版点这里

demo.gif

Getting Started

Airtest is a cross-platform automated testing framework focusing mainly on games, but can also be used for native apps. Windows and Android are currently supported; iOS support is in open beta now! [Roadmap]

Airtest provides cross-platform APIs, including app installation, simulated input, assertion and so forth. Airtest uses image recognition technology to locate UI elements, so that you can automate test on games without injecting any code. The test will generate an HTML report, which allows you to quickly locate failed test cases.

AirtestIDE is an out of the box GUI tool that helps to create and record test cases in a user-friendly way. AirtestIDE provides QA with a complete production workflow: record -> replay -> report

Get Started from Airtest Project Homepage

Installation

Use pip to install Airtest python library.

pip install -U airtest

On MacOS/Linux platform, you need to grante adb execute permission.

# for mac
cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac
# for linux
# cd {your_python_path}/site-packages/airtest/core/android/static/adb/linux
chmod +x adb

Download AirtestIDE from our homepage if you need to use the GUI tool.

Documentation

You can find the complete Airtest documentation on readthedocs.

Example

Airtest aims at providing platform independent API, so that you can write tests once and be able to run it on multiple devices.

  1. Using connect_device API you can connect to any android/iOS device or windows application.
  2. Then perform simulated input to test your game or app.
  3. And do not forget to make assertions of the expected test result.
from airtest.core.api import *

# connect an android phone with adb
init_device("Android")
# or use connect_device api
# connect_device("Android:///")

install("path/to/your/apk")
start_app("package_name_of_your_apk")
touch(Template("image_of_a_button.png"))
swipe(Template("slide_start.png"), Template("slide_end.png"))
assert_exists(Template("success.png"))
keyevent("BACK")
home()
uninstall("package_name_of_your_apk")

For more detailed info, please refer to Airtest Python API reference or take a look at API code

Running .air from CLI

Using AirtestIDE, you can easily create and author automated tests as .air directories. Airtest CLI provides the possibility to execute tests on different host machine and target device platforms without using AirtestIDE itself.

# run test targeting on Android phone connected to your host machine via ADB
airtest run "path to your .air dir" --device Android:///

# run test targeting on Windows application whose title matches Unity.*
airtest run "path to your .air dir" --device "Windows:///?title_re=Unity.*"

# generate HTML report after running test
airtest report "path to your .air dir"

# or use as python module
python -m airtest run "path to your .air dir" --device Android:///

Try running provided test case: airtest/playground/test_blackjack.air and see Usage of CLI.

Contribution

Pull requests are very welcome.

Thanks

Thanks for all these great works that make this project better.