Skip to main content

android test framework using adb connection and template matching in opencv

Project description

AndroidTest

The package is for android auto test, based on Python enviroment.

Basic thought is using ADB (Android Debug Bridge) to send command to Android test Phone connected with the PC and match picture by match template algorithm in opencv-python.

Requirement

1.ADB (Android Debug Bridge)

2.ASM (Android Screen Monitor)

Use to capture partial picture, and you need to install JDK in your computer before running it.

Then adjust zoom to 50%, you can also set zoom to other size, but need to add some code in your case source file after your create your case file:

# adjust asm zoom to other size, 25% 
ASM.ZOOM_SIZE = 25

3.Tesseract (Tesseract-OCR)

If you want to use the mechod 'image_to_string' in the 'androidautotest.api' which can recognize text in pictures, you need to install Tesseract and install testdata necessary like chinese 'chi_sim'.

Installation & Usage

1.Install androidautotest

pip install androidautotest 

Follow information indicate you have installed androidautotest successfully.

> python -m androidautotest
usage:
  androidautotest --installdep
  androidautotest --startasm
  androidautotest --newcase <NEWCASE> --savedir <SAVEDIR>
  androidautotest --casedir <CASEDIR> --device <DEVICE> --times <TIMES>

A framework to run test case for android automated test

optional arguments:
  -V, --version        Print version and exit
  -h, --help           Print this help message and exit

install dependency:
  --installdep         install dependency of androidautotest

start asm:
  --startasm           start Android Screen Monitor

create case:
  --newcase <NEWCASE>  New case name to create
  --savedir <SAVEDIR>  Path to save new case

run case:
  --casedir <CASEDIR>  Case path to run
  --device <DEVICE>    Device to switch
  --times <TIMES>      Times of case running

2.install requirements

python -m androidautotest --installdep

3.start Android Screen Monitor(First, connect your Android Phone with PC, and open adb debug mode), then run follow command:

python -m androidautotest --startasm

4.create a new case to start your test task with Android Phone(For example: to create a new case named 'case001').

python -m androidautotest --newcase case001 --savedir E:\AndroidTest\workspace

Documentation

You can find the complete AndroidTest API documentation on readthedocs.

Examples

# -*- coding: UTF-8 -*-
from androidautotest.api import *

# to home
keyevent(HOME)
keyevent(HOME,device='HMKNW17421063974')

# to FileBrowser
while not exists(Template(r'pic\20191215121636.png')):
	flick((400,400),DIR_LEFT,step=2)
touch(Template(r'pic\20191215121636.png'))
touch(Template(r'pic\20191215134814.png'))

# not in top screen of FileBrowser
if exists(Template(r'pic\20191215143440.png')):
	touch(Template(r'pic\20191215142057.png'))
	text('15045120')
else:
	touch([530,142])
	text('15045120')

# 15045120 is in screen
assert_exists(Template(r'pic\20191215142425.png'))

end()

Once you finish your code writing, you can run your case.

For example, run case001 with Android Phone which's serial number is 'HMKNW17421063974' for 5 times, you can write as follow.

python -m androidautotest --casedir E:\AndroidTest\workspace\case001.air --device HMKNW17421063974 --times 5

And there are three log files you can use to analyze your test plan after run your case.

In case001.air\log\case001.log.20191222010717_540637:

1.log_case001_XXX.txt: all log output

2.serial_log_case001_XXX.txt: adb log output

3.adb log output: report of case run

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for androidautotest, version 0.0.2.32
Filename, size File type Python version Upload date Hashes
Filename, size androidautotest-0.0.2.32-py3-none-any.whl (17.0 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size androidautotest-0.0.2.32.tar.gz (13.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page