当前位置:   article > 正文

Uiautomator2.0 棘手问题:系统重启后,uiautomator会停止,后面的用例全部挂掉

Uiautomator2.0 棘手问题:系统重启后,uiautomator会停止,后面的用例全部挂掉

Uiautomator2.0 棘手问题:系统重启后,uiautomator会停止,后面的用例全部挂掉

找了几篇文章了解了它的原理
官方文档

1. Uiautomator2.0 原理

uiautomator2 安装后是python的一个库,含有大量的API接口,允许python编写测试代码操控app,可以做Android的UI自动化测试
工作原理:
在这里插入图片描述如图:python-uiautomator2主要分为两个部分,python客户端,移动设备

  1. python端: 运行脚本,并向移动设备发送HTTP请求
  2. 移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。

整个过程

  1. 在移动设备上安装atx-agent(守护进程), 随后atx-agent启动uiautomator2服务(默认7912端口)进行监听
  2. 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
  3. 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作

其实环境搭建和初始化的时候,除了python安装uiautomator库,初始化设备的时候:python -m uiautomator2 init 设备上安装这5个东西:前台atx-agent (小黄车), uiautomator_apk (后台server)、 minicap 、minitouch、、uiautomator_apk安装了app-uiautomator.apk和app-uiautomator-test.apk两个server apk

atx-agent (可以直接在安卓上运行的二进制程序)

app-uiautomator.apk (UiAutomator2服务,Toast)
app-uiautomator-test.apk (UiAutomator2服务)

minicap 用于手机的快速截图
minitouch 用于远程控制

2. 项目问题:uiautomator2 会在系统重启时停掉报错

当时测试项:旋转屏幕 菜单》屏幕显示》90°》返回》退出》重启生效:是
由于系统关机,uiautomator识别不到手机,超时报错,后续用例全部报错。
解决方法:在服务停止前,手动将服务关闭,等待开机;关机后手动开启服务。
这是折中的方法,因为等待系统开机,等待adb连接是一个无法准确估时的步骤,我采用了定时等待的方法,肯定会有些不严谨。
后续,若是可以重启后服务自动重连,继续测试,可以补充改善。

#等待app重启,由于关机服务停止,会报错。
#解决方法:在服务停止前,手动将服务关闭,等待开机;关机后手动开启服务
d.uiautomator.stop()
time.sleep(30)
d.uiautomator.start()

d1 = u2.connect_usb(sn)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考文章:https://www.cnblogs.com/onlyhold/p/10546497.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/335665
推荐阅读
  

闽ICP备14008679号