在 iOS 真機(jī)上運(yùn)行 Appium
Appium 已支持真機(jī)的測(cè)試。
在開始真機(jī)測(cè)試前,你需要關(guān)注如下信息:
- 一個(gè)Apple Developer ID 和一個(gè)可以使用的開發(fā)賬號(hào)去配置分發(fā)證書以及配置文件。
- 一臺(tái) iPad 或者 iPhone。確保在 Xcode 中已被設(shè)置為開發(fā)狀態(tài)。獲取更多信息請(qǐng)查看 this article。
- 一個(gè)被測(cè)應(yīng)用的已簽名
.ipa
包,或者有源碼的話可以自行構(gòu)建。 - 一臺(tái)已裝 Xcode 和 Xcode Command Line Developer Tools 的 Mac。
配置文件
要在真機(jī)運(yùn)行,有效的 iOS 開發(fā)分發(fā)證書和配置文件都是必須的。還要對(duì)你的應(yīng)用進(jìn)行簽名。你可以在 Apple documentation 找到更多相關(guān)信息。
Appium 會(huì)使用 Fruitstrap 去安裝你的應(yīng)用,但通常更容易的方式是先使用Xcode 去原裝你的應(yīng)用,來(lái)確保他們都是沒(méi)問(wèn)題的(查看 iOS deploy 獲取更多信息 )
在 Xcode 8(包含 iOS 10)下使用 XCUITest 進(jìn)行測(cè)試
這功能現(xiàn)在依賴 idevicesyslog
進(jìn)行記錄,且使用 iProxy
進(jìn)行端口轉(zhuǎn)發(fā),這兩個(gè)部分工具都包含在 libimobiledevice
其中??梢允褂? Homebrew 去安裝它,
brew install libimobiledevice
另外,日志記錄同樣可以使 deviceconsole
工具完成,相關(guān)信息可以訪問(wèn)這里查看。當(dāng)你決定使用哪個(gè)工具后,使用 realDeviceLogger
作為環(huán)境配置,最終程序的日志記錄在設(shè)置的路徑當(dāng)中。
使用 Appium 運(yùn)行你的測(cè)試
一旦你的設(shè)備和應(yīng)用都已配置,你可以通過(guò)命令行添加 -U
或者 --udid
標(biāo)簽去指定目標(biāo)設(shè)備去運(yùn)行你的測(cè)試,然后再傳給服務(wù)器。在環(huán)境變量中的不同設(shè)置也會(huì)有不同的效果,將 udid
設(shè)置為設(shè)備的 udid 也能指定設(shè)備。也可通過(guò)如下方式指定被測(cè)應(yīng)用,添加 bundle ID(如果應(yīng)用已安裝在設(shè)備上),或者通過(guò) --app
標(biāo)識(shí)去指定.ipa
或者 .apk
被測(cè)包的路徑,又再有就是在環(huán)境變量中修改 app
的值。
服務(wù)器參數(shù)
舉個(gè)例子,在你啟動(dòng)你的應(yīng)用之前,希望 Appium 直接使用一個(gè)指定的 UDID,那你可以使用如下命令:
appium -U <udid> --app <path or bundle>
這會(huì)啟動(dòng) Appium 并運(yùn)行指定的設(shè)備去測(cè)試你的應(yīng)用。
更多相關(guān)的參數(shù)請(qǐng)參考 Appium server arguments 獲取更多詳細(xì)的信息。
環(huán)境配置
在你的測(cè)試中只要包含以下兩項(xiàng)環(huán)境配置,你就可以在指定設(shè)備上啟動(dòng)你的應(yīng)用:
app
udid
更多相關(guān)的請(qǐng)參考 Appium server capabilities獲取更多詳細(xì)的信息。
故障排查的思路
- 確保 UDID 是無(wú)誤的,可以通過(guò) Xcode Organizer 或者 iTunew 查看。留意 UDID 是很長(zhǎng)的字符串(20+ 字符)。
- 確保你可以在模擬器運(yùn)行你的測(cè)試。
- 重復(fù)確認(rèn) Instrumens 是否啟動(dòng)了你的自動(dòng)化。
- 確保 Instruments 不在運(yùn)行狀態(tài)中。
- 確保 UI Automation 在你的設(shè)備中是可執(zhí)行狀態(tài)。設(shè)置 -> 開發(fā)者 -> 使用 UI Automation
在 Android 真機(jī)上運(yùn)行 Appium
謝天謝地!在 Android 真機(jī)上運(yùn)行是沒(méi)有額外需要注意的地方:在模擬器上能運(yùn)行的測(cè)試同樣適用在真機(jī)上。確保你的設(shè)備可以鏈接 ADB 和開啟開發(fā)者模式。在真機(jī)上測(cè)試 Chrome,你只需負(fù)責(zé)確認(rèn) Chrome 已安裝上一個(gè)合適的版本。
同樣,你大概會(huì)想在設(shè)置中確?!膀?yàn)證的應(yīng)用”是在不可用狀態(tài)亦或是未檢查狀態(tài),否則他可以防止一些 Appium 的輔助應(yīng)用自己?jiǎn)?dòng),已經(jīng)檢查他們是否正常運(yùn)行。