通过python调用adb命令对App进行性能测试方式

 更新时间:2020年04月23日 09:32:05   作者:WAIT Y  
这篇文章主要介绍了通过python调用adb命令对App进行性能测试方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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 statsmodel的使用

    python statsmodel的使用

    这篇文章主要介绍了python statsmodel使用的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • Python多进程协作模拟实现流程

    Python多进程协作模拟实现流程

    当多个进程使用同一份数据资源的时候,因为进程的运行没有顺序,运行起来也无法控制,如果不加以干预,往往会引发数据安全或顺序混乱的问题,所以要在多个进程读写共享数据资源的时候加以适当的策略,来保证数据的一致性问题
    2023-01-01
  • python程序输出无内容的解决方式

    python程序输出无内容的解决方式

    这篇文章主要介绍了python程序输出无内容的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python中支持向量机SVM的使用方法详解

    Python中支持向量机SVM的使用方法详解

    这篇文章主要为大家详细介绍了Python中支持向量机SVM的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • 学python爬虫能做什么

    学python爬虫能做什么

    这篇文章主要介绍了学python爬虫能做什么的相关知识点内容,有需要的朋友们可以阅读参考下。
    2020-07-07
  • python作图基础之plt.contour实例详解

    python作图基础之plt.contour实例详解

    contour和contourf都是画三维等高线图的,下面这篇文章主要给大家介绍了关于python作图基础操作之plt.contour的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python实现去除列表中重复元素的方法小结【4种方法】

    Python实现去除列表中重复元素的方法小结【4种方法】

    这篇文章主要介绍了Python实现去除列表中重复元素的方法,结合实例形式总结分析了Python列表去重的4种实现方法,涉及Python针对列表的遍历、判断、排序等相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • Python实现大乐透号码随机生成

    Python实现大乐透号码随机生成

    全国有很多彩民,其中购买最多的彩种分别是体彩大乐透和福彩双色球。本篇文章将介绍Python实现彩票自由的全流程:随机选取号码+查看是否中奖,需要的可以参考一下
    2022-05-05
  • Python fileinput模块使用介绍

    Python fileinput模块使用介绍

    这篇文章主要介绍了Python fileinput模块使用方法,需要的朋友可以参考下
    2014-11-11
  • Python中执行CMD命令的方法总结

    Python中执行CMD命令的方法总结

    在实际开发中,有时候我们需要在Python中执行一些系统命令(CMD命令),本文将详细介绍在Python中执行CMD命令的方法,并通过丰富的示例代码帮助大家更全面地理解这一过程,希望对大家有所帮助
    2023-12-12

最新评论