最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python+adb+monkey實現(xiàn)Rom穩(wěn)定性測試詳解

 更新時間:2020年04月23日 09:48:30   作者:junjie_wu  
這篇文章主要介紹了python+adb+monkey實現(xiàn)Rom穩(wěn)定性測試詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我為什么做這項工作?

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

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

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

該如何開始這項工作呢?

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

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

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

應(yīng)用要使用某項權(quán)限肯定要先啟動啊,如何一一的啟動這些app呢?

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

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

腳本執(zhí)行結(jié)果:

1、第一次執(zhí)行,在dump的內(nèi)存信息中發(fā)現(xiàn)了 我們的一個本地層進程出現(xiàn)內(nèi)存泄露,我們懷疑是這個泄露引起的黑屏,我們的開發(fā)進行了修改。

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

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

補充知識:Shell腳本實戰(zhàn)之生成日志文件

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實現(xiàn)Rom穩(wěn)定性測試詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié)

    Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié)

    這篇文章主要介紹了Python 反轉(zhuǎn)字符串(reverse)的方法小結(jié),需要的朋友可以參考下
    2018-02-02
  • 簡單探討一下python線程鎖

    簡單探討一下python線程鎖

    本文主要介紹了簡單探討一下python線程鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 淺談Python3實現(xiàn)兩個矩形的交并比(IoU)

    淺談Python3實現(xiàn)兩個矩形的交并比(IoU)

    今天小編就為大家分享一篇淺談Python3實現(xiàn)兩個矩形的交并比(IoU),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python驗證碼識別教程之利用滴水算法分割圖片

    python驗證碼識別教程之利用滴水算法分割圖片

    這篇文章主要給大家介紹了關(guān)于python驗證碼識別教程之利用滴水算法分割圖片的相關(guān)資料,文章中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Python判斷字符串是否為空和null方法實例

    Python判斷字符串是否為空和null方法實例

    這篇文章主要介紹了Python判斷字符串是否為空和null,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 解決Python pip 自動更新升級失敗的問題

    解決Python pip 自動更新升級失敗的問題

    今天小編就為大家分享一篇解決Python pip 自動更新升級失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 在python中如何建立一個自己的包

    在python中如何建立一個自己的包

    這篇文章主要介紹了在python中如何建立一個自己的包,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python代碼塊及緩存機制原理詳解

    Python代碼塊及緩存機制原理詳解

    這篇文章主要介紹了Python代碼塊及緩存機制原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python實現(xiàn)的爬取百度文庫功能示例

    Python實現(xiàn)的爬取百度文庫功能示例

    這篇文章主要介紹了Python實現(xiàn)的爬取百度文庫功能,結(jié)合實例形式分析了Python針對百度文庫的爬取、編碼轉(zhuǎn)換、文件保存等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • python中的垃圾回收(GC)機制

    python中的垃圾回收(GC)機制

    這篇文章主要介紹了python中的GC機制,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09

最新評論

黔西县| 云阳县| 郴州市| 铅山县| 肇庆市| 灵寿县| 于田县| 鹤庆县| 财经| 普定县| 淳安县| 织金县| 民勤县| 堆龙德庆县| 广州市| 凤山市| 内黄县| 尼木县| 荣成市| 金溪县| 文山县| 永清县| 开远市| 九寨沟县| 徐州市| 潮安县| 中阳县| 凌海市| 论坛| 遵化市| 沾益县| 沂水县| 页游| 即墨市| 肃宁县| 甘德县| 娄底市| 吉安市| 当阳市| 图片| 丹东市|