android盒子自動化測試中的幾種方法

2021-06-27 22:01:03 字數 2326 閱讀 3203

android盒子和android手機之間的測試還是有很大的區別的:

比如說,盒子沒有觸控螢幕,操作通過遙控器來完成,很多ui在很多情況下就不考慮clickable的處理效果。盒子沒有電池,也就不用去考慮乙個系統的耗電究竟要如何來平衡,壓力測試,在盒子中,就是老化測試。還有**,gps(小公尺的定位功能似乎是通過網路來完成的,但是,試想一下,乙個幾乎固定不用考慮移動的產品,加了gps功能,那不是等於把目標暴露在公眾面前嗎?),縱使眾多的不同,但是基於android,在功能測試上來說,眾多的自動化測試工具,輪番上陣,針對不同的用例,還是能提高效率不少。

目前可以實現的測試功能:

1、有窮的迴圈測試場景;(一些長穩的工作,和幾個對測試場景依賴較少的測試用例可以寫在一起,減少測試時間)

2、有需求的復現問題;(比如說突然出現的場景,需要窮舉測試去復現問題發生的概率,概率事件可以讓機器去做)

3、效能測試

4、安全測試(對於一些特性的對比,或者介面的測試)

5、介面測試(cts的相容性測試,幾乎都是去測試android系統下的介面是否具備可相容性)

6、相容性測試(cts測試,當然,cts中的用例,我們還可以自己去修改,去構建不同的測試場景來進行不同的測試)

python、bat指令碼的好處:

1、在測試過程中,對於偶然出現的有窮迴圈測試,可以臨時編寫測試用例去跑,人工觀察,利用關鍵字去自動分析。

2、簡便,快速構造用例,對電腦資源占用較少,實現方便。

3、減少人工的重複性工作量,提高工作效率。

案例:1、凌晨12點,工廠傳來不幸,usb口有讀寫不出來的概率,研發修改後,提出測試建議(不斷插拔,重啟,檢查掛載情況200遍),神~!這是要了測試的命,雖然我們的精神要求不被窮舉測試所汙染,但是面對這樣的測試要求,又不能不滿足,於是我提出了疑問(1、reboot來代替電源線的插拔行不行,2、重啟過程中自然會斷電,我不拔u盤行不行,3、如果以上滿足了,出現問題該怎麼處理),研發的回答讓我松了一口氣(可以reboot,不用插拔,但是如果檢測不到u盤,需要在檢測不到u盤的時候停留在場景上,讓研發來定位問題。),那還不簡單,乙個指令碼搞定,於是,python救了我通宵的命,20分鐘搞定問題,回去洗澡睡覺。第二天過來,發現指令碼還在跑,跟研發反饋,reboot做了計數,跑了才不多300多次,沒問題。後來,後來,這個問題穩妥妥的沒有報出來過了。雖說研發解決了,但是qa也要用生命來保障它的可用性,人命有限,電腦常在,指令碼就是這麼好用。

2、下午快下班,研發說,你們說發現乙個恢復出廠會彈出錯誤框的bug,已經修改,幫忙驗證下吧。快下班了,來這種事情,畢竟誰也不願意,寫個指令碼吧,出現這個錯誤研發定位時有keywords嗎?給我乙個,我跑幾百遍。於是乎,拿到keywords,開啟自動化初始化,分析日誌,哥下班回家了。第二天,看日誌反饋,出了bug,不過概率比較明顯,有規律可循,結果不是我們的問題,問題轉移,這又解決乙個問題。

缺點:1、終端(盒子)必須開啟始終可以開啟串列埠。

2、外部環境容易對測試物件造成干擾,造成錯誤分析。

3、依賴測試環境(python環境,串列埠、adb環境)

shell指令碼的好處:

1、脫離電腦,可以在裝置內部執行,減少外部環境對終端造成的干擾

2、可以開機自啟動,test case可以構建實現的場景要多一些

3、可以使用正規表示式對資料進行分析,對檔案操作簡便。(最強大的地方)

缺點:1、只能單執行緒執行,多執行緒還在探索當中。(就是說一條線做指令碼,不能同時在輸出日誌的同時進行動作操作),不過後來,可以讓指令碼在後台執行,接著,去分析日誌,對於正規表示式的linux來說是很nice的一件事情。

monkeyrunner(我覺得不太方便,所以每次都是用直接使用python重寫各種方法,雖然繁瑣,但是總比語法檢查來得愉快):

優點:1、使用python語法,通俗易懂;

2、整合了很多adb下的類和方法,可以直接套用,不用去重寫,比較方便的呼叫;節省時間;

3、可以多個裝置同時執行,對長穩測試很有幫助;

4、可以錄製操作當做指令碼,這是乙個很好的東西;

5、可以操作觸屏裝置

缺點:1、類名太長,容易搞混,寫出來的用例會比較繁瑣,光這些語法上的錯誤檢查,可能就要耗去不少時間;

2、連線上容易出錯,不容易連線上盒子,當然,如果使用usb adb去操作的話,這個概率將下降很多;

uiautomator(針對機頂盒測試的可行性所做的分析):

可以針對某個apk的ui進行視覺化操作的自動化測試,但是,針對機頂盒這樣的終端,由於操作的方式於手機的不同,手機為觸屏,xml檔案可以很正常的解析並運用到測試當中;而機頂盒,完全使用遙控器來操作(當然,如果有觸控面板的話,那麼就變成了大pad,不排除以後的可能性,但是可以像手機一樣去測試),在很多ui當中,沒有clickable這個操作,觸屏無法使用,也就讓測試無法進行。所以這個工具在機頂盒終端的使用範圍受到了限制。

Android自動化測試框架

1 monkeyrunner 優點 操作最為簡單,可以錄製測試指令碼,視覺化操作 缺點 主要生成座標的自動化操作,移植性不強,功能最為侷限 2 rubotium 主要針對某乙個apk進行自動化測試,apk可以有原始碼,也可以沒有原始碼,功能強大 缺點是針對apk操作,而且需要對apk重新簽名 有工具...

Android自動化測試框架

monkey1是android sdk自帶的測試工具,是乙個命令列工具,可以執行在模擬器裡或實際裝置中。可以執行在模擬器中或者實際裝置中,它向系統傳送偽隨機的使用者事件流 如按鍵輸入,觸控螢幕輸入,手勢輸入等 實現對正在開發的應用程式進行壓力測試。由於測試事件和資料都是隨機的,不能自定義,所以有很大...

自動化測試 web自動化測試

自動化 由機器裝置代替人為完成制定目標的過程 優點 提高工作效率 減少勞動力 產品規格同一標準 批量生產 自動化測試 讓程式代替人為去驗證程式功能的過程,即在預設條件下執行程式系統 流程確定 搭建自動化框架 編寫測試用例,將其轉化為soupui 介面 自動化測試指令碼 執行自動化測試指令碼 輸出執行...