这篇文章主要为大家展示了如何通过python调用adb命令对App进行性能测试,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。
1 监听启动activity 信息命令adb shell logcat | grep START 可以查看apk包名和Activity名字
=========启动时间============
2 冷启动(第一次启动)热启动(没有退出,第二次打开)命令 adb shell am start -W -n com.qihoo.appstore/.home.MainActivity
3 停止app命令(冷启动) adb shell am force-stop com.qihoo.appstore
(热启动方式退出) adb shell input keyevent 3
python 来实现方式
1定义App类方法有startApp stopApp getStartTime
2 Manager类 方法 testRunTime(执行单次) run 开启执行
==============cpu=================
查看cpu数据
adb shell dumpsys cpuinfo | findstr com.qihoo.appstore
注意 window 下必须把grep 换成 findstr
==================内存=========================
第一种
adb shell dumpsys meminfo com.qihoo.appstore
第二种方式
1 执行adb shell top >f:/meminfo.txt 一段时间后
2 再 解读文件信息
===============流量===================
1获取当前进程的adb shell ps | findstr com.qihoo.appstore
adb shell cat /proc/pid/net/dev
=================电量======================
执行获取电量的命令 adb shell dumpsys battery
设置手机进入非充电状态 adb shell dumpsys battery set status 1
=================帧率===fps===================
adb shell dumpsys gfxinfo com.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中怎么样的写法。用到的命令为 adb devices。
方式一:
import os
os.system('adb devices') #获取连接设备
运行结果
List of devices attached
Q8DCGQA6JBQRSAI device
方式二:
import subprocess order='adb devices' #获取连接设备 pi= subprocess.Popen(order,shell=True,stdout=subprocess.PIPE) print(pi.stdout.read()) #打印结果
运行结果
b'List of devices attached\r\AQ8DCGQA6JBQRSAI\tdevice\r\n\r\n'
以上就是关于如何通过python调用adb命令对App进行性能测试的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。