美文网首页软件测试技术
Android自动化及性能测试

Android自动化及性能测试

作者: 街角的那只喵 | 来源:发表于2017-04-20 16:23 被阅读38次

    一、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查看测试结果

    相关文章

      网友评论

        本文标题:Android自动化及性能测试

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