基于 Appium+Python 实现多设备并行执行 case 的原理及方法

前言:

由于近期项目的需求,需要实现同时几十台设备的 UI 自动化测试且有客户端的交互行为,为此小编也是踩过了很多坑,故在这里分享一下经验,避免小伙伴们再次踩坑。

小编环境:

  • python3.6
  • appium:1.7.1

实现原理:多设备时的 Appium Server 控制,因为 Appium Server 与设备要一一对应,所以需要启动多个 server,然后启动多个 driver 与其交互即可。

实现步骤:

  1. 开启多个 Appium Server(本文在命令行下启动,界面 UI 版也可以,多设备并行建议命令行下启动):

这里注意不同的设备需要启动不同的 port 以及 bootstrap-port,并加上设备序列号参数。

  1. 启动 driver 程序

注意以上 desired_caps 参数为必加参数,其他参数参照官方文档。这里重点说下 systemPort 参数,由于在 android7.0 及以上设备中有些控件 appium 不能识别,故加上此参数,此时 appium 会自动安装两个 apk(基于 uiautomator2.0)。

  1. 多线程启动 server 以及 driver

总结:总体来说,appium 框架相对稳定,但由于多设备并行需要启动多个 adb 端口及进程,难免会有不稳定的情况,项目中建议避免同时连接大量设备,小编此次同时连接了 15 台设备,appium 表现还是很稳定的。

附:Appium 框架原理
Appium 的加载过程
1)调用 Android adb 完成基本的系统操作
2)向 Android 上部署 bootstrap.jar
3)Bootstrap.jar Forward Android 的端口到 PC 机器上
4)Pc 上监听端口接收请求,使用 webdriver 协议
5)分析命令并通过 forward 的端口发给 bootstrap.jar
6)Bootstrap.jar 接收请求并把命令发给 uiautomator
7)Uiautomator 执行命令,android7.0 及以上基于 uiautomator2.0

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值