• 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 里面,否则真机上运行时应用会闪退

  • 相关阅读:
    【秒懂音视频开发】03_重识音频
    【秒懂音视频开发】02_重识声音
    【秒懂音视频开发】01_移动通信技术的发展
    [mysql]错误解决之"Failed to start MySQL Server"
    Ubuntu 将Python从默认的2.7升级到3.* 版本
    宝塔面板后台设置免费SSL证书Let's Encrypt(三)
    Let's Encrypt 证书申请及配置(二)
    快速签发 Let's Encrypt 证书指南(一)
    DJANGO中多种重定向方法使用
    反解法|逆向思维
  • 原文地址:https://www.cnblogs.com/CNMBJR/p/5696214.html
Copyright © 2020-2023  润新知