av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:72日期:2022-07-29 10:57:20

我為什么做這項(xiàng)工作?

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

需要測(cè)試的是一個(gè)什么樣的功能?

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

該如何開始這項(xiàng)工作呢?

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

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

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

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

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

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

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

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

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

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

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

1.代碼如下

#!/bin/bashtoday=$(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實(shí)現(xiàn)Rom穩(wěn)定性測(cè)試詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日本偷偷操 | 欧美极品一区二区 | 欧美一级毛片久久99精品蜜桃 | 北条麻妃一区二区三区在线观看 | 天天综合操 | 金莲网| 美女高潮网站 | 精品视频在线免费观看 | 看av网址 | 人人澡人人射 | 欧美日韩综合视频 | 国产在线一区观看 | 亚洲国产二区 | 日韩av一区二区在线观看 | 国产97人人超碰caoprom | 狠狠色综合久久婷婷 | 怡红院怡春院一级毛片 | 在线免费国产视频 | 亚洲精品电影在线观看 | 国产成人在线视频播放 | 日韩欧美在线免费观看视频 | 国产午夜精品久久久 | 久久国产精品久久 | 国产十日韩十欧美 | 亚洲国产精品精华素 | 亚洲国产一区二区三区 | 国产精品日韩一区二区 | aa级毛片毛片免费观看久 | 成人免费视频 | 亚洲97| 欧美精品综合 | 日韩在线视频一区 | www.天天操.com | 色综合天天综合网国产成人网 | 亚洲女人天堂网 | 日韩一区二区三区精品 | 国产在线观看免费 | 精品一区久久 | 成人亚洲性情网站www在线观看 | 91视频麻豆 | 免费观看av网站 |