通过python调用adb命令对App进行性能测试方式


Posted in Python onApril 23, 2020

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进行性能测试方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 接口_从协议到抽象基类详解
Aug 24 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
python区分不同数据类型的方法
Oct 14 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
pymysql的简单封装代码实例
Jan 08 Python
python实现扫雷游戏
Mar 03 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 #Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 #Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
Apr 23 #Python
Django调用百度AI接口实现人脸注册登录代码实例
Apr 23 #Python
Anaconda和ipython环境适配的实现
Apr 22 #Python
Django框架获取form表单数据方式总结
Apr 22 #Python
Anaconda的安装及其环境变量的配置详解
Apr 22 #Python
You might like
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python中自定义函数的教程
2015/04/27 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
Python中执行存储过程及获取存储过程返回值的方法
2017/10/07 Python
python装饰器实例大详解
2017/10/25 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
Python通过socketserver处理多个链接
2020/03/18 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
python3实现简单飞机大战
2020/11/29 Python
美国钻石商店:Zales
2016/11/20 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
苏格兰领先的多渠道鞋店:Begg Shoes
2019/10/22 全球购物
人力资源专员岗位职责
2014/01/30 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
小平小道观后感
2015/06/09 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers