很多读者都知道,之前公号发的文章都是针对 Android 端的自动化操作。原因很简单,安卓用户群更广,系统更开放,使用更方便便捷。
今天,我们来试试 iOS 端如何使用 Airtest 完成自动化操作。
Airtest 要在 iOS 端完成自动化,需要在 Mac OSX 装上最新版本的 Xcode、iphone 系统也更新到最新版本,最后准备一个 Apple ID 账号。
使用 git 下载官方提供的 iOS-Tagent 项目源码,然后用 Xcode 打开项目,然后在 Xcode 配置文件中登录开发者账号为 Apple ID,最后为项目设置开发者证书,具体步骤可以文章底部阅读原文获取。
Xcode 设置运行方式为 WebDriverAgentRunner,手机通过数据线连接 Mac,然后将连接目标 Destination 选中为真机,最后以 Test 测试模式启动项目。
官方推荐使用 iproxy 把 iphone 端口映射到 Mac 端口,经过反复测试后发现,使用 mobiledevice 设置代理更稳定。
安装 mobiledevice 软件后,加上 8100 端口设置代理服务。
# 将代理映射工具换成 mobiledevice
brew install mobiledevice
# 开启服务
mobiledevice tunnel 8100 8100
在浏览器中打开 http://127.0.0.1:8100/inspector,如果能看到手机界面,就说明服务开启成功。
打开 Airtest IDE 利用默认的设置连接设备,然后新建一个 .air 脚本文件,Poco 辅助窗选择目标平台为 iOS,这样编辑器内会自动生成一段脚本文件。
将生成的代码拷贝到 Pycharm 中,接下来就可以像做 Android 自动化一样使用 Poco 了。
众所周知,Android 端打开一个应用是依靠应用包名 + 启动界面 Activity,而 iOS 端只需要应用 bundle 即可以启动应用。
获取 iOS 端应用的 bundle 需要借助于 Mac OSX 提供的控制台应用程序,通过文本 with intent foreground-interactive 进行过滤,即可以拿到应用的 bundle。
最后,利用 poco 提供的 API 即可以打开一个应用了。
from poco.exceptions import InvalidOperationException
__author__ = "xingag"
from airtest.core.api import *
auto_setup(__file__)
from poco.drivers.ios import iosPoco
# 连接涉笔
connect_device('iOS:///127.0.0.1:8100')
poco = iosPoco()
package = 'com.taobao.fleamarket'
# 打开应用
home()
stop_app(package=package)
start_app(package=package, activity=None)
本篇文章只是带大家配置 iOS 自动化环境打开一个应用,后面将带大家利用 Airtest 进行一些项目实战。
如果你觉得文章还不错,请大家点个好看或者分享出去,你的肯定是我最大的鼓励和支持。