安卓性能測試數據獲取及生成html測試報告
-
獲取設備信息
獲取設備廠商:adb -s devicesid shell getprop ro.product.brand
獲取設備型號:adb -s devicesid shell getprop ro.product.model
獲取設備系統版本:adb -s devicesid shell getprop ro.build.version.release
-
adb命令監測(指定設備)app相關性能信息
1. 安裝apk
adb install <apk文件路徑>,將指定的apk安裝到設備上,安裝的apk包會放在/data/app目錄下。
幾個參數:
-r 強制安裝
-d(真機,多個設備中只有一個真機時適用)
-e(模擬器,多個設備中只有一個模擬器時適用)
-s(指定設備,後接序列號)
eg:adb –s 44a188f9 install –r test.apk(安裝測試包到指定的移動設備,其中44a188f9即序列號,通過adb devices獲取)
2. 卸載app
adb [-s devicesid] uninstall pakagename>
3. adb pull 和adb push
adb pull <設備中的文件路徑> <本地路徑>:從模擬器或設備中複製文件到本地。
adb push <本地文件路徑> <設備中的路徑>:將本地文件或目錄複製到模擬器或設備。
4. 獲取啓動時間
adb [-s devicesid] shell am start -W –n <packageName>/<activityName>
如果只關心某個應用自身啓動耗時,參考TotalTime;
如果關心繫統啓動應用耗時,參考WaitTime;
如果關心應用有界面Activity啓動耗時,參考ThisTime。
5. 內存使用率
adb [-s devicesid] shell dumpsys meminfo <pakagename>
6. CPU佔有率
- adb [-s devicesid] shell top -d 1| grep <pakagename> 指定設備每一秒鐘打印一次app資源使用情況無限循環,可使用control+C終止
- adb [-s devicesid] shell dumpsys cpuinfo 不同設備的輸出信息有可能不同
3. adb [-s devicesid] shell cat /proc/pid /stat 查看指定進程的cpu佔用
adb [-s devicesid] shell cat /proc/stat 查看總體的cpu佔用
7. 功耗
adb [-s devicesid] shell dumpsys battery
8. 流量
adb [-s devicesid] shell cat /proc/net/xt_qtaguid/stats|grep <uid>|grep wlan0
-
數據分析
https://www.cnblogs.com/fightfordream/p/7072966.html
Pandas數據處理之分組統計
cut()函數可以將一個數組中的數據切分成幾個部分。
將數據分爲幾個部分,就稱爲幾個面元。
cut(數據數組,面元數組)
還可以不指定面元的界限,直接傳入一個整數參數,cut()會按照指定的數字,將元素劃分爲相應的幾部分
相應步驟:
1.切割面元:cat = pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
2.統計每個面元有多少個元素:ser = pandas.value_counts(cat)
3.根據索引排序:ser = ser.sort_index()
4.數據名:ser.name='柱形圖原始數據'
數據字段名:ser.index.name='數據區間'
eg:數據區間
(6.987,9.6] 1
(9.6,12.2] 0
(12.2,14.8] 0
(14.8,17.4] 0
(17.4,20.0] 1
Name: 柱形圖原始數據,dtype: int64
將上述數據存儲爲字典列表:
data = [
{'interval':str(ser.index[0]),'number':ser.values[0]},
{'interval':str(ser.index[1]),'number':ser.values[1]},
{'interval':str(ser.index[2]),'number':ser.values[2]},
{'interval':str(ser.index[3]),'number':ser.values[3]},
{'interval':str(ser.index[4]),'number':ser.values[4]}
]
-
圖表繪製
https://antv.alipay.com/zh-cn/g2/3.x/tutorial/index.html
//圖表繪製的數據需爲json格式
function strToJson(str){
var json = JSON.parse(str);
return json;
}
// 安裝耗時分析柱形圖
var data = "{{ data['Analysis']['searchInstall'] }}"; //jinja2接收數據
data = data.replace(/'/g, "\""); //將/'/g替換爲字符"
data = strToJson(data); //轉化爲json
const chart = new G2.Chart({
container: 'c1',
width : 528,
height : 226
});
chart.source(data);
chart.interval().position('interval*number').color('interval');
chart.render();