美文网首页Android
android压力测试MONKEY

android压力测试MONKEY

作者: mocen_王琪 | 来源:发表于2017-02-06 16:09 被阅读176次

    话不多说,直接写步骤:

    首先,电脑上需要配置有sdk环境变量和python环境变量
    自行百度环境变量配置方法

    python 下载地址:
    https://www.python.org

    在手机上装上要测得应用
    打开开发者选项中的调试模式
    链接电脑

    cmd打开命令行窗口

        输入  python查看python环境变量是否配置成功
        输入 adb devices 查看当前链接的设备
    
    python环境配置成功 成功链接手机

    所有指令都有正确回应的时候说明环境变量配置成功,就可以接下来的压力测试了

    在命令行窗口输入
    
    adb shell monkey 1000
    这个就表示模拟手机1000次随机操作:
    比如说 滑动屏幕,随机点击屏幕某个坐标,音量键,截图 ====
    
    但是如果按照这个操作一遍就会发现,没有指定某个应用啊!
    对的。。。
    确实没有。。。
    

    接下来就指定某个应用

    首先我们要获取手机上的应用的包名
    
    还是命令行输入
    adb logcat | grep START
    意思就是说,将还有START标签的应用通过logcat打印出来
    
    比如说我要测试一个手机自带的闹钟程序:
    点开手机上的闹钟app
    输入    adb logcat | grep START
    

    下图为窗口打印的log日志


    你现在手机的显示界面就是闹钟app的首页,
    其中cmp后面跟着的就是闹钟这个应用的包名
    从后面也可以看出来我用的是魅族手机。
    嘿嘿嘿~~~~

    获取到了想测试的应用的包名之后就可以给指定应用做压力测试了:

    命令行输入
    adb shell monkey -p 应用包名 测试的事件数
    

    我这里就输入
    adb shell monkey -p com.android.alarmclock 1000

    压力测试结果

    上图为压力测试结果,可以看到,我的测试事件是1000个,injected显示的结果也是执行了1000次测试,说明,每一次都通过了没有问题

    再来一个出问题的情况

    Paste_Image.png

    可以看到,如果说出了问题,也会打出来具体的错误log,比较方便

    如果说你想在每个事件中间加点儿间隔时间的话可以用这个指令

    adb shell monkey --throttle<毫秒数>
    

    monkey压力测试还有一个非常有用的功能

    因为,每次压力测试,测试的所有事件都是随机产生的,如果遇到问题的话,怎么能让问题重现呢?

    这时候就用到了

    adb shell monkey -p 应用包名 -s 自定义数字 事件数
    

    这句代码的意思就是说把(事件数)个随机事件装进一个队列中,这个队列的编号就是你自己定义的那个数字编号,如果出了问题你想重现的话,指定同样编号的随机事件队列就可以了

    举例:

    第一次压力测试的时候
    adb shell monkey -p 应用包名 -s 120 1000
    执行编号为120的1000次随机事件测试
    
    这时候你发现出了问题了,想重现
    同样再执行一遍这组随机事件就行了
    adb shell monkey -p 应用包名 -s 120 1000
    

    如果你不想进行什么其他的没用的操作,比如说截屏,音量大小,只是想测试触摸点击事件的话,也可以做到

    adb shell monkey --pct-touch 事件所占百分比
    

    还是以闹钟为例:

    adb shell monkey -p com.android.alarmclock --pct-touch 100 1000
    
    表示100%执行触摸点击测试1000次随机事件
    
    你也可以将测试的事件打印出来
    adb shell monkey -v -p com.android.alarmclock --pct-touch 100 1000
    
    -v表示将测试的事件打印出来
    

    在最顶端可以看到事件的百分比


    事件百分比

    事件也都为touch点击事件


    action事件

    如果在测试期间,应用crash了,测试默认会停止
    可以使用

    --ignore-crashes
    

    它会使测试在遇到crash的情况是,不自动停止,而是继续执行完指定数目的测试,不过还是会照常打印log

    同样,如果应用中主线程执行了耗时操作是,会遇到ANR异常,monkey也会默认终止测试,这是可以用

    --ignore-timeouts
    

    来打印错误的同时,继续执行完测试

    写到这里发现了阿标的博客:关于制定测试事件写的比较详细,直接copy过来,嘿嘿嘿~~~~

    参数:  --pct-{+事件类别}{+事件类别百分比}
    
    用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
    
    
    --pct-touch {+百分比}
    
    调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)
    
    --pct-motion {+百分比}
    
    调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)adb shell monkey -p
    
    --pct-trackball {+百分比}
    
    调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)
    
    --pct-nav {+百分比}
    
    调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
    
    --pct-majornav {+百分比}
    
    调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
    
    --pct-syskeys {+百分比}
    
    调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
    
    --pct-appswitch {+百分比}
    
    调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
    
    --pct-anyevent {+百分比}
    
    调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等
    
    --pct -anyevent 100 1000* 指定多个类型事件的百分比:
    

    注意:各事件类型的百分比总数不能超过100%;

    重复指定操作测试
    利用monkey scipt脚本。。。。后面在写吧。。。。╮(╯▽╰)╭

    相关文章

      网友评论

        本文标题:android压力测试MONKEY

        本文链接:https://www.haomeiwen.com/subject/wtxuittx.html