91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python+adb+monkey如何實現Rom穩定性測試

發布時間:2020-08-01 10:12:26 來源:億速云 閱讀:163 作者:小豬 欄目:開發技術

這篇文章主要為大家展示了python+adb+monkey如何實現Rom穩定性測試,內容簡而易懂,希望大家可以學習一下,學習完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

我為什么做這項工作?

其實這項工作是另一位同事在做,過程中發下了一些問題,但是種種原因log和數據都沒有收集到,無法進行分析。然后我就接手了,負責復現她發現的問題并提供log和數據給開發分析。

需要測試的是一個什么樣的功能?

需求是這樣的:開發在Framework層增加了app應用權限管控(Android11中基本權限、自動以權限、AIDL),服務端可以通過下發指令到手機,控制app可以訪問及不能訪問的權限。同時安裝app也需要對簽名做校驗。

該如何開始這項工作呢?

不用多言,自動化是必須的,但是如何實施呢? 首先,client端是需要接收指令的,是個指令不能人工操作下發,好在我們有web管理頁面,通過按鍵精靈錄屏可實現不停的向

client下發指令(本來想用selenuim,但是時間關系就使用按鍵精靈吧),這樣就解決了后臺人工不干預的需求。但是Client端呢?

因為我們做的是app的權限攔截,那就必須有app啊,我們選了30個常用的app和一些測試demo,那么問題來了,這些app的安裝卸載總不能手工進行吧。答案是肯定的,可以通過python+adb install/uninstall,進行安裝和卸載。安裝就不說了,無非就是通過python獲取apk路徑然后執行adb install 命令。卸載是需要傳入包名的,如何獲取系統已經安裝應用的包名呢? pm list package -3 + awk 命令就可以將apk的包名過濾出來了,然后在使用adb uninstall卸載就行了。到此 apk的安裝卸載自動化就完成了,那么新的問題又來了

應用要使用某項權限肯定要先啟動啊,如何一一的啟動這些app呢?

這里可能會有人想到使用am命令,但問題是am啟動應用需要知道MainActivity的名稱,雖然通過工具可以一一獲取到,但是這項工作未免太耗時。所以這里我們不使用am來啟動應用,換成monkey啟動應用,這樣只需要傳入包名即可。

OK,安裝卸載、應用啟動的思路都有了,下面就需要收集log和數據了,可以使用python函數subprocess.Popen()函數將logcat命令傳入(logcat過濾log方法不再詳述),這樣測試過程就可以一直輸入log。因為我復現的是黑屏問題,所以測試過程中還需要收集Cpu和Memory信息,同樣的使用python定時執行命令dumpsys meminfo / cpuinfo來獲取。

腳本執行結果:

1、第一次執行,在dump的內存信息中發現了 我們的一個本地層進程出現內存泄露,我們懷疑是這個泄露引起的黑屏,我們的開發進行了修改。

2、第二輪測試中,同樣的發現了黑屏,但已經不是內存泄露引起的了,而是Binder掛了(我們修改過系統的Binder),而且只有360手機衛士和騰訊手機管家這樣的安全應用在設備上長時間運行才會出現這個問題,所以選擇什么樣的app也需要根據功能和業務而定,不能盲目。

PS:這項測試工作我覺得是個很好的積累,所以就寫下來;以后再遇到類似的可以拿出來參考。

補充知識:Shell腳本實戰之生成日志文件

1.代碼如下

#!/bin/bash
today=$(date +%y%m%d)
#the cause to use the command ls is in that to bulit a new #file,not in that the command ls.
ls /usr/bin -al > $today.log

以上就是關于python+adb+monkey如何實現Rom穩定性測試的內容,如果你們有學習到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铅山县| 柳林县| 华宁县| 贵阳市| 浙江省| 汝阳县| 玉环县| 扶余县| 井研县| 江陵县| 德化县| 荃湾区| 德钦县| 云霄县| 安宁市| 茌平县| 奎屯市| 通州市| 盐边县| 贡觉县| 鄂托克旗| 孝昌县| 天柱县| 阿尔山市| 兰溪市| 耒阳市| 湘乡市| 鹿邑县| 门头沟区| 利津县| 阿鲁科尔沁旗| 辽阳市| 稷山县| 宁海县| 化隆| 抚顺县| 泰来县| 盘锦市| 澄城县| 平远县| 宁海县|