通过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 18 Python
Python素数检测的方法
May 11 Python
用Python写冒泡排序代码
Apr 12 Python
Python将多份excel表格整理成一份表格
Jan 03 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
Jan 10 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
PYTHON基础-时间日期处理小结
May 05 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
用python3教你任意Html主内容提取功能
Nov 05 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
Python实现点云投影到平面显示
Jan 18 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 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
php文件上传类完整实例
2016/05/14 PHP
PHP引用返回用法示例
2016/05/28 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
PHP $O00OO0=urldecode & eval 解密,记一次商业源码的去后门
2020/09/13 PHP
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
2016/03/17 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
原生js实现日期计算器功能
2017/02/17 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
python3.5使用tkinter制作记事本
2016/06/20 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Python常用类型转换实现代码实例
2020/07/28 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
2020/12/07 Python
Pandas数据分析的一些常用小技巧
2021/02/07 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
自荐书范文范例
2014/02/13 职场文书
会计演讲稿范文
2014/05/23 职场文书
大学英语专业求职信
2014/06/21 职场文书
信仰观后感
2015/06/03 职场文书
单独二胎证明
2015/06/24 职场文书
员工给公司的建议书
2019/06/24 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Python实现打乒乓小游戏
2021/09/25 Python
十大最强格斗系宝可梦,超梦X仅排第十,第二最重格斗礼仪
2022/03/18 日漫
详解NumPy中的线性关系与数据修剪压缩
2022/05/25 Python
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android