iOS 测试 iOS 自动化测试初探

AirPython · November 28, 2019 · Last by mangoZHAN996 replied at February 11, 2020 · 2283 hits

很多读者都知道,之前公号发的文章都是针对 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 进行一些项目实战。

如果你觉得文章还不错,请大家点个好看或者分享出去,你的肯定是我最大的鼓励和支持。

共收到 3 条回复 时间 点赞

楼主 windows桌面应用可以用poco定位吗

JonnySen 回复

Win 还不行

楼主,只有Windows可以做iOS自动化吗

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up