参考资料:
1. Monkey测试策略:https://testerhome.com/topics/597 
2. Android Monkey测试详细介绍:http://www.jikexueyuan.com/course/1619.html
3. Monkey总结:https://testerhome.com/topics/3517

测试步骤

思路
1. 目前做的是银行APP,另下载安装3个第三方手机银行的APP以方便对比
2. 将四个APP的包名添加到白名单,同时测试这四个APP
3. 运行Monkey,将日志记录到手机中
4. 测试过程中记录APP占用内存和CPU的变化
5. 测试完毕后查看Monkey日志,将内存和CPU数据用图表来分析。

疑问:
1. 此APP是需要登录的,测试过程中退出账号后无法再进入程序内部,不知道其他公司是如何避免的?
答:经咨询,目前常用两种做法:1. 让开发将退出按键给屏蔽掉 2.点击登录不检测账号和密码

  1. 针对不同APP都有什么策略还不是很清楚,比如延时、事件数量、事件比例 等设置成多少合适?

一、运行Monkey

  1. 将白名单push到手机
    adb push E:\01_AutomationTest\01_Monkey\05_NbBank\whitelist.txt data/local/tmp/
  1. 运行Monkey
adb shell
monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 15000 > /mnt/sdcard/monkey_test.txt &

根据sandman的建议,优化命令:

adb shell
monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 15000 1> /mnt/sdcard/monkey_test.txt 2>&1 &

2>&1的语法参考Linux的解释:http://blog.csdn.net/ithomer/article/details/9288353

二、内存检测

内存检测用批处理脚本记录,约5秒记录一次:

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50 set package1=com.nbbank
set package2=cn.com.spdb.mobilebank.per
set package3=com.chinamworld.bocmbci
set package4=com.cmbchina.ccd.pluto.cmbActivity adb shell dumpsys meminfo %package1% | findstr "Pss" > ./meminfo_1.txt
adb shell dumpsys meminfo %package1% | findstr "Pss" > ./meminfo_2.txt
adb shell dumpsys meminfo %package1% | findstr "Pss" > ./meminfo_3.txt
adb shell dumpsys meminfo %package1% | findstr "Pss" > ./meminfo_4.txt :start
adb shell dumpsys meminfo %package1% | findstr "TOTAL" >> ./meminfo_1.txt
adb shell dumpsys meminfo %package2% | findstr "TOTAL" >> ./meminfo_2.txt
adb shell dumpsys meminfo %package3% | findstr "TOTAL" >> ./meminfo_3.txt
adb shell dumpsys meminfo %package4% | findstr "TOTAL" >> ./meminfo_4.txt echo.
echo.
ping -n 5 127.1>nul
goto start

三、记录CPU百分比

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50 set package1=com.nbbank
set package2=cn.com.spdb.mobilebank.per
set package3=com.chinamworld.bocmbci
set package4=com.cmbchina.ccd.pluto.cmbActivity adb shell top -n 1 | findstr "PID" > ./cupInfo_1.txt
adb shell top -n 1 | findstr "PID" > ./cupInfo_2.txt
adb shell top -n 1 | findstr "PID" > ./cupInfo_3.txt
adb shell top -n 1 | findstr "PID" > ./cupInfo_4.txt
:start
adb shell top -n 1 | findstr %package1% >> ./cupInfo_1.txt
adb shell top -n 1 | findstr %package2% >> ./cupInfo_2.txt
adb shell top -n 1 | findstr %package3% >> ./cupInfo_3.txt
adb shell top -n 1 | findstr %package4% >> ./cupInfo_4.txt echo.
echo.
ping -n 5 127.1>nul
goto start

注意:
命令adb shell top -n 1 | findstr %package1% 返回三行信息,暂未处理:

C:\Users\Stphen>adb shell top -n 1 | findstr com.nbbank
25353 0 1% S 23 543128K 66260K bg u0_a193 com.nbbank
25385 1 0% S 3 11480K 1368K fg u0_a193 com.nbbank
25383 0 0% S 3 11692K 4180K fg u0_a193 com.nbbank

四、结果分析

  • Crash、ANR、Force close暂时没发现,以后补上

  • 将记录的内存数据插到Excel表中对比查看

 
  • 将记录的CPU数据插到Excel表中对比查看

