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)

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值