通过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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
Python中for循环控制语句用法实例
Jun 02 Python
PyQt5实现下载进度条效果
Apr 19 Python
python3学生名片管理v2.0版
Nov 29 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
pandas 空数据处理方法详解
Nov 02 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
python Tkinter的简单入门教程
Apr 11 Python
python本地文件服务器实例教程
May 02 Python
python基础之爬虫入门
May 10 Python
python前后端自定义分页器
Apr 13 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 判断数组是几维数组
2013/03/20 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
Javascript基础教程之数据类型转换
2015/01/18 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
2016/05/05 Javascript
原生js实现自由拖拽弹窗代码demo
2016/06/29 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
python字符串循环左移
2019/03/08 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Python将字典转换为XML的方法
2020/08/01 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
幼儿教师个人求职信范文
2013/09/21 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
个人总结与自我评价
2014/09/18 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
中标通知书格式
2015/04/17 职场文书
农村党支部承诺书
2015/04/30 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js