zoukankan      html  css  js  c++  java
  • Monkey for iOS(CrashMonkey4IOS)

    CrashMonkey4IOS介绍

    1. 支持真机测试、模拟器测试
    2. 支持收集系统日志(Systemlog)、崩溃日志(Crashlog)、instrument行为日志
    3. 支持测试报告截图,绘制行为轨迹
    4. 支持测试设备信息收集
    5. 使用最新版的UIAutoMonkey,加入UI HolesApplication Not Repsonding ("ANR")的处理,添加custom.js作为入口脚本.
    6. 加入tuneup依赖
    7. 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
    8. 支持测试执行过程中App进入后台,自动恢复(测试不会block)

    一、环境安装

    1.  安装Homebrew

    1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    2. 安装依赖

    1 brew install libimobiledevice
    2 brew install -HEAD ideviceinstaller
    3 brew install imagemagick
    4 sudo gem install smart_monkey  #终端下直接以smart_monkey -a app_name -w device的形式跑

    二、在iOS模拟器上安装APP

    目前CrashMonkey4IOS没有自动启动模拟器的功能,因此需先确认被测设备(包括模拟器)已经启动完毕并停留在桌面,如处在锁屏界面请先解锁

    1. 通过命令行启动模拟器

    1 xcrun instruments -w 'iPhone 6 Plus'  #或直接输入设备号,如:-w 0F7A5791-3645-4670-B833-175E3598574F

    2. 在模拟器中安装APP

    1 xcrun simctl install booted /Users/Kz/Documents/Join10.app

    ( xcrun 这个命令实际还有很多更高深的玩法,通过xcrun --help可以自己学习和领悟 )

    三、参数说明

     1 -a: 被测APP的BundleID。e.g.-a com.mytest.app。由于是直接通过 bundle id 来启动 app ,因此测试前要确保APP已经安装在被测设备上
     2 -w: 指向测试设备的UDID,可以通过$instruments -s devices查看设备id,若缺省则默认指向第一台设备(模拟器或真机) 如:-w 26701a3a5bc17038ca0465186407b912375b35a7
     3 -n: monkey测试的执行次数,默认为1次。e.g.-n 3
     4 -d: 测试报告地址,默认为当前目录下的smart_monkey_result文件夹下。如:-d ~/my-monkey-test-result
     5 -t: 执行时间,单位为秒。如:-t 60
     6 -s: 指向被测app的.dSYM文件,若出现crash,解析crash为明文。如:-s testapp.dSYM
     7 -c: 自定义的配置集路径,参数必须为目录,目录下必须包含custom.js,若使用handler,目录下需存在名为handler的文件夹,用于存放相关文件。如:-c /my/path/custom_cfg
     8 
     9 如果使用custom_cfg必须遵守如下目录结构:
    10 
    11 custom_cfg
    12     ├── custom.js
    13     └── handler
    14         ├── buttonHandler.js
    15         └── wbScrollViewButtonHandler.js
    16 --event-number: 定义Monkey测试的总事件数,默认为50。如:--event-number 100
    17 --compress-result: 对测试过程中截取的图片进行压缩,以节省空间开销。如:--compress-result 50%
    18 --detail-count: 定义报告详情中记录的事件总数,默认为50,即在报告当中展示最近的50次随机事件,且进行操作示意绘制。如:--detail-count 100
    19 --show-config: 打印当前的配置信息,即custom.js。如:--show-config
    20 --drop-useless-img: 删除除展示在报告当中的其余截图,以节省空间开销,如,一轮Monkey测试共产出截图100张,参数--detail-count设置为20,那么使用--drop-useless-img会删除其余80张截图。如:--drop-useless-img
    21 --list-app: 打印当前连接的真机及模拟器中所安装的app。如:--list-app
    22 --list-devices: 打印当前所有可用设备。如:--list-devices
    23 --reset-ios-sim: 重启模拟器。如:--reset-ios-sim
    24 --version: 打印smart_monkey的版本号。如:--version

    四、注意事项

    1. 若长时间运行smart_monkey后电脑变卡:

      首先确认一下是哪个进程内存比较大,如果是instruments,运行过程当中会把日志存储在内存当中,所以比较吃内存,这个是苹果自家的东西,可以使用-n参数 分批次执行,将单次的事件数降低,可是使用-n 迭代5轮,单次事件数1000

    2. 在运行过程中,锁屏设置密码后,出现运行错误:

      设置锁屏密码无解,建议不要加密码锁

    3. 真机上务必开启 Enable UI Automation:

      在 Settings->Developer 里面,否则真机上运行时应用会闪退

  • 相关阅读:
    linux清理缓存
    HTMl5的sessionStorage和localStorage
    jQueryValidation插件API 学习
    notepad++去空格空行技巧
    关于前端的一些疑问
    ios上传图片遇见了一个TimeoutError(DOM Exception 23)异常
    js不执行的问题
    input type=file 怎么样调取用户手机照相机
    在调用方法给安卓传参遇到的问题
    canvas压缩图片成base64,传到后台解码需要注意的问题
  • 原文地址:https://www.cnblogs.com/CNMBJR/p/5696214.html
Copyright © 2011-2022 走看看