AirtestProject 使用 Airtest 对 iOS 进行自动化的常见问题答疑
此文章来源于项目官方公众号:“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 的命令了,所以同学们可能会遇到如下情况:
- 访问 http://127.0.0.1:8100/status 显示 success
- 访问 http://127.0.0.1:8100/inspector 显示 unknown command
此时无需惊慌,以 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 部署教程
-
iOS-tagent
部署教程:https://airtest.doc.io.netease.com/IDEdocs/device_connection/4_ios_connection/#243 -
iOS-tagent
部署视频教程:https://www.bilibili.com/video/BV1qf4y1h7o1/ - Appium 的
WebDriverAgent
安装教程:https://testerhome.com/topics/7220 - Appium 的
WebDriverAgent
疑难解决:https://github.com/appium/WebDriverAgent/issues
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
呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~