只要查找某个账号的微信上的页面元素,安卓端会把uiautomator2停掉

运行环境:
window10
虚拟设备:夜神 6.6.1.1,Android5.1
微信版本:7.0.15
appium版本:1.15
附件:
image

python角本.txt (3.6 KB) 安卓端Log.txt (52.3 KB) 微信账号1appium日志.txt (23.5 KB) 微信账号2appium日志.txt (23.7 KB) 运行角本时报uiautomator停止

现象描述:

  1. appium的启动方式都是:appium --session-override

  2. 角本运行时没有开启uiautomator工具

  3. 同一个角本,用不同的微信账号登录,微信账号1登录后,角本运行了第44行,appium就会报错:An unknown server-side error occurred while processing the command,
    微信账号2登录后,角本运行的结果正常,(两次运行的appium日志已上传)

  4. 使用appium desktop inspector时,只要去查找微信账号1的页面元素,也会报这个错误

  5. 查看安卓端日志,Force stopping io.appium.uiautomator2.server.test appid=10056 user=0: from pid 2863,这个进程2863不知道为什么会把uiautomator2停掉

  6. 报错之后马上adb shell进去,ps查看,没有2863进程

通过adb logcat 找下uiautomator相关的日志记录,里面有报错的堆栈。
我整体建议你别用夜神了,用as标准的模拟器好了

as的标准模拟器6.0版本装不了微信,不能测微信小程序

可以用genymotion或者mumu

genymotion装了4.2版本的微信,但是不能登录,也不能升级
Mumu不支持webview的测试吧?
新建了一个6.0arm架构的as的标准模拟器,也是能装4.2版本微信,但是登录提示失败4-23

亲测,genymotion,Version 3.1.0 可以安装微信,且可正常使用;你那不能使用时报错什么呢?

用arm指令的as模拟器就可以了,后缀带有arm的都可以。另外6.0以上的也可以测试webview,需要本地配置更高版本的chromedriver。

genymotion 3.1.1
微信安装 6.7.2及以上的版本,启动后没有运行,安卓日志是报错:
ActivityManager: Start proc 8026:com.tencent.mm/u0a74 for activity com.tencent.mm/.ui.LauncherUI
08-04 03:22:48.827 8026 8026 E libprocessgroup: failed to make and chown /acct/uid_10074: Read-only file system
安装 6.7.2以下版本登录时会报“yourWeChat Version is out-of-date”,并让我去升级,但是升级包下载了不能安装

录播视频中说的,安卓6.0有一个漏洞,不需要开发打开webview的开关,也可以支持webview的操作,那用6.0以上就不方便了吧?
本地配置更高版本的chromedriver:但是inpector之后,页面是变形的
助教都是推荐62版本的chrome浏览器,这个是最稳定的
arm指令的as模拟器,不管是开启还是安装卸载,都非常的慢,有没有加速的方法?
小程序的环境这块,希望老师给出一个明确的安装指南,让我们少走弯路。把更多的时间放在测试思想的学习上。

技术也是在一直进步的。影响因素也很多,环境因素差异比较大,很难推荐一个统一的方案,毕竟刚推荐完可能市场就变化了。

比如as的模拟器一直很慢,但是最新的as4.0明确说自己对模拟器做了加速处理,最新的模拟器的确快了不少,但是能否达到你的要求还得看综合体验,另外,模拟器本身也是有参数的,比如可以用宿主机的几个核处理器,用多大内存,分辨率有多大等。每个都会影响到app的运行速度的。

我的总体建议是这样的

  • 推荐使用as模拟器,因为appium针对这个模拟器做了很多的特殊支持,比如模拟电话、短信、弱网等。
  • as模拟器本身的参数角度,使用的cpu核数和内存可以给大点,比如把你的宿主机的三分之一的资源可以给它,个别情况下,给一半资源也行。分辨率可以小点。
  • arm指令的镜像比x86的确慢,所以能用x86就用x86
  • 运行arm指令最快的是网易mumu这种模拟器
  • 6.0模拟器默认是可以跑起来webview的,但是高版本android配合高版本的chromedriver也是可以做到的。只是原因和环境太复杂,所以才给大家推荐6.0的模拟器作为入门。

明白了,谢谢老师耐心解答。