天天看點

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程序

基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程序

  By: 授客 QQ:1033553122

1. 測試環境 

2. 實作功能 

3. 使用前提 

4. 使用方法 

influxDB主機配置 

monitor_scope.conf監控範圍配置 

device_with_package.conf裝置和應用包配置 

sample_type.conf 配置 

運作程式 

grafana圖表配置 

資料源配置 

Dashboard變量配置 

Dashboard Pannel配置參考 

效果展示 

1.測試環境

python 3.4

CentOS 6 64位(核心版本2.6.32-642.el6.x86_64)

influxdb-1.5.2.x86_64.rpm

網盤下載下傳位址:

https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA

grafana-5.1.2-1.x86_64.rpm

下載下傳位址:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm

下載下傳位址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg

influxdb-5.0.0-py2.py3-none-any.whl

https://pypi.org/project/influxdb/#files

下載下傳位址:https://pan.baidu.com/s/1DQ0HGYNg2a2-VnRSBdPHmg

2.實作功能

基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程序,支援同時對台裝置,多個應用程序(基于android應用包)進行監控,支援cpu,記憶體,電量,網絡,程序cpu,程序記憶體占用,程序網絡收發,gfx幀率,丢幀資料資訊采集。

3.使用前提

1、有adb指令執行權限

2、裝置已連接配接

cmd進入AndroidMonitor/adb目錄

執行adb devices -l指令可看到對應裝置,則表示裝置已連接配接

4.使用方法

influxDB主機配置

AndroidMonitor\conf\influxDB.conf

[INFLUXDB]

influxdb_host = 10.203.25.106

influxdb_port = 8086

monitor_scope.conf監控範圍配置

AndroidMonitor\conf\monitor_scope.conf

[DEVICE]

choice = 0

[PACKAGE]

choice = 1

配置說明:

choice = 1 監控所有裝置(應用包) 0 監控device_and_package.conf配置的裝置及對應應用包,目前 PACKAGE節點下的choice配置不起作用,即隻監控配置的應用包

device_with_package.conf裝置和應用包配置

AndroidMonitor\conf\device_with_package.conf

dev1 = 192.168.192.101:5555

#dev2 = 192.168.242.102:5555

[192.168.192.101:5555]

pkg1 = com.android.calculator2

#pkg2=package:com.android.music

#[192.168.242.102:5555]

#pkg1 = com.android.calculator2

格式說明:

自定義裝置辨別 = 裝置序列号

[裝置序列号]

自定義軟體包辨別 = 程式軟體包包名

# 代表注釋

如果不想監控指定裝置(包括對應軟體包),用 # 号注釋掉裝置的“自定義裝置辨別” 所在行即可,如上;

如果不想監控指定定軟體包,用 # 号注釋掉軟體包“自定義軟體包辨別” 所在行即可,如上。

裝置序列号擷取:

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

軟體包包名擷取

adb -s 裝置序列号 shell "pm list packages | grep 包名模糊查找字元串"

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

注意:[DEVICE]節點下的“自定義裝置辨別”不能重複,每個[裝置序列号]下的“自定義軟體包辨別不能重複

sample_type.conf 配置

AndroidMonitor\conf\sample_type.conf

[SAMPLETYPE]

sample_type = cpu,proc_cpu,mem,proc_mem,battery,gfx,net,proc_net

filter =

說明:

sample_type = 需要采集的項目,目前支援采集項目如上,用逗号分隔,大小寫不敏感

filter = 不需要采集的項目,用逗号分隔,大小寫不敏感,沒有則保持為空

1、proc_cpu  程序cpu使用率,多cpu處理器的環境下,正常情況下,計算結果為 程序單核cpu使用率 x 邏輯cup數,程式運作時,如果擷取邏輯cpu數失敗,則邏輯cpu數設定為1,即計算結果為單核cpu使用率

2、gfx的采集,需要開啟“GPU呈現分析模式” 并設定模式“在adb shell dumpsys gfxinfo中”

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

fps相關名額說明,計算方法,參考連結:https://www.jianshu.com/p/6c0cfc25b038

運作程式

cd /d AndroidMonitor

python main.py 采集頻率(機關 秒) 采集時長

eg:

每5秒采集一次,總共采集120秒

python main.py 4 120

停止監控,關閉cmd視窗即可

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

注意:

如果(根據配置自動調整後的)采集頻率時間間隔大于單次程式采樣實際耗時,則處理完成後立即進行下一次采樣,忽略采樣頻率設定,實際采集時長變長,但是采集次數不變 int(采集時長/采樣頻率)

grafana圖表配置

資料源配置

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

Dashboard變量配置

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

Dashboard Pannel配置參考

注:部分細節未展現

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

效果展示

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

 源碼下載下傳:

https://gitee.com/ishouke/AndroidMonitor

作者:授客

QQ:1033553122

全國軟體測試QQ交流群:7156436

Git位址:https://gitee.com/ishouke

友情提示:限于時間倉促,文中可能存在錯誤,歡迎指正、評論!

作者五行缺錢,如果覺得文章對您有幫助,請掃描下邊的二維碼打賞作者,金額随意,您的支援将是我繼續創作的源動力,打賞後如有任何疑問,請聯系我!!!

           微信打賞                       

支付寶打賞                  全國軟體測試交流QQ群  

性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式
性能測試 基于Python結合InfluxDB及Grafana圖表實時監控Android系統和應用程式

繼續閱讀