51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

记pycharm结合airtest IDE使用adb连接安卓模拟器笔记

前言

这几天打算玩一下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进程

赞(4)
未经允许不得转载:工具盒子 » 记pycharm结合airtest IDE使用adb连接安卓模拟器笔记