AirtestProject 使用 Airtest 对 iOS 进行自动化的常见问题答疑

fishfish-yu · 2021年11月18日 · 2642 次阅读

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

同学们在对 iOS 真机进行自动化测试的时候,经常提出一些连接问题、版本支持问题等,这里我们整理出一些 iOS 常见的问题答疑,希望能给大家带来一些排查思路。

2. 版本支持说明

要实现对 iOS 设备进行自动化测试,我们需要在 iOS 真机上起一个 WebDriverAgent 服务,可以是 Airtest 的 iOS-tagent,也可以是 Appium 的 WebDriverAgent

iOS-tagent 的支持情况如下:

iOS-Tagent 最低支持 最高支持
iOS 系统 9.3 13.5
xcode 版本 9.9 12.1

特别是对于低版本的 iOS,我们更建议使用 Airtest 的 iOS-tagent

如果有高版本 iOS 测试需求的同学,我们更建议大家使用 Appium 的 WebDriverAgent ,对高版本 iOS 的兼容性会好很多。(但响应速度可能很慢)

3. 常见问题答疑

1)AirtestIDE 是否支持 M1

支持的;目前我们并未发现 AirtestIDE 在 M1 上有什么问题,如有异常,同学们可以通过快速提单渠道,告知我们具体的报错情况:

快速提单页面:https://airtest.netease.com/issue_create

2)是否能脱离 AirtestIDE 对 iOS 进行自动化测试

可以脱离 AirtestIDE 对 iOS 进行自动化测试;同学们可以使用命令行或者其他编辑器如 pycharm 等运行 iOS 的自动化脚本。

但需要注意,脱离 AirtestIDE 对 iOS 进行自动化测试时,需自行补充连接 iOS 相关的命令/脚本:

# 命令行连接iOS设备
airtest run test.air --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")
3)iOS Poco 的初始化问题

iOS Poco 的初始化,必须放在 iOS 设备连接脚本之后,否则运行脚本是会出现如下提示:

“please call connect_device to connect an ios device first”

正确的脚本顺序可以参照示例:

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
from airtest.report.report import simple_report,LogToHtml

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

sleep(2.0)

from poco.drivers.ios import iosPoco
poco = iosPoco()
4)是否能脱离 Mac 对 iOS 进行自动化测试

可以;在 iOS 设备上成功部署好 iOS-tagent 或是 WebDriverAgent 之后,我们即可利用开源的工具 tidevice 脱离 Mac 测试 iOS 设备。

使用 tidevice 工具连接 iOS 设备的教程,可以参考我们的往期推文:脱离 Mac 搞 iOS 自动化,tidevice 工具教你轻松实现!

5)端口映射后查看 inspector 显示 unknown command

高版本的 iOS 已经不支持查看 inspector 的命令了,所以同学们可能会遇到如下情况:

此时无需惊慌,以 status 的情况为准即可,http://127.0.0.1:8100/status 可以访问成功并且可以看到一些 json 格式的手机信息,即表示启动成功;就可以到 IDE 去连接我们的 iOS 设备啦。

6)查看 status 成功,但在 IDE 点击 connect 无反应

也有很多同学遇到查看 status 是成功的,但是在 IDE 点击 connect 连接 iOS 设备时却没有反应,此时我们可以排查如下的问题:

  • 填入的 iOS 字符串是否正确
  • 是否使用了版本合适的 WebDriverAgent(低版本使用iOS-tagent,高版本使用 Appium 的WebDriverAgent,详细支持情况参考上文)

如以上都确定无误,我们还可以关闭当前的 IDE,然后用命令行打开 AirtestIDE,此时就可以看到一个 log 终端,在点击 connect 之后,可以到这个 log 终端里查看详细的报错信息:

# 在Mac上命令行启动AirtestIDE
$ cd /Applications/AirtestIDE.app/Contents/MacOS
$ ./AirtestIDE

根据详细的报错信息再来进一步排查问题。

7)其余常见问题

我们的项目上还整理了一些其它的关于 iOS 的常见问题:

  • Xcode 版本和 iOS 版本对应问题
  • 开发者证书的常见问题
  • Xcode failed to create provisioning profile
  • 初次安装信任设备的问题
  • 个人免费证书签注设备数超限
  • 未能载入软件包
  • 未同意苹果协议
  • Mac 网络波动或不稳定
  • ......

同学们可以到这里查看:https://github.com/AirtestProject/iOS-Tagent/blob/master/Introduction/question_zh.md#

8)附:iOS 部署教程

4. 小结

关于对 iOS 进行自动化测试的常见问题,今天就整理到这里啦,如果同学们还有其它关于 iOS 的问题未解决,可以到这里提单给我们的开发者:https://airtest.netease.com/issue_create


Airtest 官网https://airtest.netease.com/
Airtest 教程官网https://airtest.doc.io.netease.com/
搭建企业私有云服务https://airlab.163.com/b2b

官方答疑 Q 群:654700783

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册