我們在做app測試的過程中,都會對app內存,cpu這些做一個簡單的測試,今天簡單的寫下如何通過python監控app這些資源變化
實現原理
1、通過adb命令查看app資源內存
2、通過python腳本調用adb命令
3、持續監控寫入txt文件或者csv文件中
監控資源過程
我們以淘寶app為例完成本次監控
adb監控內存命令
# adb監控內存變化 adb shell dumpsys meminfo com.taobao.taobao

進行數據分析
通過觀察,我們只需要提取出來結果的 Native Heap 和 Dalvik Heap,還有內存總和 TOTAL,接下來我們通過python把想要的數據提取出來
# coding:utf-8 import os # 獲取淘寶內存命令 adb = 'adb shell dumpsys meminfo com.taobao.taobao' # 執行adb命令 result = os.popen(adb).read() # 以','進行分割 temp = ','.join(result.split()) # 獲取native值 native = temp.split('Native,Heap')[1].split(',')[1] # 獲取dalvik值 dalvik = temp.split('Dalvik,Heap')[1].split(',')[1] # 獲取total值 total = temp.split('TOTAL')[1].split(',')[1]
這樣的話就把我們想要的數據提取出來了,可以中間加個等待時間,每幾秒提取一次數據,接下來我們呢進行對這些數據寫入csv文件或者txt文件中
首先我們創建一個列表,把每次提取出來的數據放入到列表中,寫入csv文件中
# coding:utf-8 import os import time import csv alldata = [("native", "dalvik","TOTAL")] # 設置循環次數 count = 10 while count > 0: lines = os.popen("adb shell dumpsys meminfo com.taobao.taobao") # adb 查看app內存 result = lines.read() temp = ','.join(result.split()) native_heap = temp.split('Native,Heap')[1].split(',')[1] print ("native_heap:" + str(native_heap)) dalvik_heap = temp.split('Dalvik,Heap')[1].split(',')[1] print ("dalvik_heap:" + str(dalvik_heap)) total = temp.split('TOTAL')[1].split(',')[1] print ("total:" + str(total)) alldata.append([native_heap, dalvik_heap,total]) count -= 1 print('還剩余:%s次'%count) time.sleep(1) # 等待時間 csvfile = open('test02.csv', 'w',encoding='utf8',newline='') writer = csv.writer(csvfile) writer.writerows(alldata) csvfile.close()

當我們在跑自動化的過程中,我們再次執行這個監控內存腳本,就可以完成對app內存資源的監控了;
剩下的CPU,耗電量大家試着完成下,要記住耗電量不能通過USB的方式連接哈,要不然就會一直處於充電狀態