Android 性能测试_Monkey 实践【转】的更多相关文章

  1. Android 性能测试优质实践汇总

    这两天把testerhome上的关于Android 性能测试的精品文章看了一遍,很有收获,学习到了Android 性能测试该关注的一些细节.我所说的“精品”是指对我自己有启发的文章,可以被自己运用起来 ...

  2. Android性能测试

    FPS和流畅度 FPS 1.dumpsys SurfaceFlinger –latency shell 脚本通过 dumpsys SurfaceFlinger --latency 数据计算 FPS 和 ...

  3. Android性能测试--内存

    前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有 ...

  4. Android性能测试-内存

    前言: 近阶段都在探索android性能测试方面的东西,其中一个很重要的指标就是内存.对于内存,主要是一些gc是不是及时,或者说一些引用有没有及时释放,有没有导致oom或者内存持续增加导致卡顿,有没有 ...

  5. (转)专项:Android 内存泄露实践分析

    今天看到一篇关于Android 内存泄露实践分析的文章,感觉不错,讲的还算详细,mark到这里. 原文发表于:Testerhome: 作者:ycwdaaaa ;  原文链接:https://teste ...

  6. Android游戏开发实践(1)之NDK与JNI开发03

    Android游戏开发实践(1)之NDK与JNI开发03 前面已经分享了两篇有关Android平台NDK与JNI开发相关的内容.以下列举前面两篇的链接地址,感兴趣的可以再回顾下.那么,这篇继续这个小专 ...

  7. Android游戏开发实践(1)之NDK与JNI开发01

    Android游戏开发实践(1)之NDK与JNI开发01 NDK是Native Developement Kit的缩写,顾名思义,NDK是Google提供的一套原生Java代码与本地C/C++代码&q ...

  8. Android游戏开发实践(1)之NDK与JNI开发02

    Android游戏开发实践(1)之NDK与JNI开发02 承接上篇Android游戏开发实践(1)之NDK与JNI开发01分享完JNI的基础和简要开发流程之后,再来分享下在Android环境下的JNI ...

  9. 腾讯优测优分享 | Android性能测试工具化实现

    腾讯优测专业的移动云测试平台,自动化测试提供性能测试数据,云真机实时输出性能数据,让测试更简单! 1.Android性能测试介绍 提到Android性能测试,我们总免不了俗地要首先介绍下Android ...

随机推荐

  1. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  2. C# winform调用东软动态库的问题

    在C# winform程序中调用东软的动态库ESActiveX.ocx 如果是引用ESActiveX.ocx,然后在代码中设置示例,调用就会报"灾难性错误" 如果在工具箱中点击右键 ...

  3. C# CacheHelper

    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...

  4. 关于RDD

    1. transform操作返回的是rdd, action操作返回其它数据类型,可以以此来区分操作类型: 2. Spark懒加载,懒到直到Action操作的时候才会加载数据计算,RDD的create和 ...

  5. C++ 中的计时器

    在Java中,有时候会要测试程序的性能,所以会采用System.currentTimeMillis()等类库函数去测试时间开销. 在C++中同样可以完成此功能. 头文件: #include<ct ...

  6. strut2配置文件属性介绍

    mystruts.xml配置文件属性介绍 1.package标签的中的namespace属性 <package name="default" extends="st ...

  7. Dom编程(一)

    dom:document object model 文档对象模型 1.事件 body 事件:onload onunload onbeforeunload body.document对象的事件 (1)o ...

  8. dplyr 数据操作 常用函数(3)

    接下了我们继续了解dplyr中有用的函数 1.if_else() if_else主要用于在数据做判断用 x<-data.frame(id=1:6, name=c("wang" ...

  9. Linux Tomcat 自启动

    使用chkconfig命令 修改tomcat/bin/startup.sh,在开头的地方添加如下内容 #chkconfig: #description:tomcat auto start #proce ...

  10. Zeppelin0.6.2使用hive解释器

    Zeppelin0.6.2的jdbc Interpreter 配置 1.拷贝hive的配置文件hive-site.xml到zeppelin-0.6.2-bin-all/conf下. 2.进入conf下 ...