通过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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
使用Python控制摄像头拍照并发邮件
Apr 23 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
Sep 06 Python
Python笔记之facade模式
Nov 20 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Python2和Python3中@abstractmethod使用方法
Feb 04 Python
python烟花效果的代码实例
Feb 25 Python
python实现按日期归档文件
Jan 30 Python
python not运算符的实例用法
Jun 30 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
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
投票管理程序
2006/10/09 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
angular4中引入echarts的方法示例
2019/01/29 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
解决layui页面按钮点击无反应,也不报错的问题
2019/09/29 Javascript
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python turtle画图库&&画姓名实例
2020/01/19 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
python 爬虫如何正确的使用cookie
2020/10/27 Python
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
Dr. Martens马汀博士德国官网:马丁靴鼻祖
2019/12/26 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
教师队伍管理制度
2014/01/14 职场文书
《落花生》教学反思
2014/02/25 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
单位政审意见范文
2015/06/04 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS