通過python調(diào)用adb命令對App進(jìn)行性能測試方式
1 監(jiān)聽啟動(dòng)activity 信息命令adb shell logcat | grep START 可以查看apk包名和Activity名字
=========啟動(dòng)時(shí)間============
2 冷啟動(dòng)(第一次啟動(dòng))熱啟動(dòng)(沒有退出,第二次打開)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity
3 停止app命令(冷啟動(dòng)) adb shell am force-stop com.qihoo.appstore
(熱啟動(dòng)方式退出) adb shell input keyevent 3
python 來實(shí)現(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 一段時(shí)間后
2 再 解讀文件信息
===============流量===================
1獲取當(dāng)前進(jìn)程的adb shell ps | findstr com.qihoo.appstore
adb shell cat /proc/pid/net/dev
=================電量======================
執(zhí)行獲取電量的命令 adb shell dumpsys battery
設(shè)置手機(jī)進(jìn)入非充電狀態(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()方法占用的時(shí)間。
Process:表示渲染引擎執(zhí)行顯示列表所花的時(shí)間,view越多,時(shí)間就越長
Execute:表示把一幀數(shù)據(jù)發(fā)送到屏幕上排版顯示實(shí)際花費(fèi)的時(shí)間。其實(shí)是實(shí)際顯示幀數(shù)據(jù)的后臺(tái)緩存區(qū)與前臺(tái)緩沖區(qū)交換后并將前臺(tái)緩沖區(qū)的內(nèi)容顯示到屏幕上的時(shí)間。
Draw + Process + Execute = 完整顯示一幀 ,這個(gè)時(shí)間要小于16ms才能保證每秒60幀。
取得數(shù)據(jù)后,復(fù)制到excel中生成堆積柱狀圖。
補(bǔ)充知識:python調(diào)用adb命令進(jìn)行手機(jī)操作
Python中執(zhí)行cmd命令可以用到os和subprocess兩個(gè)模塊。
區(qū)別在于os是阻塞式的,subprocess是非阻塞式的,所以一般我們使用subprocess是比較適合的。
接下來我先舉一個(gè)查詢連接設(shè)備的命令來看看python中怎么樣的寫法。用到的命令為 adb devices。
方式一:
import os
os.system('adb devices') #獲取連接設(shè)備
運(yùn)行結(jié)果
List of devices attached
Q8DCGQA6JBQRSAI device
方式二:
import subprocess order='adb devices' #獲取連接設(shè)備 pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) print(pi.stdout.read()) #打印結(jié)果
運(yùn)行結(jié)果
b'List of devices attached\r\AQ8DCGQA6JBQRSAI\tdevice\r\n\r\n'
以上這篇通過python調(diào)用adb命令對App進(jìn)行性能測試方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用python爬取散文網(wǎng)的文章實(shí)例教程
這篇文章主要跟大家介紹了利用python爬取散文網(wǎng)文章的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法
這篇文章主要介紹了在pandas中遍歷DataFrame行的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python應(yīng)用領(lǐng)域和就業(yè)形勢分析總結(jié)
在本篇文章總我們給大家整理了關(guān)于Python應(yīng)用領(lǐng)域和就業(yè)形勢分析以及圖文介紹,需要的朋友們可以參考下。2019-05-05python命令行引導(dǎo)用戶填寫可用的ip地址和端口號實(shí)現(xiàn)
這篇文章主要為大家介紹了python命令行引導(dǎo)用戶填寫可用的ip地址和端口號實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python3如何日志同時(shí)輸出到控制臺(tái)和文件
這篇文章主要介紹了Python3如何日志同時(shí)輸出到控制臺(tái)和文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11python3.6.8 + pycharm + PyQt5 環(huán)境搭建的圖文教程
這篇文章主要介紹了python3.6.8 + pycharm + PyQt5 環(huán)境搭建,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06python搜索指定類型文件以及批量移動(dòng)文件程序詳解
這篇文章主要給大家介紹了關(guān)于python搜索指定類型文件以及批量移動(dòng)文件程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03