adb shell 小米手机_如何在Android手机上进行自动化测试
生活随笔
收集整理的這篇文章主要介紹了
adb shell 小米手机_如何在Android手机上进行自动化测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
通過閱讀本節教程,你將了解到以下內容:
如何在腳本代碼中、運行腳本時指定手機
如何填寫--device Android:///的內容
如何便捷地在腳本中調用ADB指令或Android專屬接口連接Android手機在AirtestIDE里連接Android手機
使用AirtestIDE對Android應用進行自動化測試時,第一步就需要連接Android設備。
請查閱我們的設備連接文檔里的指引,安裝好驅動、打開手機里的開發者選項、允許USB調試選項后,用USB線連上手機并在AirtestIDE中嘗試連接。
如果遇到了問題,請查閱Android連接常見問題文檔,根據里面提供的自查步驟排查問題,有些品牌手機有專屬的選項需要另行開啟(例如小米、Vivo/Oppo),請同樣查閱對應品牌的注意事項來避免問題。設備的支持情況
目前我們支持市面上幾乎絕大多數Android手機、Android模擬器(模擬器連接教程請查閱這里),也可能支持少部分特殊的基于Android系統的硬件設備(這類設備由于種類繁多,我們無法一一進行測試和支持,如果有兼容需求請聯系開發組)。
在成功連上手機后,我們就能夠在AirtestIDE里操作手機畫面,就像下圖中這樣,接下來就可以開始用這臺手機編寫腳本了。設備連接的特殊選項設置
有少數非手機的Android設備(例如智能電視、智能后視鏡等),直接點擊connect按鈕不能連接,但是可以嘗試通過勾選connect下拉菜單中的選項來嘗試連接。
例如,我們的默認連接方式不支持模擬器,因此在連接模擬器時,需要先勾選Use Javacap選項(部分品牌模擬器還要同時勾選Use ADB orientation)。這里connect下拉菜單的三個選項,是截屏、旋轉和點擊的三個備選方案,在默認方案無法生效的時候,使用這3個備選方案可能就可以支持設備了。
注意:部分品牌手機不支持某個功能,可能僅僅只是因為選項沒有開啟,例如小米手機必須要開啟了允許模擬點擊才能夠在AirtestIDE中使用默認方式點擊手機(速度更快,效果更好)。如果是正常的手機設備,遇到問題時請盡量先查閱文檔排查問題。這幾個備選方案的效率都比默認方案低,只有部分特殊的Android設備才需要使用到備選方案。運行腳本時如何指定手機
當我們在AirtestIDE里連上手機并編寫完腳本,當點擊運行腳本按鈕時,默認會在運行時的命令行里使用當前已經在AirtestIDE里連接的手機,就像這樣:
"D:AirtestIDEAirtestIDE" runner "untitled.air" --device Android://127.0.0.1:5037/F8UDU16409004135 --log "D:log"
其中--device Android://127.0.0.1:5037/F8UDU16409004135就是當前使用的本地手機,它將我們這臺設備號為F8UDU16409004135的手機名稱告訴Airtest,讓它明白我們需要使用這臺手機。
我們也可以在命令行中不填寫具體的手機設備號,用--device Android:///這樣的內容來表示在當前連接的一臺Android設備上運行即可,無論它的設備號是什么。
如果在命令行中,完全不填寫--device,默認將會不連任何設備來運行代碼,那么在運行到需要有設備才能跑的代碼時將會報錯(例如touch語句必須要連上設備才能運行)。
如果希望在腳本中通過代碼進行設備連接,可以使用connect_device接口,或是在auto_setup接口中傳入devices參數,請參考二、Airtest介紹腳本入門-如何在Python腳本中使用Airtest里的相關內容。設備連接字符串如何編寫
在剛才的命令行中使用的 --device參數,傳入的是一個設備字符串,以安卓設備為例,字串完整定義如下:
Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>
其中,adbhost是adb server所在主機的ip,默認是本機127.0.0.1,adb port默認是5037,serialno是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
# 模擬器等特殊設備、使用了連接參數時:
# 模擬器連接,勾選了Use javacap模式
Android://127.0.0.1:5037/127.0.0.1:7555?cap_method=JAVACAP
# 所有的選項都勾選上之后連接的設備,用&&來連接多個參數字符串
Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH
更多注意事項、其他平臺范例、命令行中使用了&符號應該如何處理等,都可以在文檔關于設備字符串中找到。多機協作
Airtest支持一個腳本中連上多臺手機,但是需要注意的是,并不是能夠自動讓這一個腳本在多臺手機上跑,而是能夠在腳本中使用這幾臺手機,實現一些類似于多機協作的效果(例如讓兩臺手機登錄同一個APP并相互“添加好友”)。
假如我們現在正在使用AirtestIDE編寫腳本,已經同時連上多臺手機,在運行腳本的時候AirtestIDE將會自動在命令行中添加多個--device參數,把當前連接的手機都告訴腳本,無需其他額外操作。
或者也可以直接在腳本里使用多個connect_device語句,分別傳入手機連接串信息即
from airtest.core.api import connect_device
dev1 = connect_device("Android://127.0.0.1:5037/serialno1") # 連上第一臺手機
dev2 = connect_device("Android://127.0.0.1:5037/serialno2") # 第二臺手機
在連接多臺手機后,我們能夠在Airtest的全局變量G.DEVICE_LIST中看到所有當前連接中的設備,可以使用set_current接口在多臺設備之間切換。
print(G.DEVICE_LIST) # 此時設備列表為[dev1, dev2]
# 傳入數字0切換當前操作的手機到第1臺
set_current(0)
# 切換當前操作的手機到序列號為serialno2的手機
set_current("serialno2")
# 使用device()接口獲取當前連接中的設備Android對象
current_dev = device()Android平臺專屬功能與接口
在二、Airtest介紹與腳本入門-平臺相關的接口一節中,我們提到了每個接口支持的平臺可能各不相同,而Android支持的接口是最全面、最豐富的。
基本上airtest.core.api中的接口(文檔地址),在Android平臺上都可以直接使用,例如:# 清理某個應用數據
clear_app("org.cocos2d.blackjack")
# 啟動某個應用
start_app("org.cocos2d.blackjack")
# 傳入某個按鍵響應
keyevent("BACK")Android設備接口
除了在airtest.core.api中提供的跨平臺接口之外,Android設備對象還有很多內置的接口可以調用,我們可以在airtest.core.android.android module這個文檔中查閱到Android設備對象擁有的方法,然后像這樣調用:
dev = device() # 獲取到當前設備的Android對象
print(dev.get_display_info()) # 查看當前設備的顯示信息
print(dev.list_app()) # 打印出當前安裝的app列表ADB指令調用
在Android設備的測試腳本中,有時候我們需要輸入一些ADB指令,如果在普通的Python腳本中想要調用ADB指令,也許需要用到subprocess等模塊單獨啟動進程運行命令行才能實現。
但是在Airtest腳本中,調用ADB指令是非常簡單的事情
# 對當前設備執行指令 adb shell ls
print(shell("ls"))
# 對特定設備執行adb指令
dev = connect_device("Android:///device1")
dev.shell("ls")
# 切換到某臺設備,執行adb指令
set_current(0)
shell("ls")手機助手便捷功能
在使用AirtestIDE連接Android手機時,我們還提供了一個簡單的手機助手功能,使用方法在這里。
在連上Android手機后,點擊設備窗口右上角的工具圖標,在展開下拉菜單中,選擇Show assistant dialog 即可打開安卓手機助手。在安卓手機助手中,我們提供了以下幾種功能:
手機應用的安裝/卸載/列表查看
常用快捷操作:打開網址、輸入文本、切換輸入法、音量調節等
手機Shell調試窗口
希望我們的Android手機助手在大家使用Android手機時,起到良好的輔助作用,如果有BUG或者功能建議,請反饋至Github。
通過閱讀本節教程,你將了解到以下內容:
如何在腳本代碼中、運行腳本時指定手機
如何填寫--device Android:///的內容
如何便捷地在腳本中調用ADB指令或Android專屬接口連接Android手機在AirtestIDE里連接Android手機
使用AirtestIDE對Android應用進行自動化測試時,第一步就需要連接Android設備。
請查閱我們的設備連接文檔里的指引,安裝好驅動、打開手機里的開發者選項、允許USB調試選項后,用USB線連上手機并在AirtestIDE中嘗試連接。
如果遇到了問題,請查閱Android連接常見問題文檔,根據里面提供的自查步驟排查問題,有些品牌手機有專屬的選項需要另行開啟(例如小米、Vivo/Oppo),請同樣查閱對應品牌的注意事項來避免問題。設備的支持情況
目前我們支持市面上幾乎絕大多數Android手機、Android模擬器(模擬器連接教程請查閱這里),也可能支持少部分特殊的基于Android系統的硬件設備(這類設備由于種類繁多,我們無法一一進行測試和支持,如果有兼容需求請聯系開發組)。
在成功連上手機后,我們就能夠在AirtestIDE里操作手機畫面,就像下圖中這樣,接下來就可以開始用這臺手機編寫腳本了。設備連接的特殊選項設置
有少數非手機的Android設備(例如智能電視、智能后視鏡等),直接點擊connect按鈕不能連接,但是可以嘗試通過勾選connect下拉菜單中的選項來嘗試連接。
例如,我們的默認連接方式不支持模擬器,因此在連接模擬器時,需要先勾選Use Javacap選項(部分品牌模擬器還要同時勾選Use ADB orientation)。這里connect下拉菜單的三個選項,是截屏、旋轉和點擊的三個備選方案,在默認方案無法生效的時候,使用這3個備選方案可能就可以支持設備了。
注意:部分品牌手機不支持某個功能,可能僅僅只是因為選項沒有開啟,例如小米手機必須要開啟了允許模擬點擊才能夠在AirtestIDE中使用默認方式點擊手機(速度更快,效果更好)。如果是正常的手機設備,遇到問題時請盡量先查閱文檔排查問題。這幾個備選方案的效率都比默認方案低,只有部分特殊的Android設備才需要使用到備選方案。運行腳本時如何指定手機
當我們在AirtestIDE里連上手機并編寫完腳本,當點擊運行腳本按鈕時,默認會在運行時的命令行里使用當前已經在AirtestIDE里連接的手機,就像這樣:
"D:AirtestIDEAirtestIDE" runner "untitled.air" --device Android://127.0.0.1:5037/F8UDU16409004135 --log "D:log"
其中--device Android://127.0.0.1:5037/F8UDU16409004135就是當前使用的本地手機,它將我們這臺設備號為F8UDU16409004135的手機名稱告訴Airtest,讓它明白我們需要使用這臺手機。
我們也可以在命令行中不填寫具體的手機設備號,用--device Android:///這樣的內容來表示在當前連接的一臺Android設備上運行即可,無論它的設備號是什么。
如果在命令行中,完全不填寫--device,默認將會不連任何設備來運行代碼,那么在運行到需要有設備才能跑的代碼時將會報錯(例如touch語句必須要連上設備才能運行)。
如果希望在腳本中通過代碼進行設備連接,可以使用connect_device接口,或是在auto_setup接口中傳入devices參數,請參考二、Airtest介紹腳本入門-如何在Python腳本中使用Airtest里的相關內容。設備連接字符串如何編寫
在剛才的命令行中使用的 --device參數,傳入的是一個設備字符串,以安卓設備為例,字串完整定義如下:
Android://<adbhost[localhost]>:<adbport[5037]>/<serialno>
其中,adbhost是adb server所在主機的ip,默認是本機127.0.0.1,adb port默認是5037,serialno是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
# 模擬器等特殊設備、使用了連接參數時:
# 模擬器連接,勾選了Use javacap模式
Android://127.0.0.1:5037/127.0.0.1:7555?cap_method=JAVACAP
# 所有的選項都勾選上之后連接的設備,用&&來連接多個參數字符串
Android://127.0.0.1:5037/79d03fa?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH
更多注意事項、其他平臺范例、命令行中使用了&符號應該如何處理等,都可以在文檔關于設備字符串中找到。多機協作
Airtest支持一個腳本中連上多臺手機,但是需要注意的是,并不是能夠自動讓這一個腳本在多臺手機上跑,而是能夠在腳本中使用這幾臺手機,實現一些類似于多機協作的效果(例如讓兩臺手機登錄同一個APP并相互“添加好友”)。
假如我們現在正在使用AirtestIDE編寫腳本,已經同時連上多臺手機,在運行腳本的時候AirtestIDE將會自動在命令行中添加多個--device參數,把當前連接的手機都告訴腳本,無需其他額外操作。
或者也可以直接在腳本里使用多個connect_device語句,分別傳入手機連接串信息即
from airtest.core.api import connect_device
dev1 = connect_device("Android://127.0.0.1:5037/serialno1") # 連上第一臺手機
dev2 = connect_device("Android://127.0.0.1:5037/serialno2") # 第二臺手機
在連接多臺手機后,我們能夠在Airtest的全局變量G.DEVICE_LIST中看到所有當前連接中的設備,可以使用set_current接口在多臺設備之間切換。
print(G.DEVICE_LIST) # 此時設備列表為[dev1, dev2]
# 傳入數字0切換當前操作的手機到第1臺
set_current(0)
# 切換當前操作的手機到序列號為serialno2的手機
set_current("serialno2")
# 使用device()接口獲取當前連接中的設備Android對象
current_dev = device()Android平臺專屬功能與接口
在二、Airtest介紹與腳本入門-平臺相關的接口一節中,我們提到了每個接口支持的平臺可能各不相同,而Android支持的接口是最全面、最豐富的。
基本上airtest.core.api中的接口(文檔地址),在Android平臺上都可以直接使用,例如:# 清理某個應用數據
clear_app("org.cocos2d.blackjack")
# 啟動某個應用
start_app("org.cocos2d.blackjack")
# 傳入某個按鍵響應
keyevent("BACK")Android設備接口
除了在airtest.core.api中提供的跨平臺接口之外,Android設備對象還有很多內置的接口可以調用,我們可以在airtest.core.android.android module這個文檔中查閱到Android設備對象擁有的方法,然后像這樣調用:
dev = device() # 獲取到當前設備的Android對象
print(dev.get_display_info()) # 查看當前設備的顯示信息
print(dev.list_app()) # 打印出當前安裝的app列表ADB指令調用
在Android設備的測試腳本中,有時候我們需要輸入一些ADB指令,如果在普通的Python腳本中想要調用ADB指令,也許需要用到subprocess等模塊單獨啟動進程運行命令行才能實現。
但是在Airtest腳本中,調用ADB指令是非常簡單的事情
# 對當前設備執行指令 adb shell ls
print(shell("ls"))
# 對特定設備執行adb指令
dev = connect_device("Android:///device1")
dev.shell("ls")
# 切換到某臺設備,執行adb指令
set_current(0)
shell("ls")手機助手便捷功能
在使用AirtestIDE連接Android手機時,我們還提供了一個簡單的手機助手功能,使用方法在這里。
在連上Android手機后,點擊設備窗口右上角的工具圖標,在展開下拉菜單中,選擇Show assistant dialog 即可打開安卓手機助手。在安卓手機助手中,我們提供了以下幾種功能:
手機應用的安裝/卸載/列表查看
常用快捷操作:打開網址、輸入文本、切換輸入法、音量調節等
手機Shell調試窗口
希望我們的Android手機助手在大家使用Android手機時,起到良好的輔助作用,如果有BUG或者功能建議,請反饋至Github。
原文作者:AirtestProject
原出處:AirtestProject
轉載聲明:以上內容與圖片均來源于網絡,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯系我們刪除或授權事宜。本文僅作為交流使用,不涉及商用.
總結
以上是生活随笔為你收集整理的adb shell 小米手机_如何在Android手机上进行自动化测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle包写入程序失败_Oracle
- 下一篇: redis 内存不足 排查_Redis