opencv中使用adb连接和模板匹配的android测试框架

androidautotest的Python项目详细描述


雄激素试验

该软件包是基于Python环境的android自动测试软件包。在

其基本思想是利用ADB(Android调试桥)向与PC机相连的Android测试手机发送命令,并用opencvpython中的匹配模板算法对图片进行匹配。在

要求

1.ADB(Android Debug Bridge

2.ASM(Android Screen Monitor

用于捕获部分图片,在运行JDK之前,您需要在计算机中安装JDK。在

然后将缩放比例调整为50%,也可以将缩放设置为其他大小,但在创建案例文件后,需要在案例源文件中添加一些代码:

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

3.镶嵌(Tesseract-OCR

如果你想在androidautotest.api'它可以识别图片中的文字,你需要安装Tesseract并安装必要的测试数据,如中文'chi'u sim'。在

安装和使用

1.安装androidautotest

^{pr2}$

以下信息表明您已成功安装androidautotest。在

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

A framework to run testcasefor 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.安装要求

python -m androidautotest --installdep

3.启动Android屏幕监视器(首先,将Android手机与PC连接,打开adb调试模式),然后运行以下命令:

python -m androidautotest --startasm

4.创建一个新案例来启动Android手机的测试任务(例如:创建一个名为“case001”的新案例)。在

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

文件

您可以在readthedocs上找到完整的AndroidTest API文档。在

示例

# -*- coding: UTF-8 -*-fromandroidautotest.apiimport*# to homekeyevent(HOME)keyevent(HOME,device='HMKNW17421063974')# to FileBrowserwhilenotexists(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 FileBrowserifexists(Template(r'pic\20191215143440.png')):touch(Template(r'pic\20191215142057.png'))text('15045120')else:touch([530,142])text('15045120')# 15045120 is in screenassert_exists(Template(r'pic\20191215142425.png'))end()

一旦你完成了你的代码编写,你就可以运行你的案例了。 1.如果你将一部Android手机连接到你的电脑上,并且运行一次,简单的操作如下:

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

2.如果您将多个Android手机连接到PC上,请使用序列号为“HMKNW17421063974”的Android手机运行case 5次,您可以这样写。在

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

运行案例后,您可以使用三个日志文件来分析测试计划。在

在case001.air\log\case001中。日志.XXX在

File NameDescription
log_case001_XXX.txtall log output
serial_log_case001_XXX.txtadb log output
report_case001_XXX.htmlreport of case run

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX SwingWorker等价物?   java如何检查一个字符串只包含数字和一个小数点?   java遇到了异常组织。阿帕奇。卡塔琳娜。LifecycleException:无法启动组件   java如何从日期格式获取最低计时单位?   java应用服务器与开发过程的集成   java我无法运行Junit测试   无法在java多线程处理中维护生产者任务的顺序   java如何在CLI应用程序中“拦截”Ctrl+C?   java如何使用JSch进行原子SFTP文件传输,以便在写入过程完成之前无法访问该文件?   java当用户摆弄html范围滑块时,如何更改内容(文本)?   如何在Java中向现有文件追加文本?   JUnit测试中的java模拟Apache驼峰位置   java Maven更新项目和依赖项