07. APP的Monkey压力测试

一、基础知识

慕课网视频:http://www.imooc.com/learn/729

1. 为什么要开展压力测试?
  • 提高产品的稳定性
  • 提高产品的留存率
2. 什么时候开展压力测试?
  • 首轮功能测试通过后
  • 下班后的夜间进行
3. 什么是Monkey?Monkey在哪?

monkey是发送伪随机用户事件的工具,就在我们的手机系统里面,但是没有显示的icon。

4. 我们用什么来操作monkey呢?
Paste_Image.png
5. 什么是MonkeyScript?

MonkeyScript是一组可以被monkey识别的命令集合
MonkeyScript可以完成重复固定的操作

6. 什么是MonkeyRunner工具?

MonkeyRunner提供了一系列的API
MonkeyRunner可以完成模拟事件及截图操作

7. Monkey和MonkeyRunner的区别?

Monkey:在adb shell中,生成用户或是系统的伪随机事件
MonkeyRunner:通过api定义特定命令和事件控制设备

8. MonkeyRunner都包括哪些APIs呢?
  • MonkeyRunner:用来连接设备或模拟器
  • MonkeyDevice:提供安装卸载应用,发送模拟事件
  • MonkeyImage:完成图像保存,及对比操作
9. MonkeyRunner都能测试哪些类型?
  • 多设备控制
  • 功能测试
  • 回归测试
10. 压力测试的结果:

crash:崩溃
ANR:application not responding

二、手机压力测试步骤:

step1:

在手机开发者选项中,将usb调试选上。

step2:

确认手机和电脑已经成功连接
cmd中输入:adb devices,如果连接成功会显示手机的序列号,如下

Paste_Image.png

step3:

安装测试的app
adb install packagename.apk(注意:需要进入apk所在的目录执行命令)

step4:

发送压力指令
adb shell monkey 1000
这里的数字1000是指monkey随机发出的1000个指令

step5:

获取app的包名
adb logcat | grep START (注意:这样输入会说grep不是内部命令,看下面的解释)

grep 是linux下的命令,windows系统可以使用 findstr 替代 grep。或者执行adb shell进入到手机,在手机系统下,执行logcat | grep START。android系统是linux的,所以支持grep。

输入上面的命令后,如果你想知道哪个app的包名是什么,你就打开哪个app,我打开了魅族手机原带的计算器,如图,这样我们就知道了计算器的包名。

Paste_Image.png
step6:

给指定的包打压力
adb shell monkey -p package 1000
比如我用魅族手机原带的计算器测试,就输入:adb shell monkey -p com.meizu.flyme.calculator 1000,这样就对计算器进行了压力测试。下图为测试的结果,注意标红的部分,翻译过来就是注入了1000个事件,如果这样显示说明测试没用问题,如果那个数小于你原来输入的值,说明有问题。

Paste_Image.png

三、Monkey高级参数的应用

1.throttle参数:指定事件之间的间隔

adb shell monkey --throttle <延时时间>
比如:adb shell -p com.meizu.flyme.calculator --throttle 1000 100
这是给魅族自带的计算器执行100个事件,每1秒一次

2. seed参数:指定随机生成数的seed值

adb shell monkey -s<seed> event-count
比如:adb shell monkey -p com.meizu.flyme.calculator -s 100 50

为什么需要seed值,比如我们用monkey发现了异常,需要开发人员处理,这时我们需要复现异常。由于monkey的命令是随机的所以很难复现。seed值相当于一个标示,相同的seed值和相同的事件次数,monkey会执行相同的序列操作,就会复现问题。

3.触摸事件参数:设定触摸事件的百分比

adb shell monkey --pct-touch<percent>

解释:monkey是随机事件,现在我们只想让monkey来操作点击事件,其他的什么滑动事件都不处理,怎么办?这里就用我们的触摸事件参数。

Paste_Image.png
4.动作事件:设定动作事件的百分比

** adb shell monkey --pct-motion<percent>**

解释:比如我们只想测试三种事件,那么我们要让三种事件的百分比加起来为100,如果不等于100,比如等于80,那么剩余的20monkey还是随机测试。
下图就是touch事件50,motion事件30,这是占比,20%的时间是随机的。


Paste_Image.png

还有一些命令,在课程的4-5节,需要自己仔细看下。

5.崩溃事件:忽略崩溃和异常

正常情况下,如果monkey发现崩溃和异常,就会停止继续操作。为了能让monkey继续执行,我们就引入这个参数。
adb shell monkey --ignore-crashes <event-count>

6.超时事件(ANR):忽略超时事件

adb shell monkey --ignore-timeouts <event-count>

Paste_Image.png

四、CRASH结果取析:

  • step1:安装可以一起crash的app
  • step2:执行压力命令
  • step3:析取crash的Execption信息
Paste_Image.png

上图为ANR的异常信息,同样crash也会显示CRASH的一异常信息。

五、Monkey script:

执行monkey脚本的命令,可以执行我们想要的有序命令
adb shell monkey -f <scriptfile> <event-count>

monkey script有许多命令,这里不详细说了,可以看课程的4-9。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 移动APP测试讲义 本篇讲义主要阐述APP的手工测试要点,并概括介绍主流的APP测试框架。 1. APP测试的准备...
    厲铆兄阅读 9,596评论 6 109
  • 手动测试与自动化测试 为了说明这两个概念,举个例子:此时我们要进行一个修改昵称的操作,我们需要进行手动测试需走一遍...
    王凯岩_KY2阅读 460评论 0 0
  • Monkey是Android平台自动化测试的一种手段,可以在模拟器里或实际设备中运行,它向系统发送伪随机的用户事件...
    alston123阅读 5,877评论 1 5
  • Monkey概念介绍 Monkey是猴子的意思。Monkey测试,就像一只猴子,在电脑面前,乱敲键盘在测试。猴子什...
    正规程序员阅读 3,525评论 0 50
  • 这几天一直微信群一直被一件事情刷屏者,看后也是让人非常震惊!一个31岁的妈妈,在自己生日的前一周,带着一个两岁的男...
    有趣的谷粒阅读 247评论 0 1