Android自动化及性能测试

一、Monkey简介:
monkey是Android中的命令行工具,monkey测试是为了测试软件的稳定性,健壮性快速有效的方法。
Adb shell monkey [-option]
例如:向一个包随机发送500次事件
Adb shell monkey -p packagename -v 500
二、Monkey测试流程:
1.首先启动模拟器或者手机
2.Cmd中输入 adb devices 查看设备情况,如果出现下图,说明模拟器启动成功

Paste_Image.png

3.然后输入adb shell 即可进入shell 界面

Paste_Image.png

4.查看data/data下的包名,我们可以测试的包名都在这个目录下,查看使用ls命令

Paste_Image.png

5.以这个包名为基准com.eastfair.eshowthrough.exhibitorsedition 进行测试
输入 monkey -p com.eastfair.eshowthrough.exhibitorsedition -v 500
-p 表示对象的包名 -v表示反馈信息级别
按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件

Paste_Image.png
Paste_Image.png

Monkey随机测试结束
三、Monkey停止的条件:
1.如果monkey限定了在一个包或者几个包上进行操作,当你在转换到其他包的过程中,monkey会进行阻止
2.如果应用程序崩溃,或者接收到了任何异常信息,monkey将停止。
3.如果应用程序产生了应用程序为响应,monkey停止。
如果结果是 monkey finish 则表示monkey正常运行完毕
四、Monkey的命令详解:
分为常用选项,事件选项,约束选项,调试选项
1.常用选项
-help 打印monkey的基本信息
-v 反馈信息级别,默认为0,每写一个-v就增加一个级别,级别为3级,
日志级别0:monkey -p com.eastfair.eshowthrough.exhibitorsedition -v 500
缺省值,仅提供启动提示、测试完成和最终结果等少量信息
日志级别1:monkey -p com.eastfair.eshowthrough.exhibitorsedition -v -v 500
提供较为详细的日志,包括每个发送到Activity的事件信息
日志级别2:monkey -p com.eastfair.eshowthrough.exhibitorsedition -v -v -v 500
最详细的日志,包括了测试中选中/未选中的Activity信息
2.事件选项

  • s 指定产生随机事件的种子值,相同的种子值产生相同的序列 -s 3500 3500表示的种子值
    --throttle <毫秒> 每个事件的间隔时间,单位毫秒
    示例:monkey -p com.eastfair.eshowthrough.exhibitorsedition --throttle 350 -v 500

--ptc {事件类别} {百分比}
示例:--ptc-touch 5% 调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置) adb shell monkey -p com.htc.Weather--pct-touch 10 1000

--pct-motion 5% 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p com.htc.Weather --pct-motion 20 1000

--pct-tackball 5% 调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)adb shell monkey -p com.htc.Weather--pct-trackball 30 1000

--pct-nav 5% 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)adb shell monkey -p com.htc.Weather--pct-nav 40 1000

--pct-majornav 5% 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
adb shell monkey -p com.htc.Weather--pct-majornav 50 1000

--pct-syskeys 5% 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
adb shell monkey -p com.htc.Weather--pct-syskeys 60 1000

--pct-appswitch 5% 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
adb shell monkey -p com.htc.Weather--pct-appswitch 70 1000

--pct-anyevent 5% 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等adb shell monkey -p com.htc.Weather

--pct-anyevent 100 1000* 指定多个类型事件的百分比:
adb shell monkey -p com.htc.Weather--pct-anyevent 50 --pct-appswitch 50 1000
注意:各事件类型的百分比总数不能超过100%;

3.约束选项
-p 此参数指定一个或者多个包,指定包之后,monkey只允许系统启动指定的app,如果不指定,monkey将允许启动系统中所有的app.

  • 指定一个包: adb shell monkey -p com.htc.Weather 100
    说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。
  • 指定多个包:adb shell monkey -p com.htc.Weather –p com.htc.pdfreader -p com.htc.photo.widgets 100
  • 不指定包:adb shell monkey 100
     说明:Monkey随机启动APP并发送100个随机事件。
    -c activity必须至少包含一个指定的category,才能被启动,否则启动不了;
    4.调试选项
    --dbg-no-events 初始化启动的activity,不产生任何事件
    --hprof 指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项
    --ignore-crashes 忽略崩溃
    --ignore-timeouts 忽略超时,用于指定当应用程序发生ANR(Application No Responding)错误时
    --ignore-security-exceptions 忽略安全异常,用于指定当应用程序发生许可错误时(如证书许可,网络许可等)
    --kill-process-after-error 发生错误后直接杀掉进程
    --monitor-native-crashes 跟踪本地方法的崩溃问题
    --wait-dbg 直到连接了模拟器才执行monkey测试
    五、停止Monkey命令:
  1. ps命令 查找uiautomator的进程
    打开cmd命令行窗口
    输入:
    adb shell ps | grep monkey
    返回来的第一个数字,即是monkey的进程号
    2.kill 命令结束进程继续输入:
    adb shell kill [刚才查到的进程号]
    同理结束其他进程,和其他应用也可用此法,屡试不爽
    六、测试apk集合
    APK应用集合分为黑名单和白名单,黑名单是指系统将执行除了黑名单中以外的apk;白名单则是只执行在白名单中的apk。
    黑名单的设置方法:
    a.创建一个名称为blacklist的txt文档,在文件中输入应用程序的包名,如mms应用,则在文件中输入com.android.mms;如果有多个应用程序不想被执行,则在文件中添加多个包名,注意包名与包名之间均用回车键。
    b.将blacklist.txt的文件导入到手机的/data目录下,然后在执行monkey测试的时候使用--pkg-blacklist-file参数再加上blacklist文件的存储路径,其他的参数设置则和测试单一apk没有区别。
    白名单的设置方法:
    白名单的设置方法和黑名单的设置方法基本一致,只是在创建txt文档的时候,文件的命令应为whitelist。在执行monkey的时候,只执行白名单中的应用。
    执行单一apk:
    monkey –p <options> -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数> C:\monkey_test.txt
    执行apk集合:
    monkey –pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数> C:\blacklist_test.txt //执行黑名单以外的应用

    monkey –pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制语句> --throttle <milliseconds> -v 执行次数 > C:\whitelist_test.txt //执行白名单的应用
    七、设置不依赖USB
    在执行monkey测试的时候,如果将monkey测试的日志存放在手机的sdcard或者其他目录下,在monkey测试命令的最后加上一个&符号,则可以再不连接USB的情况下继续执行monkey。如:
    monkey –p com.android.mms –s 100 --throttle 1000 –v –v –v 15000 > /mnt/sdcard/monkey_test.txt&
    八、连接手机进行monkey测试
    测试前提条件
    1.将手机恢复出厂设置
    2.恢复出厂设置后,进入设置-->关于手机-->高级设置-->勾选‘保持唤醒状态’
    3.在设置->安全中设置解锁图案以及PIN码
    4.连接 adb tool
    5.手机开启后台log(##3646633##),开启main log,, mobile log和net log
    6.使用USB线连接手机和电脑
    7.在电脑中输入Monkey命令:adb shell monkey -p <your.package.name> --throttle 380 -v -s 3500 300000 > C:\monkey_log.txt
    通过monkey_log.txt查看测试结果
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,030评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,198评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,995评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,973评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,869评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,766评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,967评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,599评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,886评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,901评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,728评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,504评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,967评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,128评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,445评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,018评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,224评论 2 339

推荐阅读更多精彩内容