iOS 自動(dòng)化測(cè)試 AirTest+wdaproxy(或按鍵精靈?!)

iOS 自動(dòng)化測(cè)試 AirTest+wdaproxy(或按鍵精靈?!)

iOS自動(dòng)化測(cè)試的方案有很多,但是很多都要依賴mac電腦。畢竟apple最了解apple

配置airtest環(huán)境

前提條件:安裝Xcode,擁有Apple Id(用于臨時(shí)調(diào)試,生成臨時(shí)的證書)

1.下載airtest 客戶端

前往官網(wǎng)下載-AirTest IDE:
https://airtest.netease.com

下載iOS-Tagent調(diào)試環(huán)境,用于后面的腳本注入和調(diào)試:
https://github.com/AirtestProject/iOS-Tagent

注意:iOS-Tagent是一個(gè)Xcode的Project,只要可以跑起來(lái)就行了,可以用sourceTree或者git指令拉取下來(lái)。我先使用Download,下載的Zip解碼錯(cuò)誤,我就使用了git指令獲取,這邊很多時(shí)候會(huì)卡住,先檢查一下git是安裝正確了。

2.啟動(dòng)iOS-Tagent

1.選擇WebDriverAgentRunenr

打開iOS-Tagent -> Product -> Scheme 選中WebDriverAgentRunenr
選中效果如圖:

選擇WebDriverAgentRunenr.png

2.選擇設(shè)備

Product -> Destination -> 具體某個(gè)設(shè)備


選擇設(shè)備.png
3.設(shè)置bundle id 和證書

一般來(lái)說(shuō)默認(rèn)bundle id是無(wú)法生成臨時(shí)的證書的,需要手動(dòng)去修改bundle id


設(shè)置bundle id 和證書.png

選擇team 和證書


image
4.開始Test

Product -> Test
快捷鍵 command + u


image

出現(xiàn)如圖打印,且iPhone/iPad出現(xiàn)了WebDriverAgentRunner的應(yīng)用


image

注意:一次安裝的時(shí)候,需要我們開發(fā)者要去信任一下證書
設(shè)置->通用->描述文件與設(shè)備管理->開發(fā)者的證書/描述文件->信任

iproxy和wdaproxy的選擇

  • iproxy:將iPhone/iPad的端口映射到mac的端口,通過(guò)訪問(wèn)本機(jī)的一個(gè)端口,從而訪問(wèn)設(shè)備(僅供單一設(shè)備使用,同一個(gè)局域網(wǎng)不能通過(guò)訪問(wèn)mac電腦在該局域網(wǎng)IP+端口去訪問(wèn)鏈接的iPhone/iPad)
  • wdaproxy:與iproxy一致,但是它允許其他電腦包括windows系統(tǒng)的電腦通過(guò)ip訪問(wèn)iPhone/iPad

iproxy的安裝

$brew install usbmuxd
// 安裝usbmuxd庫(kù)之后,就順帶安裝了一個(gè)小工具iproxy,該工具會(huì)將設(shè)備上的端口號(hào)映射到電腦上的某一個(gè)端口

注:如果不想安裝usbmuxd使用下面的指令

$brew install libimobiledevice

安裝wdaproxy

$brew install openatx/tap/wdaproxy
// 一般會(huì)報(bào)網(wǎng)絡(luò)錯(cuò)誤,多試幾次就OK,如果出現(xiàn)其他問(wèn)題,請(qǐng)自行百度谷歌,面向baidu/google編程您值得擁有。

iproxy和wdaproxy使用

運(yùn)行之前先用USB鏈接iPhone/iPad
運(yùn)行之前先用USB鏈接iPhone/iPad
運(yùn)行之前先用USB鏈接iPhone/iPad

iproxy運(yùn)行
$iproxy 8100 8100

注:網(wǎng)上關(guān)于iproxy的教程太多了,這就不贅述了

wdaproxy運(yùn)行
$ wdaproxy -p 8100 -u $UDID
// $UDID就是iPhone/iPad的ID,打開Xcode,選擇window->Devices and Simulators -> 選中你的設(shè)備
image
image

wdaproxy運(yùn)行情況如圖:


image

注意:本機(jī)在瀏覽器通過(guò)http://localhost:8100 或 http://127.0.0.1:8100訪問(wèn)

訪問(wèn)結(jié)果如下表示鏈接成功:


image

同一局域網(wǎng)的電腦通過(guò)http://10.16.4.124:8100訪問(wèn),這個(gè)地址在你鏈接成功后會(huì)在控制臺(tái)輸出:


image

使用AirTestIDE鏈接設(shè)備

打開AirTestIDE
image

輸入鏈接的ip和端口,點(diǎn)擊connect開始鏈接


image

鏈接成功,界面如下:


image

iTerm輸出如下:


image
windows系統(tǒng)通過(guò)10.16.4.124:8100也可以訪問(wèn)該臺(tái)設(shè)備,從而實(shí)現(xiàn)在windows上編寫腳本
做事有頭有尾,要斷開連接,在終端或者iTerm中control + c,然后在Xcode中停止Test即可,如果8100端口被占用了,就關(guān)閉占用端口的進(jìn)程或者更換一個(gè)閑置的端口號(hào)

到這里自動(dòng)化第一步已經(jīng)完成了,接下里就是編寫python腳本了,有時(shí)間下次再分享。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。