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/#243iOS-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
呀,這么認真都看到這里啦,幫忙點個推薦支持一下唄,灰常感謝~