通过python调用adb命令对App进行性能测试方式
1监听启动activity信息命令adbshelllogcat|grepSTART可以查看apk包名和Activity名字
=========启动时间============
2冷启动(第一次启动)热启动(没有退出,第二次打开)命令adbshellamstart-W-ncom.qihoo.appstore/.home.MainActivity
3停止app命令(冷启动)adbshellamforce-stopcom.qihoo.appstore
(热启动方式退出)adbshellinputkeyevent3
python来实现方式
1定义App类方法有startAppstopAppgetStartTime
2Manager类方法testRunTime(执行单次)run开启执行
==============cpu=================
查看cpu数据
adbshelldumpsyscpuinfo|findstrcom.qihoo.appstore
注意window下必须把grep换成findstr
==================内存=========================
第一种
adbshelldumpsysmeminfocom.qihoo.appstore
第二种方式
1执行adbshelltop>f:/meminfo.txt一段时间后
2再解读文件信息
===============流量===================
1获取当前进程的adbshellps|findstrcom.qihoo.appstore
adbshellcat/proc/pid/net/dev
=================电量======================
执行获取电量的命令adbshelldumpsysbattery
设置手机进入非充电状态adbshelldumpsysbatterysetstatus1
=================帧率===fps===================
adbshelldumpsysgfxinfocom.qihoo.appstore>f:/fps.txt
Draw:表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。
Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长
Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间。
Draw+Process+Execute=完整显示一帧,这个时间要小于16ms才能保证每秒60帧。
取得数据后,复制到excel中生成堆积柱状图。
补充知识:python调用adb命令进行手机操作
Python中执行cmd命令可以用到os和subprocess两个模块。
区别在于os是阻塞式的,subprocess是非阻塞式的,所以一般我们使用subprocess是比较适合的。
接下来我先举一个查询连接设备的命令来看看python中怎么样的写法。用到的命令为adbdevices。
方式一:
importos
os.system('adbdevices')#获取连接设备
运行结果
Listofdevicesattached
Q8DCGQA6JBQRSAIdevice
方式二:
importsubprocess order='adbdevices'#获取连接设备 pi=subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) print(pi.stdout.read())#打印结果
运行结果
b'Listofdevicesattached\r\AQ8DCGQA6JBQRSAI\tdevice\r\n\r\n'
以上这篇通过python调用adb命令对App进行性能测试方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。