(Android)安卓性能测试详解!

1093 篇文章 1 订阅
1068 篇文章 3 订阅

App本身性能数据获取(cpu 内存 帧率 启动时间 流量 电量)

Monkey随机压力测试(android手机压测)

01、Android SDK

Android SDK,即Android Software Development Kit,是android的软件开发工具包。

它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件。包含了在Android平台上开发移动应用程序的各种工具集。

02、解压并配置SDK

使用解压工具(如360压缩,好压,快压等)解压AndroidSDK.rar到没有中文的目录下

配置环境变量:

* 新建ANDROID_HOME : G:\software\Android\sdk

* path添加三个变量

   %ANDROID_HOME%

   %ANDROID_HOME%\platform-tools

   %ANDROID_HOME%\tools

验证:adb(只要不提示不是内部或外部命令,表示配置成功

03、安卓adb

ADB全称Android Debug调试 Bridge桥, 是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备(手机 平板 电视 智能导航...)

它的主要功能有:

  • 运行设备的shell(命令行)

  • 管理模拟器或设备的端口映射

  • 计算机和设备之间上传/下载文件

  • 将本地apk软件安装至模拟器或android设备

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

ADB常用指令

图片

查看设备:adb devices

这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

图片

安装软件

adb install <apk文件路径>

adb install -r apk文件路径 --覆盖安装

这个命令将指定的apk文件安装到设备上.

卸载软件

adb uninstall <软件名> 问开发

adb uninstall -k <软件名>

如果加 -k 参数,为卸载软件但是保留配置和缓存文件

问程序员--com.example.test

登录设备shell

adb shell

adb shell <command命令>

这个命令将登录设备的shell.

后面加<command命令>将是直接运行设备命令, 相当于执行远程命令

查看手机日志:adb logcat

获取某个应用的日志输出到本地文件中

adb logcat -v time process | findstr 包名> C:/log/aa.txt(v表示详细程度-v –v -v)

有多台设备时adb选择设备

adb -s 设备名称 logcat -v time process | findstr 包名>C:/log/aa.txt

显示所有优先级大于等于“warning”的日志

adb logcat *:W 

日志等级:

-- V : Verbose (明细);

-- D : Debug (调试);

-- I : Info (信息);

-- W : Warn (警告);

-- E : Error (错误);

-- F: Fatal (严重错误);

-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西)

图片

随机压力测试-Monkey

Monkey介绍

Monkey就是猴子,Monkey测试,就像一只猴子在电脑面前,乱敲键盘在测试。猴子什么都不懂,只知道乱敲(随机测试)

通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试(足够多次),检测程序多久的时间会发生异常

Monkey用来做什么

Monkey 主要用于Android 的随机压力测试,是一个自动的压力测试小工具,主要目的就是为了测试android app是否会Crash(崩溃).

Monkey 命令

使用monkey测试手机所有程序

adb shell monkey 100 执行monkey测试100次 针对rom测试或者

Monkey实例

用monkey 命令 对登录apk进行 性能测试

adb shell monkey -p com.example.login --ignore-crashes --ignore-timeouts --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v -s 666 1000 >c:\login\c.txt

Monkey异常日志分析

Monkey 测试出现错误后,一般的分析步骤

看Monkey的日志

  • 程序无响应的问题: 在日志中搜索 “ANR”

  • 崩溃问题:在日志中搜索 CRASH/Exception(例如果出现空指针NullPointerException)

Monkey 执行中断,在log最后也能看到当前执行次数

获取app性能数据

CPU

adb shell top 获取全部cpu

  • PID  : progress identification,应用程序ID

  • S    : 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数

  • #THR : 程序当前所用的线程数 thread

  • VSS  : Virtual Set Size虚拟耗用内存(包含共享库占用的内存)

  • RSS  : Resident Set Size实际使用物理内存(包含共享库占用的内存)

  • PCY  : 前台(foreground)和后台(background)进程

  • UID  : User Identification,用户身份ID

  • Name : 应用程序名称

查看手机整个cpu消耗情况

adb shell dumpsys cpuinfo

查看某一个应用的cpu使用情况

adb shell dumpsys cpuinfo | findstr com.jingdong.app.mall

内存

查看某个应用内存使用情况

图片

adb shell dumpsys meminfo 包名

  • dalvik : dalvik使用的内存

  • native : native堆上的内存,指C\C++堆的内存(android 3.0以后bitmap就是放在这儿)

  • other  : 除了dalvik和native的内存,包含C\C++非堆内存······

  • Pss    : 该内存指将共享内存按比例分配到使用了共享内存的进程

  • allocated : 已使用的内存

  • free      : 空闲的内存

  • private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)

  • share dirty   : 共享,但有不能被换页出去的内存

启动时间

手机APP的启动时长是一个很容易被用户感知的性能指标,启动时长过长会让用户极不愿意继续等待。因此启动时长是一项比较靠前的性能指标。

APP的启时长分为两种情况,

  • 一种是冷启动时间

    (通常是系统重启,即在启动前没有该App进程的情况)

  • 一种是热启动,即App从后台被切换到前台

    (点back退出后再点击图标启动)

adb指令启动

adb shell dumpsys activity | findstr mFocusedActivity 查看当前显示的界面名字及所属包名

adb shell am start -W com.jingdong.app.mall/.main.MainActivity

WaitTime 就是总的耗时,包括前一个应用Activity pause的时间和新应用启动的时间;

ThisTime 表示一连串启动Activity 的最后一个 Activity 的启动耗时  

TotalTime表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用Activity pause 的耗时。也就是说,一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时。

总结:

这种测试方法简单容易,并且可以准确的计算出系统启动这个Activity的时间。但是缺点是不包括点击icon到系统接收到消息的时间,也就是说这个时间并不能完整的模拟用户操作场景的启动时间

电量

有的手机设置菜单里面会有流量和电量统计类,只需在测试前后记录下电量值,便可获取消耗电量数值。

帧率--有无卡顿

进入开发者选项 开启GPU呈现分析

各种颜色的线表示渲染这一帧用了多长时间,时间越长表示卡顿明显,绿色横线为标准线,app流畅运行应该在标准线以下

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值