獲取IOS性能參數可以基于python
的第三方庫py-ios-device
,該庫需要pyhton3.7+
的支持。在官方下載好對應版本的python
后,把它加入到系統環境變量中。再借助python
的pip
工具進行第三方庫的下載,在下載前,需要先更新pip
到最新版
1、更新到最新版pip,cmd執行命令:
python -m install --upgrade pip
2、下載py-ios-device,執行命令:
pip install py-ios-device
(因為是國外網站,可能出現timeout問題,可以在國內網站下載,pip install py-ios-device -i https://pypi.mirrors.ustc.edu.cn/simple/)
3、下載tidevice:
pip install tidevice
(通過tidevice app list
獲取測試app
的bundle_id
)
完成后執行:pyidevice
即可出現對應得命令參數列表
py-ios-device
提供了對應的方法獲取到專項對應數據,如:
cpu
、memory
、net
、disk
、Fps
、設備的功耗(電流,電壓,功率,溫度等)
、syslog
,crashlog
、棧快照
等
4、常用命令
pyidevice devices #獲取設備uuid信息
pyidevice deviceinfo --uuid=?#獲取對應設備的信息
tidevice applist #獲取app的bundle_id
性能項測試
1、冷熱啟動時間
需要通過錄屏+數幀的方式粗略估算,可用potplayer
軟件。
2、系統級Io、Memory、Cpu
輸入命令:
pyidevice instruments monitor #數據1s刷新一次
可以通過--filter
命令過濾數據
pyidevice instruments monitor --filter=cpu
3、進程級Io、Memory、Cpu
輸入命令:
pyidevice sysmontap -b包名
可以通過 --proc_filter
命令過濾信息:
pyidevice sysmontap -b 包名 --proc_filter memVirtualSize,cpuUsage --processes --sort cpuUsage
4、獲取網絡io數據
pyidevice instruments networking
該命令可以直接獲取對應設備的ip,接收緩沖區使用情況,收發包的數量,接收和發送的數據量
還能通過:
pyidevice instruments network_process -b 包名
獲取對應app的網絡數據:發送和接收的流量,收發包的數量
5、獲取ios幀率
pyidevice instruments fps
pyidevice
還提供了對應的api
能夠標記出對應操作的卡頓情況,但是目前只能
通過api調用
才能獲取
6、獲取功耗
pyidevice battery
顯示信息較多,可直接關注最后一行匯總數據
7、弱網測試
pyidevice可直接模擬出對應的弱網條件,在模擬之前需要先獲取所有可模擬的網絡事件
pyidevice instruments condition get 命令可得可模擬的網絡事件
pyidevice instruments condition set -c conditionName -p identifierName
conditionName主要有以下兩類:
- SlowNetworkCondition
- ThermalCondition(設置系統狀態處于高性能狀態)
模擬2g網絡
pyidevice instruments condition set -c SlowNetworkCondition -p SlowNetwork2GUrban
模擬3g網絡
pyidevice instruments condition set -c SlowNetworkCondition -p SlowNetwork3GGood
8、獲取日志信息
獲取系統棧的快照信息:
pyidevice instruments stackshot --out filepath+filename
獲取系統日志:
pyidevice syslog --path filepath+filename
(可通過--filter過濾信息)