用Airtest獲取本地可用設備實現自動啓動or關閉應用的小任務

1. 前言

在測試實踐中,我們可能會經常遇到這樣子的場景,xxx項目組週三上午10:00會發一個新的應用包,測試人員需要對這個新包進行一些測試,比如手工測試或者回歸測試等等。

但是在測試之前,我們希望應用包發佈之後,能一鍵自動安裝到所有測試設備上,並且自動打開待測應用,待測試人員測試完所有設備之後,還可以一鍵關閉/刪除應用。

今天我們就以這個測試場景爲例,簡單實現一個小任務:用Airtest獲取本地可用設備實現自動啓動或者關閉應用。

2. 任務思路

大致來說,這個任務分爲以下部分的內容:

① 實現獲取本地所有可用設備的方法

② 實現在設備上啓動指定應用的方法

③ 實現在設備上關閉指定應用的方法

④ 實現在所有設備上啓動指定應用的方法

⑤ 實現在所有設備上關閉指定應用的方法

⑥ 增加命令行入口,方便後續命令行啓動任務和定時任務的實現

3. 獲取本地所有可用設備

以本地連接的Android設備爲例,Airtest連接Android設備的方式可以是:

connect_device("Android://127.0.0.1:5037/127.0.0.1:62001")

本地Android設備的話,設備字符串的 Android://127.0.0.1:5037/ 這部分都是一樣的,重點是獲取最後的Android設備的序列號,像夜神模擬器的序列號 127.0.0.1:62001

那如何獲取本地連接的所有Android設備的序列號呢,ADB給我們提供了實現方法:

adb = ADB()
device_list = adb.devices()

執行後,我們會得到一個設備列表,裏面是包含了設備序列號和設備狀態的元組。

我們可以通過遍歷這個設備列表,得到一個個的元組,然後獲取元組裏面的設備序列號,之後我們就可以很容易拼接出來Android的設備字符串,方便後續連接該設備病對設備做一些操作:

4. 實現在設備上啓動或者關閉指定應用的方法

假設目標應用是網易雲音樂,Airtest有封裝好啓動和關閉應用的API(分別是 start_appstop_app ),我們直接調用即可:

5. 實現在本地所有設備上啓動或者關閉指定應用的方法

這裏要結合我們實現的獲取本地所有設備的方法,然後簡單地使用for循環來遍歷每一臺設備,啓動目標應用:

可以簡單測試下效果:

6. 實現命令行入口,參數控制啓動和關閉應用

這裏我們可以實現用參數控制是啓動應用還是關閉應用,或者是指定別的目標應用和設備等:

在項目目錄下,按住shift+右鍵,打開終端窗口,簡單測試下效果:

(讓所有設備啓動目標應用)

(讓所有設備關閉目標應用)

7.小結

今天的小任務就實現到這裏,在這個任務的基礎上,我們還可以將其改造成定時任務,或者在批量啓動/關閉的時候採用多進程等方式。

下期,我們會來看看怎麼做定時任務,也就是 在無人值守的情況下,讓它自動完成這個任務 ,感興趣的同學可以關注我們公衆號,防止下期找不到我們哦~

最後,需要本節示例腳本來學習的同學,可以在到公衆號後臺回覆關鍵詞“ 自動化任務 ”獲取。


Airtest官網https://airtest.netease.com/
Airtest教程官網https://airtest.doc.io.netease.com/
搭建企業私有云服務https://airlab.163.com/b2b

官方答疑 Q 羣:117973773

呀,這麼認真都看到這裏啦,幫忙點個推薦支持一下唄,灰常感謝~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章