通过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 相关文章推荐
基于ID3决策树算法的实现(Python版)
May 31 Python
python 类对象和实例对象动态添加方法(分享)
Dec 31 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python3 pathlib库Path类方法总结
Dec 26 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
python geopandas读取、创建shapefile文件的方法
Jun 29 Python
python 安全地删除列表元素的方法
Mar 16 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/03 欧美动漫
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
2011/03/28 PHP
PHP获取文件后缀名的三个函数
2012/10/15 PHP
解析php中反射的应用
2013/06/18 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
php 防止表单重复提交两种实现方法
2016/11/03 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
js评分组件使用详解
2017/06/06 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
详解Python3中字符串中的数字提取方法
2017/01/14 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
Django数据库操作之save与update的使用
2020/04/01 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
HEMA英国:荷兰原创设计
2018/08/28 全球购物
促销活动计划书
2014/05/02 职场文书
通信工程专业求职信
2014/06/04 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
员工安全责任书范本
2014/07/24 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
《窃读记》教学反思
2016/02/18 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python