一、什么是pyminitouch?
minitouch是openstf基于ndk + Android开发的用于模拟人类点击行为的操作库。这个库以高稳定性、反应快著称,比起adb操作与uiautomator(两分钟搞懂UiAutomator自动化测试框架 - 知乎)都要更灵敏,被广泛应用于Android设备的精细操作。
然而它的使用与其安装方式都较为繁琐,无法定位打元素,使得它在自动化的应用领域上远远比不上uiautomator。它的体验感也较为一般,么此都要给手机重复安装指定版本的minitouch、建立、socket、然后再编辑操作命令,而且操作命令也很难阅读清楚。
pyminitouch = python + minitouch,降低使用成本,直接使用简洁的API调用
二、安装minitouch
准备工作:
(1)minitouch需要ndk,ndk下载:NDK 下载 | Android NDK | Android Developers
(2)下载相应的压缩包后进行解压。
(3)讲解压的目录添加到path环境变量中。
右击我的电脑->属性->高级系统设置->环境变量->找到path变量->新建->将文件目录路径粘贴进去
(4)运行ndk -build看是否运行成功,若像下面一样运行成功则说明安装成功。
最后出那个错是因为它找不到Android项目。
(5)安装adb:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
将下载下来的文件添加到环境变量中,方法如上面的步骤。如果安装成功执行adb会有相应的提示。
minitouch的下载:
下载需要自行安装git,windows系统不像Linux自带git功能:
-
下载地址: Git - Downloads
-
打开后进入安装页面:
-
一直往下安装就可以了
-
下载项目源码
git clone https://github.com/openstf/minitouch.git
- 进入minitouch的目录,执行下面的命令:
cd C:\Users\auus\minitouch
进入文件夹后,按顺序执行下面两句:
git submodule init
git submodule update
执行到这一步后,再次执行ndk-build:
在文件中出现以上则说明安装成功。
三、安装pyminitouch
需要在python 3 上安装:
pip install pyminitouch
四、开始研究任务
-
在cmd中输入下面语句查询自己设备的平台:
adb shell getprop ro.product.cpu.abi
- 将minitouch文件push到设备上(注意:Android的有些目录是无法之心结果二进制文件的,所以一般放在/data/local/tmp目录中)
adb push minitouch /data/local/tmp
- 进入文件夹查看文件,进入shell模式
adb shell
- 切换到/data/local/tmp目录
cd /data/local/tmp
- 执行命令查看minitouch是否存在,存在则就安装完成
ls
- 如果使用时提示没有权限,使用shell模式进入/data/local/tmp目录执行
chmod 751 minitouch
在上面的步骤我们已经实现将minitouch push到手机上了。
-
使用pyminitouch
首先,我想使用pyminitouch显示出我手机支持最大的x以及最大的y也就是屏幕的分辨率:
from pyminitouch import safe_connection, safe_device, MNTDevice, CommandBuilder
_DEVICE_ID = '35501e57'
device = MNTDevice(_DEVICE_ID)
# print the maximum x and Y coordinates
print("max x:", device.connection.max_x)
print("max y:", device.connection.max_y)
虽然代码看起来没什么问题,但是它运行起来有这个报错:
AssertionError: minitouch did not work.
那就是我刚刚装进去的minitouch并没有工作,输入以下命令:
adb kill-server
adb start-server
之后再次编译发现...好的,问题并没有解决...
最后,我要准备去考研啦,考完研再继续学习把!!希望我考研顺利!!!