IOS monkey测试+命令行运行+日志收集

使用Xcode进行Monkey测试

在测试app时,我们需要测试一下app的稳定性,monkey测试可以基本满足我们的需求,monkey测试实际上就是对app进行各种混乱操作,电脑随机产生操作指令,然后发送给手机,让手机去执行,这样测试执行一段时间(一般是几个小时),观察app是否有crash或者异常日志。

Android sdk中已经集成monkey命令,adb shell monkey很方便。ios的话,需要我们自己去写脚本,不过github已经有开源的,UI AutoMonkey,拿来直接用。

  1. 使用Xcode打开要测试的app
  2. 启动Instruments(Product->Profile),或者快捷键⌘I。
  3. 选择”Automation”,然后点击”Profile”image
  4. Instruments启动后,会默认启动录制。我们点击红色按钮(快捷键⌘R),把它停掉。image
  5. 在脚本管理的窗口,新建一个脚本,点击“Add > Create”image
  6. 粘贴跑monkey用的js代码,可以手动调整代码,设置操作的间隔时间,事件总量,事件概率。代码地址:https://github.com/jonathanpenn/ui-auto-monkey/blob/master/UIAutoMonkey.jsimage
  7. 重新运行脚本(不用保存),快捷键⌘R,脚本就会被Xcode执行,我们可以在控制台看到日志。image

脱离Xcode,命令行执行instruments

Instruments可以在命令行下执行,我们可以通过命令直接调用js脚本执行.

    instruments -w bb9265a3af***********1eb62d1c05274b1d -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate 5LDV722ABF.com.meilishuo.meilishuo -e UIASCRIPT /Users/apple/work/UIAutoMonkey.js UIARESULTSPATH /Users/apple/Desktop/  
  • -w udid 即ios设备唯一的UDID,可以使用iTunes获取。
  • -t 指定Instrument路径
  • -e UIASCRIPT 指定我们的js脚本路径
  • UIARESULTSPATH 指定结果保存路径

命令行抓取iphone手机日志

monkey执行过程中,我们需要抓取打印的log,保存起来,monkey执行完毕后,进行分析。monkey过程中,日志可能比较多,使用Xcode来看,很不方便。libimobiledevice-macosx这款工具,可以让我们在shell中获取iphone的log。

  1. 下载源码 git clone https://github.com/benvium/libimobiledevice-macosx.git
  2. 设置环境变量
     export DYLD_LIBRARY_PATH=/your/path/here/imobiledevice-macosx/:$DYLD_LIBRARY_PATH
     PATH=${PATH}:/your/path/here/imobiledevice-macosx/
    
  3. 执行 source ~/.bash_profile
  4. shell中执行idevicesyslog即可以看到iphone运行过程中打印的日志,可以使用grep过滤,可以重定向到文件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

(Spamcheck Enabled)