前言
對於剛開始做自動化測試的新手同學來說,我們還是非常建議大家通過IDE提供的設備窗口去連接測試設備的:
這樣不僅可以非常直觀地看到設備的畫面;還可以在運行腳本時,自動幫大家生成帶連接設備參數的運行命令,減少很多不必要的錯誤:
當然,很多同學也會有 脫離IDE來跑自動化腳本 的需求,這時候就需要我們自己添加設備連接參數。通常我們可以用以下倆種方式來連接設備:
① 在 腳本 中添加連接設備的參數
② 在 運行命令 中添加連接設備的參數
下文將詳細講述在這倆種情況下,具體如何來添加這些連接設備的參數。
用於初始化設備的URI字符串
在初始化設備的時候,我們會用到以下的URI字符串,不同設備的URI字符串格式會略有不同(建議收藏,用到的時候再翻一翻):
1.連接Android手機
# 什么都不填寫,默認取當前連接中的第一台手機 Android:/// # 連接本機默認端口連的一台設備號為79d03fa的手機 Android://127.0.0.1:5037/79d03fa # 用本機的adb連接一台adb connect過的遠程設備,注意10.254.60.1:5555其實是serialno Android://127.0.0.1:5037/10.254.60.1:5555
2.連接iOS手機
iOS:///127.0.0.1:8100
3.連接Windows窗口
# 連接一個窗口句柄為123456的Windows窗口 Windows:///123456 # 連接一個Windows窗口,窗口名稱匹配某個正則表達式 Windows:///?title_re=Unity.* # 連接windows桌面,不指定任何窗口 Windows:///
4.使用了備選連接參數的設備
# 夜神模擬器(127.0.0.1:62001為夜神模擬器的端口號) Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP&&ori_method=ADBORI # 設備號為79d03fa的 MIUI11 設備 Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI
在腳本中添加連接設備的參數
1.使用 auto_setup
接口
auto_setup
是一個用來 初始化環境 的接口,它接受5個參數。我們可以設置當前腳本所在的路徑、 指定運行腳本的設備 、設置默認的log路徑、設置腳本父路徑和指定截圖精度:
其中第二個參數就是指定運行腳本的設備,我們可以在這里 傳入待連接設備的URI字符串 ,例如:
# 連接本機默認端口連的一台設備號為SJE5T17B17的手機 auto_setup(__file__,devices=["Android://127.0.0.1:5037/SJE5T17B17"])
注意:devices
傳入的是一個字符串列表,所以如果需要 連接多台設備 ,直接用 ,
隔開多個URI字符串即可:
# 連接本機默認端口連的設備號為123和456的兩台手機 auto_setup(__file__,devices=["Android://127.0.0.1:5037/123","Android://127.0.0.1:5037/456"])
2.使用 connect_device
接口
在 connect_device
接口中傳入設備的URI字符串即可連接1台設備:
dev = connect_device("Android://127.0.0.1:5037/SJE5T17B17")
如果需要連接多台設備,可以編寫多條的 connect_device
腳本,並且用 set_current
來切換到當前使用設備:
# 連上第一台手機 dev1 = connect_device("Android://127.0.0.1:5037/serialno1") # 連上第二台手機 dev2 = connect_device("Android://127.0.0.1:5037/serialno2") # 切換當前操作的手機到序列號為serialno1的手機 set_current("serialno1")
3.使用 init_device
接口
init_device
接口只需要傳入 設備平台和設備的uuid 即可,參數詳情可以查看下圖:
init_device(platform="Android",uuid="SJE5T17B17")
在命令行中添加設備連接的參數
在本地命令行運行腳本時,如果腳本中沒有任何連接設備的語句,我們就需要通過 --device URI字符串
來連接設備:
airtest run D:/test/test_connect.air --device Android:///
否則命令行會提示你沒有連接設備:
並且腳本中如果涉及了需要連接設備才能夠執行的腳本,比如 touch(截圖)
等,則會出現如下報錯:
另外,如果你的設備需要添加備選的連接參數才可以正常連接,比如 模擬器或者MIUI11 的設備,則在連接設備時也需要把這些參數加上:
airtest run D:/test/test_connect.air --device Android://127.0.0.1:5037/127.0.0.1:62001?cap_method=JAVACAP^&^&ori_method=ADBORI
注意: &&
在Windows平台下需要轉義成 ^&^&
;在MAC平台下需要轉義成 /&/&
。否則有可能出現因運行命令被截斷而產生的各種報錯。
---
Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b