哪些我踩过的坑
1、重点:强烈建议不要用appium,定位不稳定,连接不稳定
2、重点:模拟器需要持续不断重建启动时,不可以异步任务,必须并行任务。也就是可以同时开启多个模拟器但是不可以异步开启,多任务同时开启可以是多线程、多进程。但是在次开启新模拟器并建立链接,必须要等前面所有任务都结束并关闭模拟器后再次连接。
注:为什么要等待任务全部完成再次链接呢?这是我踩过的坑,不管是uiautomator2还是appium都不能多任务异步链接,如果异步链接会出现连接失败的机率很高,相当不稳定。这是为什么呢?真正的重点来的,adb的原因。不知道adb的去百度。一切的手机和模拟器都需要adb作为中间,目前本人没有搞懂adb为什么不稳定,只是了解到因为某些原因导致端口被占用了,我的结局方法就是,开启所有任务之前先把adb重启一下,等待所有任务执行为再次重启adb并执行任务。目前我只开了5个,因为我这多了不太稳定。
adb、ATX功能简介:https://testerhome.com/topics/10881
不知道ATX的看上面连接
ATX 安装:python -m uiautomator2 init
执行命令之后,会在设备里安装一个app
多任务不要每个都去init 安装,直接在模拟多开器里指定一个
主机,在主机内安装之后,复制主机启动并连接就好了
环境安装:android-sdk 、adb 、jdk 等环境,自行找环境。
adb无需安装,adb.exe命令:
# 可以开启服务器和获取当前设备id
adb devices
# 关闭服务
adb kill-server
python依赖包:weditor、uiautomator2
weditor是可以获取app元素信息的包,其他类型的也有自己网上找
安装:pip install weditor
#开启服务,会在浏览器里出现一个页面
python -m weditor
安装:pip install uiautomator2
import uiautomator2 as u2
d = u2.connect('设备id') #如何是一台设备就不用指定id, 如何是多台需要指定,我的方式是通过adb devices或者所有设备的id去建立不同的连接
d.xpath('xpath').click()
......
如果有问题的私聊我。