移动性能测试 Monkey+battery-historian 电量测试 (五)

金主 · 2018年03月09日 · 最后由 bihua21 回复于 2018年07月10日 · 10494 次阅读
本帖已被设为精华帖!
:文章有说的不对的地方,大家可以帮忙指出!
Monkey 测试基本操作介绍(一)
Monkey 测试日志讲解(二)
Monkey+Logcat+DDMS内存泄漏分析以及定位(三)
Monkey+Logcat+traces 查找以及分析定位 ANR 问题(四)
Monkey+battery-historian 电量测试(五)

准备电量数据:

1. 断开adb服务

执行:adb kill-server

2. 开启adb服务

执行:adb start-server或者adb devices
这两步操作的作用:adb作为一种连接的方式,有可能被其他的程序占用,所以我们做电量记录时要避免打开很多可能冲突的东西

3. 收集电池的历史数据

执行:adb shell dumpsys batterystats --enable full-wake-history

4. 重置电池数据

执行:adb shell dumpsys batterystats --reset

5. 使用monkey对要进行电量测试的应用进行操作

执行:adb shell monkey -p 包名 -v 1000

6. 获取电量报告

(这里要注意手机版本,不然后期向Battery Historian导入bugreport.txt文件时会提示“bugreport.txt does not contain a valid bugreport file”,这里也算是一个坑吧)

  1. 从Android 7.0和更高版本的开发设备中获得bug报告:

    cd /Users/weixiangyang/Desktop/

    adb bugreport bugreport.zip

    实例如图:

  2. 从设备6.0和更低版本的开发设备中获得bug报告:

    1. 获取bugreport信息(记录了从开机之后详细的dumpsys,dumpstate和logcat信息):
      adb bugreport > 存放的电脑地址/bugreport.txt
    2. 获取dumpsys信息(获取系统信息:比如内存,CPU,accounts,activities,wifi等信息)
      adb shell dumpsys batterystats > 存放的电脑地址/batterystats.txt
      或者获取指定的应用程序的dumpsys信息:
      adb shell dumpsys batterystats > 包名 > 存放的电脑地址/batterystats.txt

7. 使用Battery Historian查看batterystats.txt文件的图形化报告,下载Battery Historian工具,继续往下看

Battery Historian工具简介

Battery Historian 一款由Google提供的Android系统电量分析工具,从手机中导出bugreport文件上传至页面,在网页中生成详细的图表数据来展示手机上各模块电量消耗过程,最后通过App数据的分析制定出相关的电量优化的方法。

Battery Historian工具安装有两种:

1. 安装GO环境、Python、Java环境(这种方法我不管了,亲们自己上GitHub研究)

参看链接:https://github.com/google/battery-historian

2. 通过安装Docker环境来安装(这种简单方便)

  1. Docker官方下载地址: Mac:https://docs.docker.com/docker-for-mac/ Windows:https://docs.docker.com/docker-for-mac/
  2. 查看是否安装成功: 执行:docker version
  3. 翻墙,启动镜像,执行命令: docker run -d -p 9999:9999 bhaavan/battery-historian

查看batterystats.txt文件的图形化报告

1. 使用浏览器访问地址:http://localhost:9999

2. 导入batterystats.txt或者bugreport.zip文件


