通過python調(diào)用adb命令對App進行性能測試方式
1 監(jiān)聽啟動activity 信息命令adb shell logcat | grep START 可以查看apk包名和Activity名字
=========啟動時間============
2 冷啟動(第一次啟動)熱啟動(沒有退出,第二次打開)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity
3 停止app命令(冷啟動) adb shell am force-stop com.qihoo.appstore
(熱啟動方式退出) adb shell input keyevent 3
python 來實現(xiàn)方式
1定義App類方法有startApp stopApp getStartTime
2 Manager類 方法 testRunTime(執(zhí)行單次) run 開啟執(zhí)行
==============cpu=================
查看cpu數(shù)據(jù)
adb shell dumpsys cpuinfo | findstr com.qihoo.appstore
注意 window 下必須把grep 換成 findstr
==================內(nèi)存=========================
第一種
adb shell dumpsys meminfo com.qihoo.appstore
第二種方式
1 執(zhí)行adb shell top >f:/meminfo.txt 一段時間后
2 再 解讀文件信息
===============流量===================
1獲取當(dāng)前進程的adb shell ps | findstr com.qihoo.appstore
adb shell cat /proc/pid/net/dev
=================電量======================
執(zhí)行獲取電量的命令 adb shell dumpsys battery
設(shè)置手機進入非充電狀態(tài) adb shell dumpsys battery set status 1
=================幀率===fps===================
adb shell dumpsys gfxinfo com.qihoo.appstore > f:/fps.txt
Draw:表示在Java中創(chuàng)建顯示列表部分中,OnDraw()方法占用的時間。
Process:表示渲染引擎執(zhí)行顯示列表所花的時間,view越多,時間就越長
Execute:表示把一幀數(shù)據(jù)發(fā)送到屏幕上排版顯示實際花費的時間。其實是實際顯示幀數(shù)據(jù)的后臺緩存區(qū)與前臺緩沖區(qū)交換后并將前臺緩沖區(qū)的內(nèi)容顯示到屏幕上的時間。
Draw + Process + Execute = 完整顯示一幀 ,這個時間要小于16ms才能保證每秒60幀。
取得數(shù)據(jù)后,復(fù)制到excel中生成堆積柱狀圖。
補充知識:python調(diào)用adb命令進行手機操作
Python中執(zhí)行cmd命令可以用到os和subprocess兩個模塊。
區(qū)別在于os是阻塞式的,subprocess是非阻塞式的,所以一般我們使用subprocess是比較適合的。
接下來我先舉一個查詢連接設(shè)備的命令來看看python中怎么樣的寫法。用到的命令為 adb devices。
方式一:
import os
os.system(’adb devices’) #獲取連接設(shè)備
運行結(jié)果
List of devices attached
Q8DCGQA6JBQRSAI device
方式二:
import subprocessorder=’adb devices’ #獲取連接設(shè)備pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)print(pi.stdout.read()) #打印結(jié)果
運行結(jié)果
b’List of devices attachedrAQ8DCGQA6JBQRSAItdevicernrn’
以上這篇通過python調(diào)用adb命令對App進行性能測試方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaWeb Servlet中url-pattern的使用2. JavaScrip簡單數(shù)據(jù)類型隱式轉(zhuǎn)換的實現(xiàn)3. XML解析錯誤:未組織好 的解決辦法4. JSP+Servlet實現(xiàn)文件上傳到服務(wù)器功能5. 使用EF Code First搭建簡易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫遷移6. PHP設(shè)計模式中工廠模式深入詳解7. Javaweb工程運行報錯HTTP Status 404解決辦法8. asp.net core項目授權(quán)流程詳解9. Python中scrapy下載保存圖片的示例10. 使用本機IIS?Express開發(fā)Asp.Net?Core應(yīng)用圖文教程
