欢迎光临散文网 会员登陆 & 注册

05如何连接iOS设备

2021-05-25 16:09 作者:Airtest酱  | 我要投稿

同学们好,我是网易AirtestProject的团队成员小明,欢迎大家来到我们的视频教程专栏《14天Airtest自动化测试小白课程》。

今天我们来聊一聊设备连接章节的第2部分内容--如何连接iOS设备。跟连接安卓设备不一样,连接iOS设备的步骤会相对复杂一些,所以希望同学们能认真学习我们今天的课程。

连接iOS真机

先来看下如何在AirtestIDE上连接我们的iOS真机设备。首先,我们需要准备好1台mac、1台iOS真机,并且用数据线把iOS真机连接到我们的mac上面。

今天我们用来演示的iOS真机是iphone 7 plus型号,iOS系统是11.4;并且我们提前在mac上面装好了12.1版本的xcode。另外还需要强调下,我们的iOS-tagent,就是等会要用xcode装到iOS真机上的工具,目前仅对以下版本做了支持:

ios-tagent项目的支持情况

对于高版本的iOS系统和xcode,尽管我们的iOS-Tagent暂时没能支持;但是我们1.1.8及以上版本的Airtest和1.2.8及以上版本的IDE都已经支持了appium的WebDriverAgent,所以有高版本iOS测试需求的同学,可以部署appium的WebDriverAgent,然后在使用我们的Airtest库或者AirtestIDE对其进行自动化测试。

那么了解完这些之后,我们就可以正式开始部署我们的iOS真机啦:

①第一步,用xcode部署ios-tagent

我们先下载iOS-tagent到本地电脑上:

git clone git@github.com:AirtestProject/iOS-Tagent.git

然后,打开我们的xcode,选择项目,在菜单栏依次选择 product -> Scheme -> WebDriverAgentRunner;再选择设备,在菜单栏依次选择 product -> Destination -> 选择我的真机,此处记得要按提示登录我们的开发者账号;

在xcode上选择真机
按提示登录开发者账号

接着在WebDriverAgentRunner->Build Settings->Product Bundle Identifier 中,修改BundleID值为唯一值:

修改BundleID为唯一值

完成以上操作之后,可以验证下我们的iOS-Tagent是否已经成功启动,在菜单栏依次选择 product -> Test:

当我们能看到如下的日志时,就代表 iOS-Tagent 已经启动成功了

Test成功示例


成功之后我们就可以进入第二步了。

② 设置代理

iproxy 可以把iPhone端口映射到电脑端口,据此我们就可以通过访问电脑的端口访问到手机的端口了。

我们先在命令行终端通过 Homebrew 安装iproxy:

$ brew install libimobiledevice

然后运行iproxy:

$ iproxy 8100 8100

启动成功后,我们可以试着在浏览器访问 http://127.0.0.1:8100/status ,如果访问成功并且可以看到一些json格式的手机信息,即表示启动成功。

成功设置代理之后,我们就可以进到最后一步:

③ 在IDE中连接iOS

打开我们的IDE,然后在设备连接窗口,找到连接iOS设备部分,在iOS地址栏填入地址 http://127.0.0.1:8100 ,点击 “connect” 即可连接设备;待iOS真机的画面出现在设备连接窗口时,我们就可以使用鼠标对iOS真机进行点击、滑动等操作。

至此,我们就可以利用IDE对iOS真机进行脚本录制或者测试脚本的编写、运行工作啦。但是我们刚刚也提到过,就是我们的iOS-tagent对低版本iOS的支持度比较友好,对高版本iOS,比如14.几的支持度就没有那么友好了,所以我们也非常推荐同学们使用appium的wda作为底层的工具。

另外部署appium的wda,然后连接iOS真机的大致步骤与上述类似,都是先部署wda,然后在设置代理,最后在IDE中连接;PPT中我们也给出了部署的详细步骤的教程,直接扫描二维码即可查看:

最后呢,我们给大家介绍一个好用的iOS自动化的工具--tidevice,使用它可以不依赖 xcode 启动 WebDriverAgent 完成设备连接,这也就意味着,iOS设备部署好WebDriverAgent 后,我们就可以在PC或者Linux平台上连接我们的iOS真机进行自动化测试了,详细教程也可以参考我们PPT上二维码指向的推文链接:

连接iOS的常见问题

1.不同版本的Xcode需要在指定版本的mac os系统下安装,并且只能开发指定版本的iOS,详细可以参考维基百科的文档:

https://en.wikipedia.org/wiki/Xcode

2.在Xcode上选择我们的iOS真机设备时,如出现下述报错,则需要在Team里面选择我们的开发者账号,使用我们的个人版的免费证书即可:

个人开发者账号的登录方式可以参考我们github上面的教程:https://github.com/AirtestProject/iOS-Tagent/blob/master/Introduction/question_zh.md 。

当然,常见的问题还有很多,比如报错Xcode failed to create provisioning profile,可以通过修改BundleID为唯一值来解决;初次安装iOS-Tagent时,未信任程序而报错的问题;又或者WebDriverAgent未能载入,已经损坏,需要重新安装的问题,这里就不在一一跟大家描述了,大家可以直接参考我们在github上为大家整理的iOS答疑文档,https://github.com/AirtestProject/iOS-Tagent/blob/master/Introduction/question_zh.md#q--a,直接扫描PPT上面的二维码可以快速查看。

用脚本连接iOS

了解完连接iOS的常见问题之后,我们再来看看如何用脚本连接我们的iOS设备。与Android设备类似,当IDE连接上我们的iOS真机时,我们点击运行脚本,log查看窗最上面那条命令,会显示出连接当前iOS设备的字符串:

把这个字符串传入到运行脚本的命令行中,或是对应的设备连接接口中,即可实现连接iOS设备:

① 命令行运行脚本

airtest run xxx.air --log log/ --device  iOS:///http://127.0.0.1:8100

② 脚本中连接iOS

auto_setup(__file__,devices=["iOS:///http://127.0.0.1:8100"])

connect_device("iOS:///http://127.0.0.1:8100")

init_device(platform="IOS",uuid="http://127.0.0.1:8100")

课程小结

那么今天的iOS连接教程就到这里啦,总结一下,今天我们主要给大家讲解了如何部署iOS真机并在IDE中连接部署好的真机、连接iOS的常见问题以及如何在脚本中连接我们的iOS设备,其中我们还提到了IDE1.2.8及以上版本(airtest版本1.1.8及以上)可以支持appium的WebDriverAgent,还有一个支持脱离Mac测试iOS测试工具tidevice。是不是比连接Android复杂的多呢?所以我也衷心希望需要部署iOS的同学,可以认真看下今天的课程,会对你连接iOS设备有不少的帮助哦~

那么下节课呢,我们将会学习如何连接我们的Windows应用来进行自动化测试,那么下期不见不散啦~


05如何连接iOS设备的评论 (共 条)

分享到微博请遵守国家法律