iOS 自动化测试:Appium 架构原理、环境命令、定位方式

本文详细介绍了Appium在iOS自动化测试中的应用,包括环境变迁、架构原理、常用命令及定位方式。重点讲解了XCUITest、WebDriverAgent与Appium的关系,以及iOS 10以上版本的Predicate定位方法。此外,还分享了环境配置的常用命令,如libimobiledevice、ideviceinstaller等,并列举了不同定位方式的实例。
摘要由CSDN通过智能技术生成

1、原理与变迁

1.1 环境版本变迁

先来看下面的版本对应表
在这里插入图片描述
由上表可以得知:

iOS 8.0到9.3 之间的时候一直以 instruments 下的 UIAutomation为驱动底层技术

查阅资料说弊端是由于 instruments 的限制,单台 mac 只能对应单台设备,由于现在9.3之前的版本很少了,所以我在学习的时候也就忽略了这部分的内容,仅作为了解);

iOS 9.3 之后的版本推出 XCUITest 工具,用以替代 UIAutomation,这个时候Appium需要1.6.0以上的版本才可以支持;

截止我写这篇博客,appium的版本已经更新到了1.20.2,所以这个也不用担心版本不够的问题了

再来看Appium对IOS原生定位方式Predicate的一段说明
在这里插入图片描述
Appium要求在iOS 10以上版本才可以用此方法,因为iOS 10之后苹果直接废弃了 UIAutomation(Xcode8之后);而Facebook 推出 WebDriverAgent成为了主流(实现的 server 能够支持单台 mac 对应多个设备);
Appium 在iOS 9.3 后全面采用 WebDriverAgent 的方案。
上面提到了XCUITest、WebDriverAgent,现在又说用appium,那么他们之间到底是什么关系,用appium做IOS自动化的架构原理又是如何?

1.2 架构原理

XCUITest是苹果开发的一个做IOS自动化测试的框架,需要了解些Swift等iOS编程知识
WebDriverAgent是Facebook开发的一个iOS自动化测试工具,先来看下面的这张原理图:
在这里插入图片描述
WDA在Client创建了一个Server,在手机端安装了一个叫作WebDriverAgentRunner 的一个应用;这个应用会接收来自 Server 的指令,并连接底层的 XCTest.framwork,让 XCTest.framwork 调用苹果API来操作手机进行自动化
而appium是把WebDriverAgentRunner 给集成进去了,因此实现了appium的跨平台能力
在这里插入图片描述

2、环境命令

这里对安装运行过程中的一些命令和环境问题做个总结归纳,具体的实施细节和踩坑可参考上一篇博客:
iOS自动化测试(一)-技术方案、环境配置与疯狂踩坑

2.1 常用命令

这里发现testerhome社区有位同学总结的很全面细致,就直接引用了,章节末尾会附上原文链接

1)、libimobiledevice / ideviceinstaller 库,相当于 android 的 adb,是 Appium 底层用到的工具之一,用于获取 iOS 设备信息,常用命令如下:

  • 查看当前所连接的设备
idevice_id -l    # 显示当前所连接设备的 udid
instruments -s devices  #列出所有设备,包括真机、模拟器、mac
  • 安装应用
ideviceinstaller -u [udid] -i [xxx.ipa] # xxx.ipa 为应用在本地的路径
  • 卸载应用
ideviceinstaller -u [udid] -U [bundleId]
  • 查看设备已安装的应用
ideviceinstaller -u [udid] -l # 查看设备安装的第三方应用
ideviceinstaller -u [udid] -l -o list_user # 同上,查看设备安装的第三方应用
ideviceinstaller -u [udid] -l -o list_system # 查看设备安装的系统应用
ideviceinstaller -u [udid] -l -o list_all # 查看设备安装的所有应用
  • 获取设备信息
ideviceinfo -u [udid] # 获取设备信息
ideviceinfo -u [udid] -k DeviceName # 获取设备名称 同命令 idevicename
idevicename #
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值