建议没有用真机连接过的先看看AirtestIDE连接安卓真机及常见问题,有些问题是一样的。
以下基于
python3.7;airtest1.1.8;pocoui1.0.81;airtestIDE1.2.8
airtestIDE支持Android Virtual Device(AVD)和常见模拟器,AVD因为性能太烂,强烈不推荐。
其实模拟器的连接基本上和真机差不多,首先你得打开模拟器的开发者选项-允许USB调试,具体方法去模拟器官网查询。
打开airtestIDE,在设备窗中点选'远程设备连接',我用的是MUMU模拟器,输入连接命令adb connect 127.0.0.1:7555
,并点'连接''。
点击后发现没反应,去CMD中输入adb devices
,可以看到有模拟器设备,但处于offline状态。
这可能是adb冲突导致,重启下adb服务
adb kill-server adb start-server
再回airtestIDE里连接,已经可以看到模拟器设备了(注意前面的'emulator-5554'就是模拟器的device id)
点击连接后,就接入模拟器了。
和真机一样,如果连接不成功,可以试试选中一些连接参数,首先勾选'Javacap模式'尝试,如果不行再选中'use adb orientation'尝试。
上面我输入MUMU的连接命令用到的端口是7555,每家模拟器的端口是不一样的:
模拟器 adb连接代码 网易Mumu adb connect 127.0.0.1:7555 夜神 adb connect 127.0.0.1:62001 逍遥 adb connect 127.0.0.1:21503 iTools adb connect 127.0.0.1:54001 天天 adb connect 127.0.0.1:6555 海马玩 adb connect 127.0.0.1:26744 BlueStacks adb connect 127.0.0.1:5555
建议使用MUMU,毕竟都是网易家的,后面会转发一篇模拟器对比的文章,大家可以看下各模拟器对airtest的契合度。
以夜神为例,假如用了模拟器的多开,怎么连接呢?
先在cmd中输入adb devices
,结果如下:
127.0.0.1:62001
整体都是其中一个模拟器的divece id,其中62001是夜神默认的1个端口号,62025是多开的那个模拟器的端口号。
之后的连接方法同上,记得每个模拟器都要打开USB调试。
adb冲突。使用前最好将模拟器自带的adb换成airtest中的adb。
airtest的adb文件所在路径如下:
夜神模拟器的adb文件所在路径如下:
需要注意的是夜神文件夹下除了有一个adb.exe外,还有个nox_adb.exe。我们除了要替换神的adb.exe,还要用airtest的adb复制一份改名为nox_adb.exe进行替换。其他模拟器同理。
如果看不到设备或设备离线,需要重启adb
如果连接不成功,可以试试选中一些连接参数,首先勾选'Javacap模式'尝试,如果不行再选中'use adb orientation'尝试。
如果连接后无法点击投屏,重启连接并选中参数‘use ADBtouch’
部分品牌模拟器(例如夜神),可能因为默认使用键盘输入,因此无法调用yosemite输入法,导致 text() 接口无法输入文字。可以先确认模拟器设置中,硬件-物理键盘 是否被勾选了, 取消勾选后再重新尝试即可:
如果依然失败(物理键盘选项被不断自动重置),可以打开右上角的模拟器设置,勾选软键盘选项后重试:
如果依然无法输入,可以使用airtest封装的adb命令输入文字:shell("input text 'hello world'")
yosemite.apk 未安装也容易导致模拟器连接失败,一般会出现如下的报错;请检查模拟器上是否成功自动安装了 yosemite.apk,如果没有安装的话,检查开发者选项中是否默认阻止了通过USB安装应用,应该选择允许,然后在连接时IDE会自动向模拟器中安装该apk 如果还是装不上,可以在IDE目录下搜索一下这个apk文件,手工安装到模拟器中(yosemite.apk自行在airtestIDE文件夹中搜索):
---------------------------------------------------------------------------------
关注微信公众号即可在手机上查阅,并可接收更多测试分享~