前言
这几天打算玩一下python自动化测试,因此接触到airtest。在使用中遇到很多问题,特此记录方便查阅。
环境
python 3.7 airtest ide pycharm 雷电模拟器
基础知识
1各模拟器adb连接端口
夜神安卓模拟器 62001
逍遥模拟器 21503
蓝叠模拟器 5555
雷电 5555
天天 5037
mumu 7555
Genymotion 5555
腾讯手游助手 adb connect 127.0.0.1:5555
2adb常用命令 查看设备
adb devices
开启/关闭adb服务
adb start-server
adb kill-server
安装apk
adb install -t ***.apk
启动应用
adb shell am start -n 包名/相对包名的类名
如:adb shell am start -n com.example.test/.MainActivity
文件传输
adb pull 要获取的文件路径 存储的文件路径
adb push 要上传的文件路径 存储的文件路径
查看当前聚焦Activity类名
Linux系统
adb shell dumpsys activity | grep "mFocusedActivity"
Windows系统
adb shell dumpsys activity | findstr "mFocusedActivity"
3进模拟器开启开发者模式
问题记录
1airtest ide可以执行poco操作,而到pycharm不行 一般会报错
G.DEVICE.home()
AttributeError: 'NoneType' object has no attribute 'home'
解决办法: 先连接模拟器
connect_device("android:///") #连接本地android设备
连接雷电模拟器两种办法:
connect_device('Android://127.0.0.1:5037/127.0.0.1:5555')
雷电模拟器端口是5555,127.0.0.1:5037是对应的本机的adbhost和adbport
connect_device('Android://127.0.0.1:5037/emulator-5554')
emulator-5554是连接后出现的名字,可以用adb devices看到
2出现adb server version (31) doesn't match this client (36)问题
这是因为adb版本不同出现的。
解决办法:
确定模拟器adb+airtest的adb+python包里面的adb一致
python包路径如下:
C:\Python37\lib\site-packages\airtest\core\android\static\adb\windows\adb.exe
3出现airtest.core.error.DeviceConnectionError: 'device not ready'问题
一般是airtest和pycharm里面启动冲突了
解决办法:
重启模拟器,kill了adb进程