本篇內(nèi)容介紹了“Python自動(dòng)化工具tidevice的安裝和使用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
成都創(chuàng)新互聯(lián)IDC提供業(yè)務(wù):雙線服務(wù)器托管,成都服務(wù)器租用,雙線服務(wù)器托管,重慶服務(wù)器租用等四川省內(nèi)主機(jī)托管與主機(jī)租用業(yè)務(wù);數(shù)據(jù)中心含:雙線機(jī)房,BGP機(jī)房,電信機(jī)房,移動(dòng)機(jī)房,聯(lián)通機(jī)房。
最近,阿里內(nèi)部開(kāi)源了一個(gè) iOS 端由 Python 編寫(xiě)的自動(dòng)化工具,即:tidevice
它是一款跨平臺(tái)的自動(dòng)化開(kāi)源工具,不依賴(lài) Xcode 就可以啟動(dòng) WebDriverAgent( WDA ),這也就意味著 Windows 可以直接運(yùn)行 iOS 自動(dòng)化腳本
項(xiàng)目地址:
https://github.com/alibaba/taobao-iphone-device
進(jìn)入到虛擬環(huán)境,先安裝 tidevice 的依賴(lài)包
# 安裝依賴(lài)包 pip3 install -U "tidevice[openssl]" # 查看tidevice版本,檢查是否安裝成功 tidevice version
將 iPhone 設(shè)備連接到電腦上,就可以使用 tidevice 提供的功能了
3-1 查看設(shè)備列表
# 二選一 tidevice list # json數(shù)據(jù)顯示 tidevice list --json
3-2 安裝、卸載應(yīng)用
安裝對(duì)應(yīng)的關(guān)鍵字為:「 install 」
tidevice 同時(shí)支持安裝本地 ipa 包和遠(yuǎn)鏈下的 ipa 應(yīng)用包
另外,tidevice 可以使用「 --udid 」參數(shù)將應(yīng)用安裝到某一臺(tái)設(shè)備中
# 安裝本地應(yīng)用 tidevice install example.ipa # 根據(jù)udid參數(shù),指定設(shè)備安裝應(yīng)用 tidevice --udid $UDID install https://example.org/example.ipa tidevice install https://.....ipa
卸載對(duì)應(yīng)的關(guān)鍵字為:「 uninstall 」
通過(guò)應(yīng)用包名可以卸載設(shè)備上的某一個(gè)應(yīng)用
# 卸載應(yīng)用(通過(guò)包名) # 比如:知識(shí)星球App包名為:com.unnoo.quan tidevice uninstall com.unnoo.quan
3-3 啟動(dòng)、關(guān)閉應(yīng)用
啟動(dòng)應(yīng)用對(duì)應(yīng)的關(guān)鍵字為:「 launch 」
關(guān)閉應(yīng)用對(duì)應(yīng)的關(guān)鍵字為:「 kill 」
# 打開(kāi)應(yīng)用 tidevice launch com.unnoo.quan # 停止殺死應(yīng)用 tidevice kill com.unnoo.quan
3-4 已安裝應(yīng)用及名稱(chēng)、版本
使用「 tidevice applist 」命令,可以查看設(shè)備上已經(jīng)安裝的應(yīng)用、應(yīng)用名稱(chēng)、應(yīng)用版本號(hào)
# 查看設(shè)備應(yīng)用信息列表 localhost:tidevice_demo xingag$ tidevice applist com.tencent.xin WeChat 8.0.2 com.ss.iphone.ugc.Aweme 抖音 13.4.0 com.tencent.mttlite QQ瀏覽器 10.8.3 com.panasonic.jp.imageapp Image App 1.10.17 com.unnoo.quan 知識(shí)星球 4.20.2 co.visualsupply.cam VSCO 189 com.ucweb.iphone.lowversion UC瀏覽器 13.1.5 com.niksoftware.snapseedforipad Snapseed 2.19.5 com.autonavi.amap 高德地圖 10.76.0 com.lagou.education 拉勾教育 1.4.9 com.xunmeng.pinduoduo 拼多多 5.37.0 com.tencent.QQMusic QQ音樂(lè) 10.5.5 io.ideamp.feelcab Feelca B 1.6.0 com.chinaunicom.mobilebusiness 手機(jī)營(yíng)業(yè)廳 8.00.01 com.feiyu-tech.vico Vicool 1.2.26 com.ss.iphone.article.News 今日頭條 7.9.3 com.sogou.sogouinput 搜狗輸入法 10.18.1 org.geekbang.GeekTime 極客時(shí)間 2.9.2 com.burbn.hyperlapse Hyperlapse 1.3.4 com.apple.itunesu iTunes U 3.8
3-5 設(shè)備信息
利用「 tidevice info 」可以查看設(shè)備信息,比如:設(shè)備序列號(hào)、系統(tǒng)版本、CPU、本機(jī)號(hào)碼、時(shí)間戳、藍(lán)牙地址、MAC 地址等信息
# 查看設(shè)備信息 localhost:~ xingag$ tidevice info MarketName: iPhone SE (1st generation) DeviceName: xingag ProductVersion: 14.4 ProductType: iPhone8,4 ModelNumber: MP892 SerialNumber: ... CPUArchitecture: arm64 ProductName: iPhone OS ProtocolVersion: 2 RegionInfo: ZP/A TimeIntervalSince1970: 1616979424.235399 TimeZone: Asia/Shanghai WiFiAddress: 58:e2:8f:68:4c:b0 BluetoothAddress: 58:e2:8f:68:4c:b1 BasebandVersion: 10.40.01 ...
如果要查看設(shè)備的電池信息,可以使用關(guān)鍵字 「 --domain + 應(yīng)用包名 」來(lái)獲取
# 查看設(shè)備電池信息 localhost:~ xingag$ tidevice info --domain com.apple.mobile.battery --json { "BatteryCurrentCapacity": 54, "BatteryIsCharging": true, "ExternalChargeCapable": true, "ExternalConnected": true, "FullyCharged": false, "GasGaugeCapability": true, "HasBattery": true }
3-6 重啟及截圖
重啟對(duì)應(yīng)的關(guān)鍵字為:「 reboot 」
截圖對(duì)應(yīng)的關(guān)鍵字為:「 screenshot 」
# 重啟設(shè)備 tidevice reboot # 截圖并保存到文件 screenshot.jpg 中 tidevice screenshot screenshot.jpg
3-7 系統(tǒng)日志及更多幫助
查看系統(tǒng)日志的命令為:「 tidevice syslog 」,當(dāng)然也可以配置 grep 參數(shù)進(jìn)行過(guò)濾
# 查看系統(tǒng)日志 tidevice syslog # 更多幫助 tidevice -h
要完成 iOS 端的自動(dòng)化,我們還需要做一些準(zhǔn)備工作
4-1 安裝 WDA
我們需要將 WebDriverAgent 安裝到 iOS 設(shè)備上,通過(guò)它驅(qū)動(dòng)手機(jī)進(jìn)行一系列自動(dòng)化操作
PS:由于 Facebook WDA 很長(zhǎng)時(shí)間沒(méi)有更新了,這里建議直接使用 Appium WDA
https://github.com/appium/WebDriverAgent
下載項(xiàng)目后,使用 Xcode 打開(kāi),Scheme 選擇 WebDriverAgentRunner,設(shè)備選擇真機(jī)
然后配置開(kāi)發(fā)者證書(shū),可以參考下面鏈接進(jìn)行配置
https://testerhome.com/topics/7220
最后,Xcode 選擇 Project 下的 Test 將項(xiàng)目運(yùn)行到真機(jī)設(shè)備上
注意:第一次運(yùn)行 WDA 可能運(yùn)行失敗,需要手動(dòng)在設(shè)置中對(duì)證書(shū)添加信任
4-2 運(yùn)行 WDA
真機(jī)設(shè)備安裝完 WDA 后,就可以脫離 Mac,使用 Windows 進(jìn)行自動(dòng)化操作了
使用「 tidevice wdaproxy 」命令可以運(yùn)行 WDA 和端口轉(zhuǎn)發(fā)
# 運(yùn)行 WDA # 端口轉(zhuǎn)發(fā)到8100 # 應(yīng)用包名:com.facebook.WebDriverAgentRunner.xingag23.xctrunner idevice wdaproxy -B com.facebook.WebDriverAgentRunner.xingag23.xctrunner --port 8100
PS:由于 Xcode 設(shè)置證書(shū)的時(shí)候,更改過(guò) bundle_id,所以這里的包名是一個(gè)變量
4-3 編寫(xiě)自動(dòng)化腳本
接下來(lái),就可以使用 Appium 或 facebook-wda 編寫(xiě)腳本并運(yùn)行到 iOS 設(shè)備上了
以 facebook-wda 為例
首先,我們安裝對(duì)應(yīng)的依賴(lài)
# 安裝facebook-wda依賴(lài) pip3 install -U facebook-wda
接著,編寫(xiě)自動(dòng)化腳本并運(yùn)行測(cè)試
import wda import time # 連接設(shè)備 c1 = wda.USBClient() # c1 = wda.Client("http://10.3.209.175:8100") print(c.info) # 極客時(shí)間 bundle_id = 'org.geekbang.GeekTime' # 通過(guò)app的bundleId啟動(dòng)App s = c1.session(bundle_id) # 休眠5s s.sleep(5) # 截圖保存到本地 c1.screenshot('sc.png') # 回到桌面 s.home()
阿里這款 iOS 端自動(dòng)化工具的主要優(yōu)點(diǎn)是啟動(dòng)速度快,內(nèi)存占用低;更重要的是,它是跨平臺(tái),穩(wěn)定性相對(duì)較高
“Python自動(dòng)化工具tidevice的安裝和使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!