APP性能测试Monkey随机压力测试(android手机压测)

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

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

1.Android SDK

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

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

​​​​​​​2.解压并配置SDK

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

配置环境变量:

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

            * path添加三个变量

                %ANDROID_HOME%

                %ANDROID_HOME%\platform-tools

                %ANDROID_HOME%\tools

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

3.安卓adb

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

它的主要功能有:

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

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

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

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

3.1 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) (最高的优先级, 可能不会记载东西)

adb start-server    adb启动

adb kill-server      停止adb

adb shell pm list packages   所有应用

adb shell pm list packages -s 系统应用

adb shell pm list packages aaa 查看包名包含字符串 aaa 的应用列表

adb shell pm clear com.baidu.com 清除应用数据和缓存

  1. 随机压力测试-Monkey
    1. Monkey介绍

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

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

    1. Monkey用来做什么

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

    1. Monkey 命令
  1. 使用monkey测试手机所有程序

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

  1. 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

    1. Monkey异常日志分析

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

看Monkey的日志

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

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

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

  1. 获取app性能数据
    1. CPU
  1. 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 : 应用程序名称

  1. 查看手机整个cpu消耗情况

adb shell dumpsys cpuinfo

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

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

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

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   : 共享,但有不能被换页出去的内存

    1. 启动时间

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

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

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

一种是热启动,即App从后台被切换到前台(点back退出后再点击图标启动)。

  1. 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到系统接收到消息的时间,也就是说这个时间并不能完整的模拟用户操作场景的启动时间

    1. 电量

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

    1. 帧率--有无卡顿

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

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

  • 41
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CSND是一个知名的技术社区网站,提供了丰富的技术资源,其中包括Android App性能测试的相关内容。 Android App性能测试是在开发或发布Android应用程序之前,对其进行全面评估和优化的过程。通过进行性能测试,可以检测应用程序的负载能力、响应时间、资源消耗等指标,以确保应用程序在各种使用情况下都能正常运行。 在CSND上,有很多关于Android App性能测试的文章、教程和经验分享。这些资源可以帮助开发者了解性能测试的基本概念和原理,学习使用性能测试工具和框架,掌握测试用例设计和执行方法,以及优化应用程序性能的技巧和策略。 CSND上的Android App性能测试内容包括但不限于以下几个方面: 1. 测试工具和框架介绍:CSND会推荐一些常用的性能测试工具和框架,如Android Performance Profilers、Monkey等,介绍它们的特点和使用方法。 2. 性能测试指标和评估方法:CSND会介绍一些常用的性能测试指标,如CPU占用率、内存占用率、响应时间等,以及对应的评估方法,如性能曲线分析、负载测试等。 3. 测试用例设计和执行:CSND会分享一些测试用例设计和执行的经验,包括如何选择测试用例、如何设置测试环境和数据,以及如何执行和监控性能测试过程。 4. 性能优化方法和策略:CSND会介绍一些性能优化的常用方法和策略,如使用异步任务、减少内存泄漏、优化布局等,以提高应用程序的性能和用户体验。 总之,通过在CSND上学习和探索Android App性能测试的相关内容,开发者可以提高自己的测试能力,优化应用程序的性能,并确保应用程序在各种情况下的稳定运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值