记载这里我遇到一个坑,就是文件上传后,submit提交按钮不显示

  1. 原因:本质是web某些资源没有加载出来,其中的一些资源需要访问google服务器,但是这些资源被墙了,无法访问。只要解决了墙的问题,submit的问题也就迎刃而解了。
  2. 解决方案:
    1. 想办法谷歌翻墙(我翻墙啦,用同事们买的国外服务器😆
    2. 想办法将无法加载的资源替换为可以加载的资源,参考:https://github.com/waquer/ReplaceGoogleCDN

有同学说翻墙之后还是无法显示submit提交按钮,我这里提供下他的解决方案

执行:go run setup.go(必须要翻墙,不然资源下载不到)
参考链接:https://blog.csdn.net/super_spy/article/details/51966956

3. 导入成功后,成功展示电量分析结果,下面我就要来贴神图

电量变化曲折图:

系统统计数据图:

英文看不懂?来来来,我再贴个翻译后的,这样内容一目了然,我也不用解释了

注意个细节啊,这个报告竟然还有Errors与Warnings日志?看图

数据解析

CPU runing: cpu运行的状态
Kernel only uptime: 只有kernell运行
Userspace wakelock: 用户空间申请的锁
Screen: 屏幕是否点亮
Top app: 当前在内存中的应用,按内存占用率排序
Activity Manager Proc: 活跃的用户进程
Crashes(logcat): 某个时间点出现crash的应用
Doze: 是否进入doze模式
Device active: 和Doze相反
JobScheduler: 异步作业调度
SyncManager: 同步操作
Temp White List: 电量优化白名单
Phone call: 是否打电话
GPS: 是否使用GPS
Network connectivity: 网络连接状态(wifi、mobile是否连接)
Mobile signal strength: 移动信号强度(great\good\moderate\poor)
Wifi scan: 是否在扫描wifi信号
Wifi supplicant: 是否有wifi请求
Wifi radio: 是否正在通过wifi传输数据
Wifi signal strength: wifi信号强度
Wifi running: wifi组件是否在工作(未传输数据)
Wifi on: 同上
Audio: 音频子系统?
Camera: 相机是否在工作
Video:是否在播放视频
Foreground process: 前台进程
Package install: 是否在进行包安装
Package active: 包管理在工作
Battery level: 电池当前电量
Temperature: 电池温度
Plugged: 连接usb或者充电
Charging on: 在充电
Logcat misc: 是否在导出日志

电量优化参考:https://www.jianshu.com/p/5d83d8649c98

最后,monkey系列算是更新完了,喜欢的宝贝们可以给个赞哈!😆

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 66 条回复 时间 点赞
金主 Monkey 测试基本操作介绍 (一) 中提及了此贴 03月09日 16:33
金主 Monkey 测试日志讲解 (二) 中提及了此贴 03月09日 16:33
金主 Monkey+Logcat+DDMS 内存泄漏分析以及定位 (三) 中提及了此贴 03月09日 16:33
恒温 将本帖设为了精华贴 03月09日 16:35

支持一下,不错。

IOS的电量测试有什么方案吗

Vin 回复

暂时没研究

@JinZhu 小姐姐,你辣么腻害,让这帮测试小哥哥怎么混

这波操作很6,给你点个赞,越写越厉害了。

好棒 支持下

金主 #13 · 2018年03月11日 作者
小马 回复

惭愧😪

@JinZhu 小姐姐,我可以加你好友吗,我有问题想向你请教啦

金主 回复

关键不知道这个采集到的数据准确吗?指导性意义大不大呢?

金主 #17 · 2018年03月12日 作者
小萨 回复

操作尽量是在未充电情况下,这样采集电量数据还算准确

厉害了啊!我的妹

中文翻译的配置文件能否共享一份

厉害了

看了一遍,整理得全面,果断一个小小打赏,哈哈

金主 #22 · 2018年03月14日 作者
afantishui 回复

感谢帅哥的打赏😂

23楼 已删除

用docker安装的,不翻墙访问不了:

GET http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/hot-sneaks/jquery-ui.css net::ERR_CONNECTION_RESET
localhost/:8 GET http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js net::ERR_CONNECTION_RESET
金主 #25 · 2018年03月15日 作者
water 回复

所以才有了第三步,启动镜像

金主 回复

就是通过镜像启动的,还是存在这个问题

金主 回复

正在想办法翻墙TAT

金主 #28 · 2018年03月15日 作者
water 回复

翻吧翻吧,我翻了整整一天,最后还是用的同事买的服务器😪

您好,想请教一个问题,我在安装好docker,docker-version也显示正确后,根据run -d -p…命令运行battery-historian时出错显示找不到镜像,当时是可以翻墙的,不知道是不是我遗漏了什么,一直不知道该如何解决错误

金主 #30 · 2018年03月20日 作者
jbj 回复

你加我微信吧,我要看下具体日志,微信个人信息中有的

金主 #31 · 2018年03月20日 作者
81—1 回复

共享不了,你没有相关环境,给你也打不开,最多只能看下我截得图😰

金主 回复

哦,应该是改docker里某个生成HTML的脚本文件吧,方便就给个吧,或者告诉哪个文件也行,我一直没找到。

金主 #33 · 2018年03月20日 作者
81—1 回复

通过adb bugreport bugreport.zip获取电量报告,再访问谷歌浏览器进行解析

金主 回复

中文咋来的呢,环境我的都好了的。

金主 回复

http://ownerworld.win:8081/
我的服务器,想请教你是咋翻译的。

金主 #36 · 2018年03月20日 作者
81—1 回复

我的浏览器自带翻译功能呢!😰

金主 回复

😱 你说的是chrome的翻译么,那个不准额。

金主 #38 · 2018年03月20日 作者
81—1 回复

大概意思是明白的,你现在获取到解析报告了吧

金主 回复

我一直是能获取的,只是希望能汉化batter-history。

金主 #40 · 2018年03月20日 作者
81—1 回复

嗯,那我这没有办法哦,你们公司现在开始做这块的测试啦?

金主 回复

移动设备性能越来越强,在电池技术没有突破性进展的基础下,用户对电量的需求已经有超过流量的趋势了。

金主 #42 · 2018年03月20日 作者
81—1 回复

好官方的回答

金主 回复

意思就是:学个技能,好吹牛皮。

我怎么弄都是提示“”bugreport.zip does not contain a valid bugreport file“”

@JinZhu 楼主非常感谢分享 ,能出个流量测试的么。

天之依 回复

adb bugreport > bugreport.txt

之前搭建过这个工具,可以得到 最后结果;然后的,这是测量么,不是测试么?

好厉害啊,姐姐。

提交bugreport.txt后,Battery Historian为什么没有显示我上传的文件?难道这个也必须要翻墙吗?急

金主 #50 · 2018年04月18日 作者
hui_jian 回复

对啊,谷歌浏览器要翻墙的

金主 #51 · 2018年04月18日 作者
hui_jian 回复

该文件有部分内容要访问谷歌服务器进行解析的

金主 回复

我现在翻墙了,为什么还是加载不出来

金主 #53 · 2018年04月19日 作者
hui_jian 回复

截图,我瞅瞅,Docker翻墙没成功?还是谷歌没翻墙成功?

又学习了一波,人又漂亮技术又好,还这么细心。。。。

金主 回复

我是用ssr翻墙的,youtube我都可以看,应该没问题吧

金主 回复


我这样应该是没问题吧

金主 #58 · 2018年04月19日 作者
hui_jian 回复

你谷歌浏览器能访问其他链接不?我觉得你谷歌浏览器没翻墙成功

金主 回复

我谷歌浏览器其他链接也可以啊,国外的都能访问,google官网都可以,android官网也可以

金主 回复

windows电脑也需要安装dock吗,难道是我没有安装dock?

金主 #61 · 2018年04月19日 作者

那你试着提交bugreport.zip的文件,看能否显示出提交按钮

金主 回复

没办法

必须安装dock环境吗

金主 #64 · 2018年04月19日 作者
hui_jian 回复

没安装docker,你的Battery Historian工具是怎么安装的?

金主 回复


这样安装的

金主 #66 · 2018年04月19日 作者
hui_jian 回复

😂 这这这,你加我qq聊吧:2359465121

金主 #67 · 2018年04月20日 作者

go run setup.go

请问6.0以及以下版本没看到adb shell dumpsys batterystats这个文件的用处

7.0的手机adb bugreport bugreport.zip 这个命令没用。


adb bugreport > 存放的电脑地址/bugreport.txt

adb shell dumpsys batterystats > 存放的电脑地址/batterystats.txt

adb shell dumpsys batterystats > 包名 > 存放的电脑地址/batterystats.txt

这几个命令获取的文件上传之后没内容。

7.0的手机adb bugreport bugreport.zip没用,如下图

希望楼主可以加入自动化测试微信群,互相学习,互相成长。aitestwork。谢谢

72楼 已删除

adb bugreport bugreport.zip 7.0以上机型,生成后,文件存到了手机的一个文件夹,是没有权限获取的对么,除非root了手机?我尝试把它存到本地电脑提示拒绝访问。楼主大人,获取后能直接获取到文件么?

金主 Monkey+battery-historian 电量测试 (五) 中提及了此贴 11月22日 10:43
simple 专栏文章:[精华帖] 社区历年精华帖分类归总 中提及了此贴 12月13日 14:44
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册