IOS自动化测试
Appium 在 iOS 下工具的變革
- iOS 9 之前一直以 instruments 下的 UIAutomation 為驅(qū)動底層技術(shù)(弊端由于 instruments 的限制,單臺 mac 只能對應(yīng)單臺設(shè)備);
- iOS 9.3 時代推出 XCUITest 工具,用以替代 UIAutomation;
- iOS 10 時代蘋果直接廢棄了 UIAutomation、Facebook 推出 WebDriverAgent(實現(xiàn)的 server 能夠支持單臺 mac 對應(yīng)多個設(shè)備);
- Appium 在 iOS 9.3 后全面采用 WebDriverAgent 的方案。
從圖中可以看出:
- Client 端是 Appium 之前本身提供的;
- Server 端是:WebDriverAgent 和 Instruments;( Appium 直接把 WebDriverAgent 整個集成進來,Instruments 是為了支持 iOS 9.3 之前的系統(tǒng))
- 最右邊是一個手機
- 之前 Server 是和 bootstrap.jar 通信,這里 WebDriverAgent 提供了 WebDriverAgentRunner(類似 bootstrap.jar 的功能),WebDriverAgent 與之通信;
- WebDriverAgentRunner 是一個應(yīng)用,Client 和 server 運行了之后,WebDriverAgentRunner 會被裝到手機上,這個應(yīng)用會接收來自 Server 的指令,并連接底層的 XCTest.framwork,并告訴 XCTest.framwork 操作手機進行自動化。
1.2.3 必裝的軟件
Xcode、command line tool、libimobiledevice、ios-deploy、carthage、WebDriverAgent、Appium。
其常用命令如下:
-
查看當(dāng)前所連接的設(shè)備
idevice_id -l # 顯示當(dāng)前所連接設(shè)備的 udid
instruments -s devices # 列出所有設(shè)備,包括真機、模擬器、mac -
安裝應(yīng)用
ideviceinstaller -u [udid] -i [xxx.ipa] # xxx.ipa 為應(yīng)用在本地的路徑
-
卸載應(yīng)用
ideviceinstaller -u [udid] -U [bundleId]
-
查看設(shè)備已安裝的應(yīng)用
ideviceinstaller -u [udid] -l # 查看設(shè)備安裝的第三方應(yīng)用
ideviceinstaller -u [udid] -l -o list_user # 同上,查看設(shè)備安裝的第三方應(yīng)用
ideviceinstaller -u [udid] -l -o list_system # 查看設(shè)備安裝的系統(tǒng)應(yīng)用
ideviceinstaller -u [udid] -l -o list_all # 查看設(shè)備安裝的所有應(yīng)用 -
獲取設(shè)備信息
ideviceinfo -u [udid] # 獲取設(shè)備信息
ideviceinfo -u [udid] -k DeviceName # 獲取設(shè)備名稱 同命令 idevicename
idevicename # 同上
ideviceinfo -u [udid] -k ProductVersion # 獲取設(shè)備版本 10.3.3
ideviceinfo -u [udid] -k ProductType # 獲取設(shè)備類型 iPhone 8,1
ideviceinfo -u [udid] -k ProductName # 獲取設(shè)備系統(tǒng)名稱 -
其他系統(tǒng)文件信息
ideviceinfo # 獲取設(shè)備所有信息
idevicesyslog # 獲取設(shè)備日志
idevicecrashreport -e test # 獲取設(shè)備 crashlog,test 是文件夾需新建
idevicediagnostics # 管理設(shè)備狀態(tài) - 重啟、關(guān)機、睡眠等
ios-deploy 常用命令
ios-deploy -c # 查看當(dāng)前鏈接的設(shè)備
ios-deploy --[xxx.app] # 安裝 APP
ios-deploy --id [udid] --uninstall_only --bundle_id [bundleId] # 卸載應(yīng)用
ios-deploy --id [udid] --list_bundle_id # 查看所有應(yīng)用
ios-deploy --id [udid] --exists --bundle_id # 查看應(yīng)用是否安裝
carthage,項目依賴管理,主要是 WebDriverAgent 使用,WebDriverAgent 是用它做項目依賴的;
公司 iOS 項目也使用 carthage,類似于 java 的 maven;
ios-deploy、ideviceinstaller 類似 android 的 adb;
authroize-ios,iOS 授權(quán)工具,主要用于模擬器中一些權(quán)限的授權(quán);
npm install -g authroze-ios sudo authroze-ios?
1.2.5.2 準(zhǔn)備腳本
- iOS 項目的 Desired_caps
- iOS 的元素定位
- Appium Desktop - Inspect (推薦)
- WebDriverAgent - Inspector
這里說說 Appium Desktop - Inspect 是怎么使用的。
- 打開并啟動 Appium Desktop,點擊軟件右上角第一個按鈕 “ start inspector session”;
- 會出現(xiàn)彈窗,彈窗里配置好 Desired_caps。
- 定位方式推薦:AccessbilityId
總結(jié)
- 上一篇: linux-CentOS7.6操作系统安
- 下一篇: 显示器接口_显示器接口都有哪些?