通过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实现的正则表达式功能入门教程【经典】
Jun 05 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
python打包成so文件过程解析
Sep 28 Python
Python TCP通信客户端服务端代码实例
Nov 21 Python
python 字段拆分详解
Dec 17 Python
基于python3生成标签云代码解析
Feb 18 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
Python获取指定网段正在使用的IP
Dec 14 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
只需要100行Python代码就可以实现的贪吃蛇小游戏
May 27 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
nodejs 中模拟实现 emmiter 自定义事件
2016/02/22 NodeJs
Javascript获取随机数的实现方法
2016/06/22 Javascript
学习Javascript闭包(Closure)知识
2016/08/07 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
javascript编程开发中取色器及封装$函数用法示例
2017/08/09 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
运行Python编写的程序方法实例
2020/10/21 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
Java程序员面试90题
2013/10/19 面试题
岗位职责的含义
2013/11/17 职场文书
管理标语大全
2014/06/24 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android