【Airtest】用 1 行代碼搞定自動化測試的設備連接問題


前言

對於剛開始做自動化測試的新手同學來說,我們還是非常建議大家通過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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM